diff options
author | Björn Harrtell <bjornharrtell@users.noreply.github.com> | 2023-04-06 03:26:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-06 01:26:05 +0000 |
commit | 0888e7cb4d4d3b3a54aefd761b04d36215cb31ed (patch) | |
tree | dde967bd1630cc80ba9ee1c55b66756b98b1cf9c | |
parent | 876a64aae138be5d9eb9245348719a18161d8e09 (diff) | |
download | flatbuffers-0888e7cb4d4d3b3a54aefd761b04d36215cb31ed.tar.gz flatbuffers-0888e7cb4d4d3b3a54aefd761b04d36215cb31ed.tar.bz2 flatbuffers-0888e7cb4d4d3b3a54aefd761b04d36215cb31ed.zip |
TS/JS: Use minvalue from enum if not found (#7888)
Co-authored-by: Derek Bailey <derekbailey@google.com>
-rw-r--r-- | src/idl_gen_ts.cpp | 15 | ||||
-rw-r--r-- | tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs | 4 | ||||
-rw-r--r-- | tests/ts/monster_test_generated.cjs | 10 | ||||
-rw-r--r-- | tests/ts/my-game/example/vec3.js | 3 | ||||
-rw-r--r-- | tests/ts/my-game/example/vec3.ts | 2 | ||||
-rw-r--r-- | tests/ts/typescript_keywords_generated.cjs | 17 | ||||
-rw-r--r-- | tests/ts/union_vector/union_vector_generated.cjs | 4 |
7 files changed, 11 insertions, 44 deletions
diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index af0836ac..ca072f1c 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -474,14 +474,13 @@ class TsGenerator : public BaseGenerator { return "BigInt('" + value.constant + "')"; } default: { - if (auto val = value.type.enum_def->FindByValue(value.constant)) { - return AddImport(imports, *value.type.enum_def, - *value.type.enum_def) - .name + - "." + namer_.Variant(*val); - } else { - return value.constant; - } + EnumVal *val = value.type.enum_def->FindByValue(value.constant); + if (val == nullptr) + val = const_cast<EnumVal *>(value.type.enum_def->MinValue()); + return AddImport(imports, *value.type.enum_def, + *value.type.enum_def) + .name + + "." + namer_.Variant(*val); } } } diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs index ec2df633..3ae6bcd0 100644 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); diff --git a/tests/ts/monster_test_generated.cjs b/tests/ts/monster_test_generated.cjs index 8eb338e6..3f05fd0a 100644 --- a/tests/ts/monster_test_generated.cjs +++ b/tests/ts/monster_test_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); @@ -818,7 +814,7 @@ var Vec3 = class { } }; var Vec3T = class { - constructor(x = 0, y = 0, z = 0, test1 = 0, test2 = 0, test3 = null) { + constructor(x = 0, y = 0, z = 0, test1 = 0, test2 = Color.Red, test3 = null) { this.x = x; this.y = y; this.z = z; @@ -932,10 +928,6 @@ var Monster2 = class { const offset = this.bb.__offset(this.bb_pos, 24); return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } - /** - * an example documentation comment: this will end up in the generated code - * multiline too - */ testarrayoftables(index, obj) { const offset = this.bb.__offset(this.bb_pos, 26); return offset ? (obj || new Monster2()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/my-game/example/vec3.js b/tests/ts/my-game/example/vec3.js index 655fa7e5..cd5b0346 100644 --- a/tests/ts/my-game/example/vec3.js +++ b/tests/ts/my-game/example/vec3.js @@ -1,4 +1,5 @@ // automatically generated by the FlatBuffers compiler, do not modify +import { Color } from '../../my-game/example/color.js'; import { Test } from '../../my-game/example/test.js'; export class Vec3 { constructor() { @@ -83,7 +84,7 @@ export class Vec3 { } } export class Vec3T { - constructor(x = 0.0, y = 0.0, z = 0.0, test1 = 0.0, test2 = 0, test3 = null) { + constructor(x = 0.0, y = 0.0, z = 0.0, test1 = 0.0, test2 = Color.Red, test3 = null) { this.x = x; this.y = y; this.z = z; diff --git a/tests/ts/my-game/example/vec3.ts b/tests/ts/my-game/example/vec3.ts index ad6cafaa..9e31323b 100644 --- a/tests/ts/my-game/example/vec3.ts +++ b/tests/ts/my-game/example/vec3.ts @@ -118,7 +118,7 @@ constructor( public y: number = 0.0, public z: number = 0.0, public test1: number = 0.0, - public test2: Color = 0, + public test2: Color = Color.Red, public test3: TestT|null = null ){} diff --git a/tests/ts/typescript_keywords_generated.cjs b/tests/ts/typescript_keywords_generated.cjs index 5e2e1a87..a25f9adb 100644 --- a/tests/ts/typescript_keywords_generated.cjs +++ b/tests/ts/typescript_keywords_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); @@ -250,9 +246,6 @@ var Type = class { this.bb.writeUint16(this.bb_pos + offset, value); return true; } - /** - * The size (octets) of the `base_type` field. - */ baseSize() { const offset = this.bb.__offset(this.bb_pos, 12); return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; @@ -265,9 +258,6 @@ var Type = class { this.bb.writeUint32(this.bb_pos + offset, value); return true; } - /** - * The size (octets) of the `element` field, if present. - */ elementSize() { const offset = this.bb.__offset(this.bb_pos, 14); return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; @@ -789,9 +779,6 @@ var Field = class { this.bb.writeInt8(this.bb_pos + offset, +value); return true; } - /** - * Number of padding octets to always add after this field. Structs only. - */ padding() { const offset = this.bb.__offset(this.bb_pos, 28); return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; @@ -1564,10 +1551,6 @@ var Schema = class { this.bb.writeUint64(this.bb_pos + offset, value); return true; } - /** - * All the files used in this compilation. Files are relative to where - * flatc was invoked. - */ fbsFiles(index, obj) { const offset = this.bb.__offset(this.bb_pos, 18); return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/union_vector/union_vector_generated.cjs b/tests/ts/union_vector/union_vector_generated.cjs index b63140cd..ab4b0dcf 100644 --- a/tests/ts/union_vector/union_vector_generated.cjs +++ b/tests/ts/union_vector/union_vector_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); |