@sentio/sdk 2.39.3 → 2.39.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './types.js';
3
3
  export * from './entity.js';
4
4
  export * from './store.js';
5
5
  export * from './context.js';
6
+ export * from './convert.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -3,4 +3,5 @@ export * from './types.js';
3
3
  export * from './entity.js';
4
4
  export * from './store.js';
5
5
  export * from './context.js';
6
+ export * from './convert.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -1,12 +1,25 @@
1
1
  import { Entity, EntityClass } from './entity.js';
2
2
  import { StoreContext } from './context.js';
3
+ import { BigDecimal } from '@sentio/bigdecimal';
4
+ import { Bytes, DateTime, Float, ID, Int } from './types.js';
5
+ type Value = ID | string | Int | Float | boolean | DateTime | Bytes | BigDecimal | bigint;
3
6
  export declare class Store {
4
7
  private readonly context;
5
8
  constructor(context: StoreContext);
6
9
  get<T extends Entity>(entity: EntityClass<T> | string, id: string): Promise<T | undefined>;
7
10
  delete(entity: EntityClass<any>, id: string | string[]): Promise<void>;
8
11
  upsert<T extends Entity>(entity: T | T[]): Promise<void>;
9
- list<T extends Entity>(entity: EntityClass<T>, limit?: number, offset?: number): Promise<T[]>;
12
+ list<T extends Entity>(entity: EntityClass<T>, filters?: ListFilter<T>[]): AsyncGenerator<T, void, unknown>;
10
13
  private newEntity;
11
14
  }
15
+ export type Operators = '=' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not in';
16
+ export interface ListFilter<T extends Entity> {
17
+ field: keyof T;
18
+ op: Operators;
19
+ value: Value | Value[] | null;
20
+ }
21
+ export interface ListOptions<T extends Entity> {
22
+ cursor: string;
23
+ }
24
+ export {};
12
25
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAE5C,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAe1F,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtE,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAenG,OAAO,CAAC,SAAS;CAYlB"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAK5D,KAAK,KAAK,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAA;AAEzF,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAE5C,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAiB1F,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtE,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;IA2B/E,OAAO,CAAC,SAAS;CAclB;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAA;AAE9E,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM;IAC1C,KAAK,EAAE,MAAM,CAAC,CAAA;IACd,EAAE,EAAE,SAAS,CAAA;IACb,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -1,6 +1,8 @@
1
1
  import { Entity } from './entity.js';
2
2
  import { DatabaseSchema } from '../core/index.js';
3
3
  import { BigDecimal } from '@sentio/bigdecimal';
4
+ import { DBRequest_DBOperator } from '@sentio/protos';
5
+ import { toBigInteger } from './convert.js';
4
6
  export class Store {
5
7
  context;
6
8
  constructor(context) {
@@ -14,8 +16,9 @@ export class Store {
14
16
  }
15
17
  });
16
18
  const data = (await promise);
17
- if (data?.['id'] != null) {
18
- return this.newEntity(entity, data);
19
+ if (data.entities?.entities[0]) {
20
+ const entityData = data.entities.entities[0];
21
+ return this.newEntity(entity, entityData);
19
22
  }
20
23
  return undefined;
21
24
  }
@@ -41,67 +44,102 @@ export class Store {
41
44
  const promise = this.context.sendRequest({
42
45
  upsert: {
43
46
  entity: entities.map((e) => e.constructor.prototype.entityName),
44
- data: entities.map((e) => serialize(e.data)),
45
- id: entities.map((e) => e.id)
47
+ // data: entities.map((e) => serialize(e.data)),
48
+ id: entities.map((e) => e.id),
49
+ entityData: entities.map((e) => e.serialize())
46
50
  }
47
51
  });
48
52
  await promise;
49
53
  }
