@sentio/sdk 2.37.0-rc.8 → 2.37.0-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.
@@ -1,18 +1,17 @@
1
- import { Store } from './store.js';
2
1
  import { ID } from './types.js';
3
2
  export interface EntityClass<T extends Entity> {
4
3
  new (data: any): T;
5
4
  }
6
5
  export declare class Entity {
7
6
  get id(): ID;
8
- private _store;
9
7
  data: Record<string, any>;
10
8
  constructor(data: any);
11
9
  private getIdFromEntity;
12
- set store(store: Store);
10
+ private getStore;
13
11
  get<T>(field: string): T;
14
12
  set<T>(field: string, value: T | T[] | ID | ID[]): void;
15
13
  protected getFieldObject<T extends Entity>(entity: EntityClass<T> | string, field: string): Promise<T | undefined>;
16
14
  protected getFieldObjectArray<T extends Entity>(entity: EntityClass<T>, field: string): Promise<T[]>;
15
+ toString(): string;
17
16
  }
18
17
  //# sourceMappingURL=entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC,CAAA;CACnB;AAED,qBAAa,MAAM;IACjB,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,OAAO,CAAC,MAAM,CAAmB;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAK;gBAClB,IAAI,EAAE,GAAG;IAUrB,OAAO,CAAC,eAAe;IASvB,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAErB;IAED,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAIxB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;IASvD,SAAS,CAAC,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKlH,SAAS,CAAC,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAKrG"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAI/B,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC,CAAA;CACnB;AAED,qBAAa,MAAM;IACjB,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAK;gBAClB,IAAI,EAAE,GAAG;IAUrB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,QAAQ;IAQhB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAIxB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;IASvD,SAAS,CAAC,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKlH,SAAS,CAAC,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAMpG,QAAQ,IAAI,MAAM;CAKnB"}
@@ -1,8 +1,9 @@
1
+ import { PluginManager } from '@sentio/runtime';
2
+ import { Store } from './store.js';
1
3
  export class Entity {
2
4
  get id() {
3
5
  return this.get('id');
4
6
  }
5
- _store;
6
7
  data = {};
7
8
  constructor(data) {
8
9
  Object.entries(data).forEach(([key, value]) => {
@@ -23,8 +24,12 @@ export class Entity {
23
24
  }
24
25
  return entity;
25
26
  }
26
- set store(store) {
27
- this._store = store;
27
+ getStore() {
28
+ const dbContext = PluginManager.INSTANCE.dbContextLocalStorage.getStore();
29
+ if (dbContext) {
30
+ return new Store(dbContext);
31
+ }
32
+ return undefined;
28
33
  }
29
34
  get(field) {
30
35
  return this.data[field];
@@ -40,12 +45,17 @@ export class Entity {
40
45
  }
41
46
  getFieldObject(entity, field) {
42
47
  const id = this.data[field];
43
- return id ? this._store?.get(entity, id) : Promise.resolve(undefined);
48
+ return id ? this.getStore()?.get(entity, id) : Promise.resolve(undefined);
44
49
  }
45
50
  getFieldObjectArray(entity, field) {
46
51
  const ids = this.data[field];
47
- const promises = ids.map((id) => this._store?.get(entity, id));
52
+ const promises = ids.map((id) => this.getStore()?.get(entity, id));
48
53
  return Promise.all(promises);
49
54
  }
55
+ toString() {
56
+ const entityName = this.constructor.prototype.entityName;
57
+ const id = this.id;
58
+ return `${entityName}#${id} ${JSON.stringify(this.data)}`;
59
+ }
50
60
  }
51
61
  //# sourceMappingURL=entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,MAAM;IACjB,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,MAAM,CAAmB;IACjC,IAAI,GAAwB,EAAE,CAAA;IAC9B,YAAY,IAAS;QACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe,CAAC,MAAW;QACjC,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,EAAE,CAAA;QAClB,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC,EAAE,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK,CAAC,KAAY;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,GAAG,CAAI,KAAa;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,GAAG,CAAI,KAAa,EAAE,KAA0B;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAY,CAAC,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,KAAgB,CAAC,EAAE,CAAA;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IAC1B,CAAC;IAES,cAAc,CAAmB,MAA+B,EAAE,KAAa;QACvF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACvF,CAAC;IAES,mBAAmB,CAAmB,MAAsB,EAAE,KAAa;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMlC,MAAM,OAAO,MAAM;IACjB,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,GAAwB,EAAE,CAAA;IAC9B,YAAY,IAAS;QACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,eAAe,CAAC,MAAW;QACjC,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,EAAE,CAAA;QAClB,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC,EAAE,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,QAAQ;QACd,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,GAAG,CAAI,KAAa;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,GAAG,CAAI,KAAa,EAAE,KAA0B;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAY,CAAC,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,KAAgB,CAAC,EAAE,CAAA;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IAC1B,CAAC;IAES,cAAc,CAAmB,MAA+B,EAAE,KAAa;QACvF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3F,CAAC;IAES,mBAAmB,CAAmB,MAAsB,EAAE,KAAa;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAC9C,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAA;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QAClB,OAAO,GAAG,UAAU,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IAC3D,CAAC;CACF"}
@@ -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;AAG3C,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;IAStE,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD,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;CAclB"}
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;AAG3C,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;IAStE,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD,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"}
@@ -34,12 +34,6 @@ export class Store {
34
34
  id: Array.isArray(entity) ? entity.map((e) => e.id) : [entity.id]
35
35
  }
36
36
  });
37
- if (Array.isArray(entity)) {
38
- entity.forEach((e) => (e.store = this));
39
- }
40
- else {
41
- entity.store = this;
42
- }
43
37
  await promise;
44
38
  }
45
39
  async list(entity, limit, offset) {
@@ -64,9 +58,7 @@ export class Store {
64
58
  }
65
59
  entity = en;
66
60
  }
67
- const e = new entity(data);
68
- e.store = this;
69
- return e;
61
+ return new entity(data);
70
62
  }
