[TS/JS] Entry point per namespace and reworked 1.x compatible single file build (#7510)

* [TS/JS] Entry point per namespace

* Fix handling of outputpath and array_test

* Attempt to fix generate_code

* Fix cwd for ts in generate_code

* Attempt to fixup bazel and some docs

* Add --ts-flat-files to bazel build to get bundle

* Move to DEFAULT_FLATC_TS_ARGS

* Attempt to add esbuild

* Attempt to use npm instead

* Remove futile attempt to add esbuild

* Attempt to as bazel esbuild

* Shuffle

* Upgrade bazel deps

* Revert failed attempts to get bazel working

* Ignore flatc tests for now

* Add esbuild dependency

* `package.json` Include esbuild

* `WORKSPACE` Add fetching esbuild binary

* Update WORKSPACE

* Unfreeze Lockfile

* Update WORKSPACE

* Update BUILD.bazel

* Rework to suggest instead of running external bundler

* Add esbuild generation to test script

* Prelim bundle test

* Run test JavaScriptTest from flatbuffers 1.x

* Deps upgrade

* Clang format fix

* Revert bazel changes

* Fix newline

* Generate with type declarations

* Handle "empty" root namespace

* Adjust tests for typescript_keywords.ts

* Separate test procedure for old node resolution module output

* Fix rel path for root level re-exports

* Bazel support for esbuild-based flatc

Unfortunately, we lose typing information because the new esbuild method
of generating single files does not generate type information.

The method used here is a bit hack-ish because it relies on parsing the
console output of flatc to figure out what to do.

* Try to fix bazel build for when node isn't present on host

* Auto formatting fixes

* Fix missing generated code

Co-authored-by: Derek Bailey <derekbailey@google.com>
Co-authored-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
This commit is contained in:
Björn Harrtell
2023-01-21 21:22:22 +01:00
committed by GitHub
parent 1703662285
commit ef76b5ece4
249 changed files with 11509 additions and 15906 deletions

4
tests/ts/typescript/class.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
export declare enum class_ {
new_ = 0,
instanceof_ = 1
}

View File

@@ -3,4 +3,4 @@ export var class_;
(function (class_) {
class_[class_["new_"] = 0] = "new_";
class_[class_["instanceof_"] = 1] = "instanceof_";
})(class_ || (class_ = {}));
})(class_ = class_ || (class_ = {}));

48
tests/ts/typescript/object.d.ts vendored Normal file
View File

@@ -0,0 +1,48 @@
import * as flatbuffers from 'flatbuffers';
import { Abc } from '../foobar/abc.js';
import { class_ as foobar_class_ } from '../foobar/class.js';
import { Schema, SchemaT } from '../reflection/schema.js';
import { class_ } from '../typescript/class.js';
export declare class Object_ implements flatbuffers.IUnpackableObject<Object_T> {
bb: flatbuffers.ByteBuffer | null;
bb_pos: number;
__init(i: number, bb: flatbuffers.ByteBuffer): Object_;
static getRootAsObject(bb: flatbuffers.ByteBuffer, obj?: Object_): Object_;
static getSizePrefixedRootAsObject(bb: flatbuffers.ByteBuffer, obj?: Object_): Object_;
return_(): number;
mutate_return(value: number): boolean;
if_(): number;
mutate_if(value: number): boolean;
switch_(): number;
mutate_switch(value: number): boolean;
enum_(): class_;
mutate_enum(value: class_): boolean;
enum2(): foobar_class_;
mutate_enum2(value: foobar_class_): boolean;
enum3(): Abc;
mutate_enum3(value: Abc): boolean;
reflect(obj?: Schema): Schema | null;
static getFullyQualifiedName(): string;
static startObject(builder: flatbuffers.Builder): void;
static addReturn(builder: flatbuffers.Builder, return_: number): void;
static addIf(builder: flatbuffers.Builder, if_: number): void;
static addSwitch(builder: flatbuffers.Builder, switch_: number): void;
static addEnum(builder: flatbuffers.Builder, enum_: class_): void;
static addEnum2(builder: flatbuffers.Builder, enum2: foobar_class_): void;
static addEnum3(builder: flatbuffers.Builder, enum3: Abc): void;
static addReflect(builder: flatbuffers.Builder, reflectOffset: flatbuffers.Offset): void;
static endObject(builder: flatbuffers.Builder): flatbuffers.Offset;
unpack(): Object_T;
unpackTo(_o: Object_T): void;
}
export declare class Object_T implements flatbuffers.IGeneratedObject {
return_: number;
if_: number;
switch_: number;
enum_: class_;
enum2: foobar_class_;
enum3: Abc;
reflect: SchemaT | null;
constructor(return_?: number, if_?: number, switch_?: number, enum_?: class_, enum2?: foobar_class_, enum3?: Abc, reflect?: SchemaT | null);
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
}