50
- async list(entity, limit, offset) {
51
- const promise = this.context.sendRequest({
52
- list: {
53
- entity: entity.prototype.entityName,
54
- limit,
55
- offset
54
+ async *list(entity, filters) {
55
+ let cursor = undefined;
56
+ while (true) {
57
+ const promise = this.context.sendRequest({
58
+ list: {
59
+ entity: entity.prototype.entityName,
60
+ cursor,
61
+ filters: filters?.map((f) => ({
62
+ field: f.field,
63
+ op: ops[f.op],
64
+ value: { values: Array.isArray(f.value) ? f.value.map((v) => serialize(v)) : [serialize(f.value)] }
65
+ })) || []
66
+ }
67
+ });
68
+ const response = (await promise);
69
+ for (const data of response.entities?.entities || []) {
70
+ yield this.newEntity(entity, data);
56
71
  }
57
- });
58
- const list = (await promise);
59
- return list.map((data) => {
60
- return this.newEntity(entity, data);
61
- });
72
+ if (!response.nextCursor) {
73
+ break;
74
+ }
75
+ cursor = response.nextCursor;
76
+ }
62
77
  }
63
78
  newEntity(entity, data) {
64
79
  if (typeof entity == 'string') {
65
80
  const en = DatabaseSchema.findEntity(entity);
66
81
  if (!en) {
67
82
  // it is an interface
68
- return new Entity(data);
83
+ return new Entity();
69
84
  }
70
85
  entity = en;
71
86
  }
72
- return new entity(data);
87
+ const res = new entity({});
88
+ res.setData(data);
89
+ return res;
73
90
  }
74
91
  }
75
- function serialize(data) {
76
- const ret = {};
77
- for (const [k, v] of Object.entries(data)) {
78
- if (v instanceof Entity) {
79
- ret[k] = v.id;
80
- }
81
- else if (Array.isArray(v) && v[0] instanceof Entity) {
82
- ret[k] = v.map((e) => e.id);
83
- }
84
- else if (typeof v === 'bigint') {
85
- ret[k] = v.toString();
86
- }
87
- else if (typeof v === 'object') {
88
- if (v instanceof Date) {
89
- ret[k] = v.toISOString();
90
- }
91
- else if (v instanceof Uint8Array) {
92
- ret[k] = Buffer.from(v).toString('hex');
93
- }
94
- else if (v instanceof BigDecimal) {
95
- ret[k] = v.toString();
96
- }
97
- else {
98
- ret[k] = serialize(v);
99
- }
100
- }
101
- else {
102
- ret[k] = v;
103
- }
92
+ const ops = {
93
+ '=': DBRequest_DBOperator.EQ,
94
+ '!=': DBRequest_DBOperator.NE,
95
+ '<': DBRequest_DBOperator.LT,
96
+ '<=': DBRequest_DBOperator.LE,
97
+ '>': DBRequest_DBOperator.GT,
98
+ '>=': DBRequest_DBOperator.GE,
99
+ in: DBRequest_DBOperator.IN,
100
+ 'not in': DBRequest_DBOperator.NOT_IN
101
+ };
102
+ function serialize(v) {
103
+ if (v == null) {
104
+ return { nullValue: 0 };
105
+ }
106
+ if (typeof v == 'boolean') {
107
+ return { boolValue: v };
108
+ }
109
+ if (typeof v == 'string') {
110
+ return { stringValue: v };
111
+ }
112
+ if (typeof v == 'number') {
113
+ return { floatValue: v };
104
114
  }
105
- return ret;
115
+ if (typeof v == 'bigint') {
116
+ return {
117
+ bigintValue: toBigInteger(v)
118
+ };
119
+ }
120
+ if (v instanceof BigDecimal) {
121
+ return serializeBigDecimal(v);
122
+ }
123
+ if (v instanceof Date) {
124
+ return {
125
+ timestampValue: v
126
+ };
127
+ }
128
+ if (v instanceof Uint8Array) {
129
+ return { bytesValue: v };
130
+ }
131
+ if (Array.isArray(v)) {
132
+ return {
133
+ listValue: { values: v.map((v) => serialize(v)) }
134
+ };
135
+ }
136
+ return {
137
+ nullValue: 0
138
+ };
139
+ }
140
+ function serializeBigDecimal(v) {
141
+ return {
142
+ bigdecimalValue: undefined
143
+ };
106
144
  }
107
145
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- export type { BigDecimal } from '@sentio/bigdecimal';
2
1
  export type ID = string;
3
2
  export type String = string;
4
3
  export type Int = number;
5
4
  export type Float = number;
6
5
  export type Boolean = boolean;
7
6
  export type DateTime = Date;
8
- export type Json = any;
9
7
  export type Bytes = Uint8Array;
10
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAA;AACvB,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AACxB,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC3B,MAAM,MAAM,IAAI,GAAG,GAAG,CAAA;AACtB,MAAM,MAAM,KAAK,GAAG,UAAU,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,EAAE,GAAG,MAAM,CAAA;AACvB,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAC3B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAA;AACxB,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAC1B,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAA;AAC3B,MAAM,MAAM,KAAK,GAAG,UAAU,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.39.3",
3
+ "version": "2.39.4-rc.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -82,8 +82,8 @@
82
82
  "typedoc": "^0.25.7",
83
83
  "utility-types": "^3.11.0",
84
84
  "yaml": "^2.3.4",
85
- "@sentio/protos": "2.39.3",
86
- "@sentio/runtime": "^2.39.3"
85
+ "@sentio/protos": "2.39.4-rc.1",
86
+ "@sentio/runtime": "^2.39.4-rc.1"
87
87
  },
88
88
  "peerDependencies": {
89
89
  "tsup": "npm:@sentio/tsup@^6.7.2"
@@ -38,20 +38,17 @@ async function codegenInternal(schema: GraphQLSchema, source: string, target: st
38
38
  '/* Autogenerated file. Do not edit manually. */\n',
39
39
  '/* tslint:disable */',
40
40
  '/* eslint-disable */',
41
- "import {entity, derivedFrom, DateTime, Int, Float, String, Json, Bytes, ID, Entity, Store} from '@sentio/sdk/store'",
42
- `import { DatabaseSchema, BigDecimal } from "@sentio/sdk"`
41
+ "import { entity, derivedFrom, DateTime, Int, Float, String, Bytes, Boolean, ID, Entity, Store } from '@sentio/sdk/store'",
42
+ `import { BigDecimalConverter, BigIntConverter, IntConverter, StringConverter, IDConverter, BooleanConverter, BytesConverter, DateTimeConverter, FloatConverter, StructConverter, required_, array_, enumerate_, objectId_ } from '@sentio/sdk/store'`,
43
+ `import { DatabaseSchema, BigDecimal } from "@sentio/sdk"`,
44
+ `type BigInt = bigint`
43
45
  ]
44
46
  const entities: string[] = []
47
+
45
48
  for (const t of Object.values(schema.getTypeMap())) {
46
49
  if (t.name.startsWith('__')) {
47
50
  continue
48
51
  }
49
-
50
- if (t instanceof GraphQLObjectType) {
51
- const entityContent = genEntity(t)
52
- results.push(entityContent)
53
- entities.push(t.name)
54
- }
55
52
  if (t instanceof GraphQLEnumType) {
56
53
  results.push(genEnum(t))
57
54
  }
@@ -59,6 +56,17 @@ async function codegenInternal(schema: GraphQLSchema, source: string, target: st
59
56
  results.push(genInterface(t))
60
57
  }
61
58
  }
59
+ for (const t of Object.values(schema.getTypeMap())) {
60
+ if (t.name.startsWith('__')) {
61
+ continue
62
+ }
63
+
64
+ if (t instanceof GraphQLObjectType) {
65
+ const entityContent = genEntity(t)
66
+ results.push(entityContent)
67
+ entities.push(t.name)
68
+ }
69
+ }
62
70
 
63
71
  const contents =
64
72
  results.join('\n') +
@@ -96,11 +104,11 @@ const graphqlTypes = Object.entries(JsTypes).reduce(
96
104
  {} as Record<string, string>
97
105
  )
98
106
 
99
- function genType(type: GraphQLOutputType): string {
107
+ function genType(type: GraphQLOutputType, required?: boolean): string {
100
108
  if (type instanceof GraphQLNonNull) {
101
- return genType(type.ofType)
109
+ return genType(type.ofType, true)
102
110
  } else if (type instanceof GraphQLScalarType) {
103
- return type.name
111
+ return required ? type.name : `${type.name} | undefined`
104
112
  } else if (type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType) {
105
113
  return type.name
106
114
  } else if (type instanceof GraphQLList) {
@@ -138,44 +146,48 @@ function getElementType(type: GraphQLOutputType) {
138
146
  return type
139
147
  }
140
148
 
149
+ const getConverter = (t: GraphQLOutputType): string => {
150
+ if (t instanceof GraphQLNonNull) {
151
+ return `required_(${getConverter(t.ofType)})`
152
+ }
153
+ if (t instanceof GraphQLList) {
154
+ return `array_(${getConverter(t.ofType)})`
155
+ }
156
+ if (t instanceof GraphQLEnumType) {
157
+ return `enumerate_<${t.name}>(${t.name})`
158
+ }
159
+ if (isObject(t)) {
160
+ return `objectId_<${genType(getElementType(t))}>()`
161
+ }
162
+ return `${t.name}Converter`
163
+ }
164
+
141
165
  function genField(field: GraphQLField<any, any>) {
142
166
  const isNonNull = field.type instanceof GraphQLNonNull
143
167
  const directives = field.astNode?.directives?.map((d) => '\t' + directive2decorator(d) + '\n') || []
144
168
 
145
169
  const type = genType(field.type)
146
- const returnType = isNonNull ? type : `${type} | undefined`
147
170
 
148
171
  if (isObject(field.type)) {
149
172
  const t = getElementType(field.type)
150
173
  const typeAsArg = isInterfaceType(t) ? `"${t}"` : genType(t)
151
174
 
152
175
  if (isList(field.type)) {
176
+ const required = (field.type as GraphQLList<any>).ofType instanceof GraphQLNonNull
177
+ const converter = required ? `array_(required_(IDConverter))` : `array_(IDConverter)`
178
+ const returnType = required ? `ID[]` : `Array<ID | undefined>`
153
179
  return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)}[]> { return this.getFieldObjectArray(${typeAsArg}, "${field.name}") as Promise<${genType(t)}[]> }
154
- set ${field.name}(value: ${type} | ID[]) { this.set("${field.name}", value) }
155
- get ${field.name}Ids(): ID[] { return this.get("${field.name}") }`
180
+ set ${field.name}(value: ${type} | ID[]) { this.setObject("${field.name}", value) }
181
+ get ${field.name}Ids(): ${returnType} { return this.get("${field.name}", ${converter}) }`
156
182
  }
157
183
 
158
- return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)} | undefined> { return this.getFieldObject(${typeAsArg},"${field.name}") as Promise<${genType(t)} | undefined> }
159
- set ${field.name}(value: ${type} | ID) { this.set("${field.name}", value) }
160
- get ${field.name}Id(): ID | undefined { return this.get("${field.name}") }`
161
- }
162
-
163
- if (returnType == 'BigInt') {
164
- return `${directives.join()}\tget ${field.name}(): bigint { return BigInt(this.get("${field.name}")) }
165
- set ${field.name}(value: ${type}) { this.set("${field.name}", value.toString()) }`
166
- }
167
- if (returnType == 'BigDecimal') {
168
- return `${directives.join()}\tget ${field.name}(): ${returnType} { return new BigDecimal(this.get("${field.name}")) }
169
- set ${field.name}(value: ${type}) { this.set("${field.name}", value.toString()) }`
170
- }
171
-
172
- if (returnType == 'Bytes') {
173
- return `${directives.join()}\tget ${field.name}(): ${returnType} { return Uint8Array.from(Buffer.from(this.get<string>("${field.name}"), 'hex')) ) }
174
- set ${field.name}(value: ${type}) { this.set("${field.name}", Buffer.from(value).toString('hex')) }`
184
+ return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)} | undefined> { return this.getObject(${typeAsArg},"${field.name}") as Promise<${genType(t)} | undefined> }
185
+ set ${field.name}(value: ${type} | ID) { this.set("${field.name}", value, objectId_<${type}>()) }
186
+ get ${field.name}Id(): ID | undefined { return this.get("${field.name}", IDConverter) }`
175
187
  }
176
188
 
177
- return `${directives.join()}\tget ${field.name}(): ${returnType} { return this.get("${field.name}") }
178
- set ${field.name}(value: ${type}) { this.set("${field.name}", value) }`
189
+ return `${directives.join()}\tget ${field.name}(): ${type} { return this.get("${field.name}", ${getConverter(field.type)}) }
190
+ set ${field.name}(value: ${type}) { this.set("${field.name}", value, ${getConverter(field.type)}) }`
179
191
  }
180
192
 
181
193
  function genDataType(t: GraphQLObjectType<any, any>) {
@@ -217,13 +229,24 @@ ${genDataType(t)}
217
229
  ${decorators.join('\n')}
218
230
  @entity("${t.name}")
219
231
  export class ${t.name} extends Entity${impls} {
232
+ ${genConverters(t)}
220
233
  constructor(data: Partial<${t.name}Data>) {
221
- super(data)
234
+ super(${t.name}.entityConverter.from(data))
222
235
  }
223
236
  ${Object.values(t.getFields()).map(genField).join('\n')}
224
237
  }`
225
238
  }
226
239
 
240
+ function genConverters(t: GraphQLObjectType<any, any>) {
241
+ const fields = Object.values(t.getFields())
242
+ const converters = fields.map((f) => {
243
+ const type = genType(f.type)
244
+ const converter = getConverter(f.type)
245
+ return `\t\t${f.name}: ${converter},`
246
+ })
247
+ return `static entityConverter = new StructConverter({\n ${converters.join('\n')} \n})`
248
+ }
249
+
227
250
  function genInterface(t: GraphQLInterfaceType) {
228
251
  return `
229
252
  export interface ${t.name} {
@@ -250,7 +273,7 @@ function genEnum(t: GraphQLEnumType) {
250
273
  export enum ${t.name} {
251
274
  ${t
252
275
  .getValues()
253
- .map((v) => `\t${v.name}`)
276
+ .map((v) => `\t${v.name} = "${v.value}"`)
254
277
  .join(', ')}
255
278
  }`
256
279
  }