forked from BigfootDev/flatbuffers
* Add --ts-undefined-for-optionals command line option # Details - Fixes #7656 - Added a new `--ts-undefined-for-optionals` command line option for `flatc`. - If enabled, generated TypeScript code uses `undefined` for optional fields rather than `null`. * Also add TS generated test files * Run `sh scripts/clang-format-git.sh` * also add tests/ts/lalala-options.ts to the repo * move new tests to tests/ts/optional_values dir * add tests/ts/optional_values/optional_values_generated.cjs to the repo * reuse existing optional_scalars.fbs and add new test * add comma * sh scripts/clang-format-git.sh * remove comma * sh scripts/clang-format-git.sh * trying things * sh scripts/clang-format-git.sh * done * address feedback * sh scripts/clang-format-git.sh * run `sh scripts/clang-format-git.sh` * remove uneeded `eslint-disable @typescript-eslint/no-namespace` line --------- Co-authored-by: José Luis Millán <jmillan@aliax.net>
61 lines
1.9 KiB
JavaScript
61 lines
1.9 KiB
JavaScript
import assert from 'assert'
|
|
import * as flatbuffers from 'flatbuffers'
|
|
|
|
import optional_scalars from './ts-undefined-for-optionals/optional_scalars_generated.cjs'
|
|
|
|
const { ScalarStuff, ScalarStuffT } = optional_scalars.optional_scalars;
|
|
|
|
function testScalarStuffBuf(scalarStuff) {
|
|
assert.strictEqual(scalarStuff.justI8(), -1);
|
|
assert.strictEqual(scalarStuff.maybeI8(), undefined);
|
|
assert.strictEqual(scalarStuff.defaultI8(), 42);
|
|
assert.strictEqual(scalarStuff.justU8(), 1);
|
|
assert.strictEqual(scalarStuff.maybeU8(), undefined);
|
|
assert.strictEqual(scalarStuff.defaultU8(), 42);
|
|
}
|
|
|
|
function testScalarStuffUnpack(scalarStuff) {
|
|
assert.strictEqual(scalarStuff.justI8, -1);
|
|
assert.strictEqual(scalarStuff.maybeI8, undefined);
|
|
assert.strictEqual(scalarStuff.defaultI8, 42);
|
|
assert.strictEqual(scalarStuff.justU8, 1);
|
|
assert.strictEqual(scalarStuff.maybeU8, undefined);
|
|
assert.strictEqual(scalarStuff.defaultU8, 42);
|
|
}
|
|
|
|
function createScalarStuff(fbb) {
|
|
ScalarStuff.startScalarStuff(fbb);
|
|
ScalarStuff.addJustI8(fbb, -1);
|
|
ScalarStuff.addJustU8(fbb, 1);
|
|
var offset = ScalarStuff.endScalarStuff(fbb);
|
|
ScalarStuff.finishScalarStuffBuffer(fbb, offset);
|
|
}
|
|
|
|
function main() {
|
|
var fbb = new flatbuffers.Builder();
|
|
|
|
createScalarStuff(fbb);
|
|
|
|
var buf = new flatbuffers.ByteBuffer(fbb.asUint8Array());
|
|
var scalarStuff = ScalarStuff.getRootAsScalarStuff(buf);
|
|
|
|
testScalarStuffBuf(scalarStuff);
|
|
|
|
testScalarStuffUnpack(scalarStuff.unpack());
|
|
|
|
var scalarStuff_to = new ScalarStuffT();
|
|
scalarStuff.unpackTo(scalarStuff_to);
|
|
|
|
testScalarStuffUnpack(scalarStuff_to);
|
|
|
|
fbb.clear();
|
|
ScalarStuff.finishScalarStuffBuffer(fbb, scalarStuff_to.pack(fbb));
|
|
var unpackBuf = new flatbuffers.ByteBuffer(fbb.asUint8Array());
|
|
|
|
testScalarStuffBuf(ScalarStuff.getRootAsScalarStuff(unpackBuf));
|
|
|
|
console.log('FlatBuffers --ts-undefined-for-optionals test: completed successfully');
|
|
}
|
|
|
|
main();
|