[JS/TS] Rewrite flexbuffers JS to TS (#6148)

* Partial TS rewrite

* Completed port but bugs remain

* Expose builder function

* Break out and fix stack-value and formatting
This commit is contained in:
Björn Harrtell
2020-10-19 22:11:35 +02:00
committed by GitHub
parent 9fa1d27059
commit b46db38f57
14 changed files with 1096 additions and 1057 deletions

30
ts/flexbuffers.ts Normal file
View File

@@ -0,0 +1,30 @@
/* eslint-disable @typescript-eslint/no-namespace */
import { Builder } from './flexbuffers/builder'
import { toReference as toReferenceFunction } from './flexbuffers/reference';
export function builder(): Builder {
return new Builder();
}
export function toObject(buffer: Uint8Array): unknown {
return toReferenceFunction(buffer).toObject();
}
export function encode(object: unknown, size = 2048, deduplicateStrings = true, deduplicateKeys = true, deduplicateKeyVectors = true): Uint8Array {
const builder = new Builder(size > 0 ? size : 2048, deduplicateStrings, deduplicateKeys, deduplicateKeyVectors);
builder.add(object);
return builder.finish();
}
const builderFunction = builder
const toObjectFunction = toObject
const encodeFunction = encode
export namespace flexbuffers {
export const builder = builderFunction;
export const toObject = toObjectFunction;
export const encode = encodeFunction;
export const toReference = toReferenceFunction;
}
export default flexbuffers;