Skip to content

Commit

Permalink
TS/JS: Use minvalue from enum if not found (#7888)
Browse files Browse the repository at this point in the history
Co-authored-by: Derek Bailey <derekbailey@google.com>
  • Loading branch information
bjornharrtell and dbaileychess authored Apr 6, 2023
1 parent 876a64a commit 0888e7c
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 44 deletions.
15 changes: 7 additions & 8 deletions src/idl_gen_ts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
));
Expand Down
10 changes: 1 addition & 9 deletions tests/ts/monster_test_generated.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -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
));
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion tests/ts/my-game/example/vec3.js
Original file line number Diff line number Diff line change
@@ -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() {
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion tests/ts/my-game/example/vec3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
){}

Expand Down
17 changes: 0 additions & 17 deletions tests/ts/typescript_keywords_generated.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -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
));
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
4 changes: 0 additions & 4 deletions tests/ts/union_vector/union_vector_generated.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -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
));
Expand Down

0 comments on commit 0888e7c

Please sign in to comment.