mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 12:05:50 +00:00
Add --ts-undefined-for-optionals command line option (#8861)
* 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>
This commit is contained in:
committed by
GitHub
parent
95ff1f1d80
commit
3211f857d1
60
tests/ts/JavaScriptUndefinedForOptionals.js
Normal file
60
tests/ts/JavaScriptUndefinedForOptionals.js
Normal file
@@ -0,0 +1,60 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user