@sentio/sdk 2.37.0-rc.7 → 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.
- package/lib/store/entity.d.ts +2 -3
- package/lib/store/entity.d.ts.map +1 -1
- package/lib/store/entity.js +15 -5
- package/lib/store/entity.js.map +1 -1
- package/lib/store/store.d.ts.map +1 -1
- package/lib/store/store.js +1 -9
- package/lib/store/store.js.map +1 -1
- package/package.json +3 -3
- package/src/store/entity.ts +16 -6
- package/src/store/store.ts +1 -9
package/lib/store/entity.d.ts
CHANGED
@@ -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
|
-
|
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,
|
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"}
|
package/lib/store/entity.js
CHANGED
@@ -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
|
-
|
27
|
-
|
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.
|
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.
|
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
|
package/lib/store/entity.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"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"}
|
package/lib/store/store.d.ts.map
CHANGED
@@ -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;
|
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"}
|
package/lib/store/store.js
CHANGED
@@ -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
|
-
|
68
|
-
e.store = this;
|
69
|
-
return e;
|
61
|
+
return new entity(data);
|
70
62
|
}
|
71
63
|
}
|
72
64
|
//# sourceMappingURL=store.js.map
|
package/lib/store/store.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,aAAa,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,OAAO,KAAK;IACa;IAA7B,YAA6B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAEtD,KAAK,CAAC,GAAG,CAAmB,MAA+B,EAAE,EAAU;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvC,GAAG,EAAE;gBACH,MAAM,EAAE,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU;gBACxE,EAAE;aACH;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAQ,CAAA;QACnC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAwB,EAAE,EAAqB;QAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC7B,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;gBACnC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAClC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAmB,MAAe;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvC,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU;gBAC/C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBACvE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;aAClE;SACF,CAAC,CAAA;QAEF,
|
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.
|
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/
|
83
|
-
"@sentio/
|
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"
|
package/src/store/entity.ts
CHANGED
@@ -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
|
-
|
35
|
-
|
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.
|
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.
|
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
|
}
|
package/src/store/store.ts
CHANGED
@@ -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
|
-
|
76
|
-
e.store = this
|
77
|
-
return e
|
69
|
+
return new (entity as EntityClass<T>)(data)
|
78
70
|
}
|
79
71
|
}
|