71
63
  }
72
64
  //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.37.0-rc.8",
3
+ "version": "2.37.0-rc.9",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -79,8 +79,8 @@
79
79
  "typedoc": "^0.25.7",
80
80
  "utility-types": "^3.11.0",
81
81
  "yaml": "^2.3.4",
82
- "@sentio/protos": "2.37.0-rc.8",
83
- "@sentio/runtime": "^2.37.0-rc.8"
82
+ "@sentio/runtime": "^2.37.0-rc.9",
83
+ "@sentio/protos": "2.37.0-rc.9"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "tsup": "npm:@sentio/tsup@^6.7.2"
@@ -1,5 +1,6 @@
1
- import { Store } from './store.js'
2
1
  import { ID } from './types.js'
2
+ import { PluginManager } from '@sentio/runtime'
3
+ import { Store } from './store.js'
3
4
 
4
5
  export interface EntityClass<T extends Entity> {
5
6
  new (data: any): T
@@ -10,7 +11,6 @@ export class Entity {
10
11
  return this.get('id')
11
12
  }
12
13
 
13
- private _store: Store | undefined
14
14
  data: Record<string, any> = {}
15
15
  constructor(data: any) {
16
16
  Object.entries(data).forEach(([key, value]) => {
@@ -31,8 +31,12 @@ export class Entity {
31
31
  return entity
32
32
  }
33
33
 
34
- set store(store: Store) {
35
- this._store = store
34
+ private getStore() {
35
+ const dbContext = PluginManager.INSTANCE.dbContextLocalStorage.getStore()
36
+ if (dbContext) {
37
+ return new Store(dbContext)
38
+ }
39
+ return undefined
36
40
  }
37
41
 
38
42
  get<T>(field: string): T {
@@ -50,12 +54,18 @@ export class Entity {
50
54
 
51
55
  protected getFieldObject<T extends Entity>(entity: EntityClass<T> | string, field: string): Promise<T | undefined> {
52
56
  const id = this.data[field]
53
- return id ? (this._store?.get(entity, id) as Promise<T>) : Promise.resolve(undefined)
57
+ return id ? (this.getStore()?.get(entity, id) as Promise<T>) : Promise.resolve(undefined)
54
58
  }
55
59
 
56
60
  protected getFieldObjectArray<T extends Entity>(entity: EntityClass<T>, field: string): Promise<T[]> {
57
61
  const ids = this.data[field]
58
- const promises = ids.map((id: string) => this._store?.get(entity, id))
62
+ const promises = ids.map((id: string) => this.getStore()?.get(entity, id))
59
63
  return Promise.all(promises) as Promise<T[]>
60
64
  }
65
+
66
+ toString(): string {
67
+ const entityName = this.constructor.prototype.entityName
68
+ const id = this.id
69
+ return `${entityName}#${id} ${JSON.stringify(this.data)}`
70
+ }
61
71
  }
@@ -38,12 +38,6 @@ export class Store {
38
38
  }
39
39
  })
40
40
 
41
- if (Array.isArray(entity)) {
42
- entity.forEach((e) => (e.store = this))
43
- } else {
44
- entity.store = this
45
- }
46
-
47
41
  await promise
48
42
  }
49
43
 
@@ -72,8 +66,6 @@ export class Store {
72
66
  entity = en
73
67
  }
74
68
 
75
- const e = new (entity as EntityClass<T>)(data)
76
- e.store = this
77
- return e
69
+ return new (entity as EntityClass<T>)(data)
78
70
  }
79
71
  }