Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TS/JS] Use minvalue from enum if not found #7888

Merged
merged 2 commits into from
Apr 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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