@sentio/sdk 2.39.4-rc.8 → 2.39.4-rc.9

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.
@@ -9,7 +9,6 @@ export declare function Entity(name: string): <T extends Constructor>(BaseClass:
9
9
  [x: string]: any;
10
10
  readonly _data: RichStruct;
11
11
  };
12
- entityName: string;
13
12
  } & T;
14
13
  export declare function Column(type: string): (target: any, propertyKey: string) => void;
15
14
  export declare function ListColumn(type?: string): (target: any, propertyKey: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAcL,cAAc,EACf,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,KAAK,WAAW,GAAG;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAA;AAUhD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,sCACkB,CAAC;kBAK3B,GAAG,EAAE;;wBAFV,UAAU;;;MAmE/B;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,YACR,GAAG,eAAe,MAAM,UAelD;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,YACjB,GAAG,eAAe,MAAM,UAuBlD;AAED,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,YACtB,GAAG,eAAe,MAAM,UAclD;AAED,eAAO,MAAM,QAAQ,WAhBM,GAAG,eAAe,MAAM,SAgBR,CAAA;AAC3C,eAAO,MAAM,SAAS,WAjBK,GAAG,eAAe,MAAM,SAiBN,CAAA;AAC7C,eAAO,MAAM,WAAW,WAlBG,GAAG,eAAe,MAAM,SAkBF,CAAA;AACjD,eAAO,MAAM,gBAAgB,WAnBF,GAAG,eAAe,MAAM,SAmBQ,CAAA;AAC3D,eAAO,MAAM,YAAY,WApBE,GAAG,eAAe,MAAM,SAoBA,CAAA;AACnD,eAAO,MAAM,YAAY,WArBE,GAAG,eAAe,MAAM,SAqBA,CAAA;AACnD,eAAO,MAAM,aAAa,WAtBC,GAAG,eAAe,MAAM,SAsBE,CAAA;AACrD,eAAO,MAAM,eAAe,WAvBD,GAAG,eAAe,MAAM,SAuBM,CAAA;AACzD,eAAO,MAAM,WAAW,WAxBG,GAAG,eAAe,MAAM,SAwBF,CAAA;AAEjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,QAOxD;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,YACP,GAAG,eAAe,MAAM,UAGlD;AAED,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,YACR,GAAG,eAAe,MAAM,UAGlD"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAcL,cAAc,EACf,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG3C,KAAK,WAAW,GAAG;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAA;AAUhD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,sCACkB,CAAC;kBAgE3B,GAAG,EAAE;;wBADV,UAAU;;MAc/B;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,YACR,GAAG,eAAe,MAAM,UAelD;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,YACjB,GAAG,eAAe,MAAM,UAuBlD;AAED,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,YACtB,GAAG,eAAe,MAAM,UAclD;AAED,eAAO,MAAM,QAAQ,WAhBM,GAAG,eAAe,MAAM,SAgBR,CAAA;AAC3C,eAAO,MAAM,SAAS,WAjBK,GAAG,eAAe,MAAM,SAiBN,CAAA;AAC7C,eAAO,MAAM,WAAW,WAlBG,GAAG,eAAe,MAAM,SAkBF,CAAA;AACjD,eAAO,MAAM,gBAAgB,WAnBF,GAAG,eAAe,MAAM,SAmBQ,CAAA;AAC3D,eAAO,MAAM,YAAY,WApBE,GAAG,eAAe,MAAM,SAoBA,CAAA;AACnD,eAAO,MAAM,YAAY,WArBE,GAAG,eAAe,MAAM,SAqBA,CAAA;AACnD,eAAO,MAAM,aAAa,WAtBC,GAAG,eAAe,MAAM,SAsBE,CAAA;AACrD,eAAO,MAAM,eAAe,WAvBD,GAAG,eAAe,MAAM,SAuBM,CAAA;AACzD,eAAO,MAAM,WAAW,WAxBG,GAAG,eAAe,MAAM,SAwBF,CAAA;AAEjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,QAOxD;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,YACP,GAAG,eAAe,MAAM,UAGlD;AAED,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,YACR,GAAG,eAAe,MAAM,UAGlD"}
