[TS] Add Obj API (#5788)

* added basic code

* backup work

* got class property to work

* backup progress

* implementented fmt for creating code

* added docs for genFieldUtils

* back up work

* added base helper js func

* added union js code

* added unpackTo and base for pack

* added pack code

* added null check for packing struct list

* passes compile test

* fixed some spacing of generated functions

* added annotations for constructors

* added obj api unpack test

* tested pack to work

* merge branch

* separated js and ts test

* fixed union signature to include string

* fixed generator to support string union

* hardcoded fb builder name

* refactored struct vector creation

* work around createLong

* handle default value in constructor

* update typescript docs

* added notes about import flag

* fixed formatting stuffs

* undo TypescriptTest change

* refactored fmt

* updated generated code

* remove ignoring union_vector for js

* revert changes for .project

* revert changes for package.json

* don't generate js in ts test

* fixed android project file

* removed unused js function

* removed package-lock.json

* adjust createObjList to new signature

* changed regex to callback style

* fixed package.json

* used existing func for generating annotation

* changed ternary to !!

* added return type for lambda

* removed callback style for obj api generator

* fixed js file indentation

* removed unused header

* added tests for string only union

* handle string only union and refactor union conv func

* updated generated ts files

* renamed union conv func

* made js test create files like other languages

* removed union string only handling

* don't allow null in createObjectOffsetList

* updated generated ts code

* changed the line that triggers Windows build errors

* hopefully fix CI error
This commit is contained in:
Khoi Dinh Trinh
2020-04-09 09:53:16 -07:00
committed by GitHub
parent 21cf300f4c
commit 003e164057
12 changed files with 2159 additions and 57 deletions

View File

@@ -8,7 +8,8 @@ export enum EnumInNestedNS{
A= 0,
B= 1,
C= 2
}};
};
}
/**
* @constructor
@@ -100,6 +101,42 @@ static createTableInNestedNS(builder:flatbuffers.Builder, foo:number):flatbuffer
TableInNestedNS.addFoo(builder, foo);
return TableInNestedNS.endTableInNestedNS(builder);
}
/**
* @returns TableInNestedNST
*/
unpack(): TableInNestedNST {
return new TableInNestedNST(
this.foo()
);
};
/**
* @param TableInNestedNST _o
*/
unpackTo(_o: TableInNestedNST): void {
_o.foo = this.foo();
};
}
export class TableInNestedNST {
/**
* @constructor
* @param number foo
*/
constructor(
public foo: number = 0
){};
/**
* @param flatbuffers.Builder builder
* @returns flatbuffers.Offset
*/
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
return TableInNestedNS.createTableInNestedNS(builder,
this.foo
);
};
}
}
/**
@@ -178,5 +215,46 @@ static createStructInNestedNS(builder:flatbuffers.Builder, a: number, b: number)
return builder.offset();
};
/**
* @returns StructInNestedNST
*/
unpack(): StructInNestedNST {
return new StructInNestedNST(
this.a(),
this.b()
);
};
/**
* @param StructInNestedNST _o
*/
unpackTo(_o: StructInNestedNST): void {
_o.a = this.a();
_o.b = this.b();
};
}
export class StructInNestedNST {
/**
* @constructor
* @param number a
* @param number b
*/
constructor(
public a: number = 0,
public b: number = 0
){};
/**
* @param flatbuffers.Builder builder
* @returns flatbuffers.Offset
*/
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
return StructInNestedNS.createStructInNestedNS(builder,
this.a,
this.b
);
};
}
}

View File