@@ -11,70 +11,73 @@ function handleError(entity, key, fn) {
11
11
  }
12
12
  export function Entity(name) {
13
13
  return function (BaseClass) {
14
+ Object.defineProperty(BaseClass, 'entityName', {
15
+ value: name
16
+ });
17
+ const meta = BaseClass.meta || {};
18
+ const target = BaseClass.prototype;
19
+ for (const [propertyKey, type] of Object.entries(meta)) {
20
+ if (type.isRelation && type.relationName) {
21
+ const relationName = type.relationName;
22
+ const idGetter = function () {
23
+ return handleError(this.constructor.entityName, propertyKey, () => type.to(this._data.fields[propertyKey]));
24
+ };
25
+ const idSetter = function (value) {
26
+ this._data.fields[propertyKey] = handleError(this.constructor.entityName, propertyKey, () => type.from(value));
27
+ };
28
+ const idKey = type.isArray ? propertyKey + 'IDs' : propertyKey + 'ID';
29
+ Reflect.defineProperty(target, idKey, {
30
+ get: idGetter,
31
+ set: idSetter
32
+ });
33
+ Reflect.defineProperty(target, propertyKey, {
34
+ get: function () {
35
+ const ids = idGetter.call(this);
36
+ if (Array.isArray(ids)) {
37
+ return Promise.all(ids.map((id) => {
38
+ return getStore()?.get(relationName, id);
39
+ }));
40
+ }
41
+ else {
42
+ return getStore()?.get(relationName, ids);
43
+ }
44
+ },
45
+ set: function (value) {
46
+ if (value instanceof Promise) {
47
+ value.then((v) => {
48
+ idSetter.call(this, v);
49
+ });
50
+ }
51
+ else {
52
+ idSetter.call(this, value);
53
+ }
54
+ }
55
+ });
56
+ }
57
+ else {
58
+ Reflect.defineProperty(target, propertyKey, {
59
+ configurable: true,
60
+ get: function () {
61
+ return handleError(this.constructor.entityName, propertyKey, () => type.to(this._data.fields[propertyKey]));
62
+ },
63
+ set: function (value) {
64
+ this._data.fields[propertyKey] = handleError(this.constructor.entityName, propertyKey, () => type.from(value));
65
+ }
66
+ });
67
+ }
68
+ }
14
69
  return class extends BaseClass {
15
- static entityName = name;
16
- _data = { fields: {}, entityName: name };
70
+ _data = { fields: {} };
17
71
  constructor(...args) {
18
72
  super();
19
- const meta = BaseClass.meta;
20
- for (const [propertyKey, t] of Object.entries(meta)) {
21
- const converter = t;
22
- if (converter.isRelation && converter.relationName) {
23
- const relationName = converter.relationName;
24
- const idGetter = () => {
25
- return handleError(name, propertyKey, () => converter.to(this._data.fields[propertyKey]));
26
- };
27
- const idSetter = (value) => {
28
- this._data.fields[propertyKey] = handleError(name, propertyKey, () => converter.from(value));
29
- };
30
- const idKey = converter.isArray ? propertyKey + 'IDs' : propertyKey + 'ID';
31
- Object.defineProperty(this, idKey, {
32
- get: idGetter,
33
- set: idSetter
34
- });
35
- Object.defineProperty(this, propertyKey, {
36
- get: () => {
37
- const ids = idGetter();
38
- if (Array.isArray(ids)) {
39
- return Promise.all(ids.map((id) => {
40
- return getStore()?.get(relationName, id);
41
- }));
42
- }
43
- else {
44
- return getStore()?.get(relationName, ids);
45
- }
46
- },
47
- set: (value) => {
48
- if (value instanceof Promise) {
49
- value.then((v) => {
50
- idSetter(v);
51
- });
52
- }
53
- else {
54
- idSetter(value);
55
- }
56
- }
57
- });
58
- }
59
- else {
60
- Object.defineProperty(this, propertyKey, {
61
- get: () => {
62
- return handleError(name, propertyKey, () => converter.to(this._data.fields[propertyKey]));
63
- },
64
- set: (value) => {
65
- this._data.fields[propertyKey] = handleError(name, propertyKey, () => converter.from(value));
66
- }
67
- });
68
- }
69
- const initData = args[0];
70
- if (initData) {
71
- for (const [key, value] of Object.entries(initData)) {
72
- if (this.hasOwnProperty(key)) {
73
- this[key] = value;
74
- }
75
- }
73
+ for (const key of Object.getOwnPropertyNames(this)) {
74
+ if (BaseClass.prototype.hasOwnProperty(key)) {
75
+ delete this[key];
76
76
  }
77
77
  }
78
+ if (args[0]) {
79
+ Object.assign(this, args[0]);
80
+ }
78
81
  }
79
82
  };
80
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAgB,aAAa,EAAyB,MAAM,kBAAkB,CAAA;AAqBnH,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAO5D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM;;;EAI9C"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAgB,aAAa,EAAyB,MAAM,kBAAkB,CAAA;AA4DnH,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAQ5D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM;;;EAI9C"}
@@ -1,5 +1,6 @@
1
1
  import { buildASTSchema, extendSchema, parse, validateSchema } from 'graphql/index.js';
2
2
  import * as fs from 'node:fs';
3
+ import { GraphQLObjectType, isListType, isNonNullType } from 'graphql';
3
4
  const customScalars = ['BigInt', 'BigDecimal', 'Timestamp', 'JSON', 'Bytes', 'ID'];
4
5
  const baseSchema = buildASTSchema(parse(`
5
6
  directive @entity on OBJECT
@@ -14,12 +15,49 @@ const baseSchema = buildASTSchema(parse(`
14
15
  directive @jsonField on OBJECT # legacy
15
16
  ${customScalars.map((name) => 'scalar ' + name).join('\n')}
16
17
  `));
18
+ function getElemType(type) {
19
+ if (isNonNullType(type)) {
20
+ return getElemType(type.ofType);
21
+ }
22
+ if (isListType(type)) {
23
+ return getElemType(type.ofType);
24
+ }
25
+ return type;
26
+ }
27
+ function checkRelations(schema) {
28
+ for (const t of Object.values(schema.getTypeMap())) {
29
+ if (t.name.startsWith('__')) {
30
+ continue;
31
+ }
32
+ if (t instanceof GraphQLObjectType) {
33
+ for (const f of Object.values(t.getFields())) {
34
+ if (f.astNode) {
35
+ for (const d of f.astNode.directives ?? []) {
36
+ if (d.name.value === 'derivedFrom') {
37
+ const arg = (d.arguments ?? []).find((a) => a.name.value === 'field');
38
+ if (!arg || !arg.value || arg.value.kind !== 'StringValue') {
39
+ throw new Error(`@derivedFrom directive must have a 'field' argument`);
40
+ }
41
+ const fieldName = arg.value.value;
42
+ const targetType = getElemType(f.type);
43
+ // Check if the target type has a field with the same name
44
+ if (!targetType.getFields()[fieldName]) {
45
+ throw new Error(`Field '${fieldName}' not found in type '${targetType.name}'`);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
17
54
  export function buildSchema(doc) {
18
55
  const schema = extendSchema(baseSchema, doc);
19
56
  const errors = validateSchema(schema).filter((err) => !/query root/i.test(err.message));
20
57
  if (errors.length > 0) {
21
58
  throw errors[0];
22
59
  }
60
+ checkRelations(schema);
23
61
  return schema;
24
62
  }
25
63
  export function schemaFromFile(filePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,YAAY,EAAiB,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACnH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7B,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAElF,MAAM,UAAU,GAAG,cAAc,CAC/B,KAAK,CAAC;;;;;;;;;;;MAWF,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC7D,CAAC,CACD,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,GAAiB;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IACzB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,8 @@ export class Store {
16
16
  }
17
17
  });
18
18
  const data = (await promise);
19
- if (data.entities?.entities[0]) {
20
- const entityData = data.entities.entities[0];
19
+ if (data.entityList?.entities[0]) {
20
+ const entityData = data.entityList?.entities[0];
21
21
  return this.newEntity(entity, entityData);
22
22
  }
23
23
  return undefined;
@@ -78,7 +78,7 @@ export class Store {
78
78
  }
79
79
  });
80
80
  const response = (await promise);
81
- for (const data of response.entities?.entities || []) {
81
+ for (const data of response.entityList?.entities || []) {
82
82
  yield this.newEntity(entity, data);
83
83
  }
84
84
  if (!response.nextCursor) {
@@ -92,7 +92,7 @@ export class Store {
92
92
  let en = DatabaseSchema.findEntity(entity);
93
93
  if (!en) {
94
94
  // it is an interface
95
- en = DatabaseSchema.findEntity(data.entityName);
95
+ en = DatabaseSchema.findEntity(data.entity);
96
96
  if (!en) {
97
97
  throw new Error(`Entity ${entity} not found`);
98
98
  }
@@ -100,7 +100,7 @@ export class Store {
100
100
  entity = en;
101
101
  }
102
102
  const res = new entity({});
103
- res._data = data;
103
+ res._data = data.data;
104
104
  return res;
105
105
  }
106
106
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.39.4-rc.8",
3
+ "version": "2.39.4-rc.9",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -83,8 +83,8 @@
83
83
  "typedoc": "^0.25.7",
84
84
  "utility-types": "^3.11.0",
85
85
  "yaml": "^2.3.4",
86
- "@sentio/runtime": "^2.39.4-rc.8",
87
- "@sentio/protos": "2.39.4-rc.8"
86
+ "@sentio/protos": "2.39.4-rc.9",
87
+ "@sentio/runtime": "^2.39.4-rc.9"
88
88
  },
89
89
  "peerDependencies": {
90
90
  "tsup": "npm:@sentio/tsup@^6.7.2"
@@ -15,8 +15,8 @@ import {
15
15
  TypeConverters,
16
16
  ValueConverter
17
17
  } from './convert.js'
18
- import { getStore } from './store.js'
19
18
  import { RichStruct } from '@sentio/protos'
19
+ import { getStore } from './store.js'
20
20
 
21
21
  type Constructor = { new (...args: any[]): any }
22
22
 
@@ -30,72 +30,79 @@ function handleError(entity: string, key: string, fn: () => any) {
30
30
 
31
31
  export function Entity(name: string) {
32
32
  return function <T extends Constructor>(BaseClass: T) {
33
- return class extends BaseClass {
34
- static entityName = name
35
- readonly _data: RichStruct = { fields: {}, entityName: name }
33
+ Object.defineProperty(BaseClass, 'entityName', {
34
+ value: name
35
+ })
36
36
 
37
- constructor(...args: any[]) {
38
- super()
39
- const meta = (BaseClass as any).meta
40
- for (const [propertyKey, t] of Object.entries(meta)) {
41
- const converter = t as ValueConverter<any>
42
- if (converter.isRelation && converter.relationName) {
43
- const relationName = converter.relationName
44
- const idGetter = () => {
45
- return handleError(name, propertyKey, () => converter.to(this._data.fields[propertyKey]))
37
+ const meta: Record<string, ValueConverter<any>> = (BaseClass as any).meta || {}
38
+ const target = BaseClass.prototype
39
+ for (const [propertyKey, type] of Object.entries(meta)) {
40
+ if (type.isRelation && type.relationName) {
41
+ const relationName = type.relationName
42
+ const idGetter = function (this: any) {
43
+ return handleError(this.constructor.entityName, propertyKey, () => type!.to(this._data.fields[propertyKey]))
44
+ }
45
+ const idSetter = function (this: any, value: any) {
46
+ this._data.fields[propertyKey] = handleError(this.constructor.entityName, propertyKey, () =>
47
+ type!.from(value)
48
+ )
49
+ }
50
+ const idKey = type.isArray ? propertyKey + 'IDs' : propertyKey + 'ID'
51
+
52
+ Reflect.defineProperty(target, idKey, {
53
+ get: idGetter,
54
+ set: idSetter
55
+ })
56
+ Reflect.defineProperty(target, propertyKey, {
57
+ get: function () {
58
+ const ids = idGetter.call(this)
59
+ if (Array.isArray(ids)) {
60
+ return Promise.all(
61
+ ids.map((id) => {
62
+ return getStore()?.get(relationName, id)
63
+ })
64
+ )
65
+ } else {
66
+ return getStore()?.get(relationName, ids)
46
67
  }
47
- const idSetter = (value: any) => {
48
- this._data.fields[propertyKey] = handleError(name, propertyKey, () => converter.from(value))
68
+ },
69
+ set: function (value) {
70
+ if (value instanceof Promise) {
71
+ value.then((v) => {
72
+ idSetter.call(this, v)
73
+ })
74
+ } else {
75
+ idSetter.call(this, value)
49
76
  }
50
- const idKey = converter.isArray ? propertyKey + 'IDs' : propertyKey + 'ID'
51
-
52
- Object.defineProperty(this, idKey, {
53
- get: idGetter,
54
- set: idSetter
55
- })
56
-
57
- Object.defineProperty(this, propertyKey, {
58
- get: () => {
59
- const ids = idGetter()
60
- if (Array.isArray(ids)) {
61
- return Promise.all(
62
- ids.map((id) => {
63
- return getStore()?.get(relationName, id)
64
- })
65
- )
66
- } else {
67
- return getStore()?.get(relationName, ids)
68
- }
69
- },
70
- set: (value) => {
71
- if (value instanceof Promise) {
72
- value.then((v) => {
73
- idSetter(v)
74
- })
75
- } else {
76
- idSetter(value)
77
- }
78
- }
79
- })
80
- } else {
81
- Object.defineProperty(this, propertyKey, {
82
- get: () => {
83
- return handleError(name, propertyKey, () => converter.to(this._data.fields[propertyKey]))
84
- },
85
- set: (value) => {
86
- this._data.fields[propertyKey] = handleError(name, propertyKey, () => converter.from(value))
87
- }
88
- })
89
77
  }
90
- const initData = args[0]
91
- if (initData) {
92
- for (const [key, value] of Object.entries(initData)) {
93
- if (this.hasOwnProperty(key)) {
94
- this[key] = value
95
- }
96
- }
78
+ })
79
+ } else {
80
+ Reflect.defineProperty(target, propertyKey, {
81
+ configurable: true,
82
+ get: function () {
83
+ return handleError(this.constructor.entityName, propertyKey, () => type!.to(this._data.fields[propertyKey]))
84
+ },
85
+ set: function (value) {
86
+ this._data.fields[propertyKey] = handleError(this.constructor.entityName, propertyKey, () =>
87
+ type!.from(value)
88
+ )
89
+ }
90
+ })
91
+ }
92
+ }
93
+
94
+ return class extends BaseClass {
95
+ readonly _data: RichStruct = { fields: {} }
96
+ constructor(...args: any[]) {
97
+ super()
98
+ for (const key of Object.getOwnPropertyNames(this)) {
99
+ if (BaseClass.prototype.hasOwnProperty(key)) {
100
+ delete this[key]
97
101
  }
98
102
  }
103
+ if (args[0]) {
104
+ Object.assign(this, args[0])
105
+ }
99
106
  }
100
107
  }
101
108
  }
@@ -1,5 +1,6 @@
1
1
  import { buildASTSchema, DocumentNode, extendSchema, GraphQLSchema, parse, validateSchema } from 'graphql/index.js'
2
2
  import * as fs from 'node:fs'
3
+ import { GraphQLObjectType, GraphQLOutputType, isListType, isNonNullType } from 'graphql'
3
4
 
4
5
  const customScalars = ['BigInt', 'BigDecimal', 'Timestamp', 'JSON', 'Bytes', 'ID']
5
6
 
@@ -19,12 +20,51 @@ const baseSchema = buildASTSchema(
19
20
  `)
20
21
  )
21
22
 
23
+ function getElemType(type: GraphQLOutputType) {
24
+ if (isNonNullType(type)) {
25
+ return getElemType(type.ofType)
26
+ }
27
+ if (isListType(type)) {
28
+ return getElemType(type.ofType)
29
+ }
30
+ return type
31
+ }
32
+
33
+ function checkRelations(schema: GraphQLSchema) {
34
+ for (const t of Object.values(schema.getTypeMap())) {
35
+ if (t.name.startsWith('__')) {
36
+ continue
37
+ }
38
+ if (t instanceof GraphQLObjectType) {
39
+ for (const f of Object.values(t.getFields())) {
40
+ if (f.astNode) {
41
+ for (const d of f.astNode.directives ?? []) {
42
+ if (d.name.value === 'derivedFrom') {
43
+ const arg = (d.arguments ?? []).find((a) => a.name.value === 'field')
44
+ if (!arg || !arg.value || arg.value.kind !== 'StringValue') {
45
+ throw new Error(`@derivedFrom directive must have a 'field' argument`)
46
+ }
47
+ const fieldName = arg.value.value
48
+ const targetType = getElemType(f.type) as GraphQLObjectType
49
+ // Check if the target type has a field with the same name
50
+ if (!targetType.getFields()[fieldName]) {
51
+ throw new Error(`Field '${fieldName}' not found in type '${targetType.name}'`)
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+
22
61
  export function buildSchema(doc: DocumentNode): GraphQLSchema {
23
62
  const schema = extendSchema(baseSchema, doc)
24
63
  const errors = validateSchema(schema).filter((err) => !/query root/i.test(err.message))
25
64
  if (errors.length > 0) {
26
65
  throw errors[0]
27
66
  }
67
+ checkRelations(schema)
28
68
  return schema
29
69
  }
30
70
 
@@ -2,7 +2,7 @@ import { StoreContext } from './context.js'
2
2
  import { DatabaseSchema } from '../core/index.js'
3
3
  import { BigDecimal } from '@sentio/bigdecimal'
4
4
  import { Bytes, Float, ID, Int, Timestamp } from './types.js'
5
- import type { RichStruct, RichValue } from '@sentio/protos'
5
+ import type { Entity as EntityStruct, RichValue } from '@sentio/protos'
6
6
  import { DBRequest_DBOperator, DBResponse } from '@sentio/protos'
7
7
  import { toBigInteger } from './convert.js'
8
8
  import { PluginManager } from '@sentio/runtime'
@@ -29,8 +29,8 @@ export class Store {
29
29
  })
30
30
 
31
31
  const data = (await promise) as DBResponse
32
- if (data.entities?.entities[0]) {
33
- const entityData = data.entities.entities[0]
32
+ if (data.entityList?.entities[0]) {
33
+ const entityData = data.entityList?.entities[0]
34
34
  return this.newEntity(entity, entityData)
35
35
  }
36
36
 
@@ -97,7 +97,7 @@ export class Store {
97
97
  }
98
98
  })
99
99
  const response = (await promise) as DBResponse
100
- for (const data of response.entities?.entities || []) {
100
+ for (const data of response.entityList?.entities || []) {
101
101
  yield this.newEntity(entity, data)
102
102
  }
103
103
  if (!response.nextCursor) {
@@ -107,12 +107,12 @@ export class Store {
107
107
  }
108
108
  }
109
109
 
110
- private newEntity<T extends Entity>(entity: EntityClass<T> | string, data: RichStruct) {
110
+ private newEntity<T extends Entity>(entity: EntityClass<T> | string, data: EntityStruct) {
111
111
  if (typeof entity == 'string') {
112
112
  let en = DatabaseSchema.findEntity(entity)
113
113
  if (!en) {
114
114
  // it is an interface
115
- en = DatabaseSchema.findEntity(data.entityName)
115
+ en = DatabaseSchema.findEntity(data.entity)
116
116
  if (!en) {
117
117
  throw new Error(`Entity ${entity} not found`)
118
118
  }
@@ -121,7 +121,7 @@ export class Store {
121
121
  }
122
122
 
123
123
  const res = new (entity as EntityClass<T>)({}) as T
124
- ;(res as any)._data = data
124
+ ;(res as any)._data = data.data
125
125
  return res
126
126
  }
127
127
  }