@@ -127,6 +127,52 @@ static createTableInFirstNS(builder:flatbuffers.Builder, fooTableOffset:flatbuff
TableInFirstNS.addFooStruct(builder, fooStructOffset);
return TableInFirstNS.endTableInFirstNS(builder);
}
/**
* @returns TableInFirstNST
*/
unpack(): TableInFirstNST {
return new TableInFirstNST(
(this.fooTable() !== null ? this.fooTable()!.unpack() : null),
this.fooEnum(),
(this.fooStruct() !== null ? this.fooStruct()!.unpack() : null)
);
};
/**
* @param TableInFirstNST _o
*/
unpackTo(_o: TableInFirstNST): void {
_o.fooTable = (this.fooTable() !== null ? this.fooTable()!.unpack() : null);
_o.fooEnum = this.fooEnum();
_o.fooStruct = (this.fooStruct() !== null ? this.fooStruct()!.unpack() : null);
};
}
export class TableInFirstNST {
/**
* @constructor
* @param NS8755221360535654258.NamespaceA.NamespaceB.TableInNestedNST|null fooTable
* @param NS8755221360535654258.NamespaceA.NamespaceB.EnumInNestedNS fooEnum
* @param NS8755221360535654258.NamespaceA.NamespaceB.StructInNestedNST|null fooStruct
*/
constructor(
public fooTable: NS8755221360535654258.NamespaceA.NamespaceB.TableInNestedNST|null = null,
public fooEnum: NS8755221360535654258.NamespaceA.NamespaceB.EnumInNestedNS = NS8755221360535654258.NamespaceA.NamespaceB.EnumInNestedNS.A,
public fooStruct: NS8755221360535654258.NamespaceA.NamespaceB.StructInNestedNST|null = null
){};
/**
* @param flatbuffers.Builder builder
* @returns flatbuffers.Offset
*/
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
return TableInFirstNS.createTableInFirstNS(builder,
(this.fooTable !== null ? this.fooTable!.pack(builder) : 0),
this.fooEnum,
(this.fooStruct !== null ? this.fooStruct!.pack(builder) : 0)
);
};
}
}
/**
@@ -223,6 +269,47 @@ static createTableInC(builder:flatbuffers.Builder, referToA1Offset:flatbuffers.O
TableInC.addReferToA2(builder, referToA2Offset);
return TableInC.endTableInC(builder);
}
/**
* @returns TableInCT
*/
unpack(): TableInCT {
return new TableInCT(
(this.referToA1() !== null ? this.referToA1()!.unpack() : null),
(this.referToA2() !== null ? this.referToA2()!.unpack() : null)
);
};
/**
* @param TableInCT _o
*/
unpackTo(_o: TableInCT): void {
_o.referToA1 = (this.referToA1() !== null ? this.referToA1()!.unpack() : null);
_o.referToA2 = (this.referToA2() !== null ? this.referToA2()!.unpack() : null);
};
}
export class TableInCT {
/**
* @constructor
* @param NamespaceA.TableInFirstNST|null referToA1
* @param NamespaceA.SecondTableInAT|null referToA2
*/
constructor(
public referToA1: NamespaceA.TableInFirstNST|null = null,
public referToA2: NamespaceA.SecondTableInAT|null = null
){};
/**
* @param flatbuffers.Builder builder
* @returns flatbuffers.Offset
*/
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
return TableInC.createTableInC(builder,
(this.referToA1 !== null ? this.referToA1!.pack(builder) : 0),
(this.referToA2 !== null ? this.referToA2!.pack(builder) : 0)
);
};
}
}
/**
@@ -301,5 +388,41 @@ static createSecondTableInA(builder:flatbuffers.Builder, referToCOffset:flatbuff
SecondTableInA.addReferToC(builder, referToCOffset);
return SecondTableInA.endSecondTableInA(builder);
}
/**
* @returns SecondTableInAT
*/
unpack(): SecondTableInAT {
return new SecondTableInAT(
(this.referToC() !== null ? this.referToC()!.unpack() : null)
);
};
/**
* @param SecondTableInAT _o
*/
unpackTo(_o: SecondTableInAT): void {
_o.referToC = (this.referToC() !== null ? this.referToC()!.unpack() : null);
};
}
export class SecondTableInAT {
/**
* @constructor
* @param NamespaceC.TableInCT|null referToC
*/
constructor(
public referToC: NamespaceC.TableInCT|null = null
){};
/**
* @param flatbuffers.Builder builder
* @returns flatbuffers.Offset
*/
pack(builder:flatbuffers.Builder): flatbuffers.Offset {
return SecondTableInA.createSecondTableInA(builder,
(this.referToC !== null ? this.referToC!.pack(builder) : 0)
);
};
}
}