@sentio/sdk 2.36.1 → 2.37.0-rc.2
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/core/base-context.d.ts +4 -0
- package/lib/core/base-context.d.ts.map +1 -1
- package/lib/core/base-context.js +20 -4
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/core-plugin.d.ts.map +1 -1
- package/lib/core/core-plugin.js +6 -0
- package/lib/core/core-plugin.js.map +1 -1
- package/lib/core/database-schema.d.ts +8 -0
- package/lib/core/database-schema.d.ts.map +1 -0
- package/lib/core/database-schema.js +10 -0
- package/lib/core/database-schema.js.map +1 -0
- package/lib/core/index.d.ts +1 -0
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -0
- package/lib/core/index.js.map +1 -1
- package/lib/fuel/fuel-processor.d.ts.map +1 -1
- package/lib/fuel/fuel-processor.js +51 -23
- package/lib/fuel/fuel-processor.js.map +1 -1
- package/lib/store/codegen.d.ts +4 -0
- package/lib/store/codegen.d.ts.map +1 -0
- package/lib/store/codegen.js +180 -0
- package/lib/store/codegen.js.map +1 -0
- package/lib/store/context.d.ts +2 -0
- package/lib/store/context.d.ts.map +1 -0
- package/lib/store/context.js +2 -0
- package/lib/store/context.js.map +1 -0
- package/lib/store/decorators.d.ts +7 -0
- package/lib/store/decorators.d.ts.map +1 -0
- package/lib/store/decorators.js +7 -0
- package/lib/store/decorators.js.map +1 -0
- package/lib/store/entity.d.ts +18 -0
- package/lib/store/entity.d.ts.map +1 -0
- package/lib/store/entity.js +51 -0
- package/lib/store/entity.js.map +1 -0
- package/lib/store/index.d.ts +6 -0
- package/lib/store/index.d.ts.map +1 -0
- package/lib/store/index.js +6 -0
- package/lib/store/index.js.map +1 -0
- package/lib/store/run.d.ts +2 -0
- package/lib/store/run.d.ts.map +1 -0
- package/lib/store/run.js +11 -0
- package/lib/store/run.js.map +1 -0
- package/lib/store/schema.d.ts +7 -0
- package/lib/store/schema.d.ts.map +1 -0
- package/lib/store/schema.js +30 -0
- package/lib/store/schema.js.map +1 -0
- package/lib/store/store.d.ts +12 -0
- package/lib/store/store.d.ts.map +1 -0
- package/lib/store/store.js +61 -0
- package/lib/store/store.js.map +1 -0
- package/lib/store/types.d.ts +10 -0
- package/lib/store/types.d.ts.map +1 -0
- package/lib/store/types.js +2 -0
- package/lib/store/types.js.map +1 -0
- package/lib/testing/test-processor-server.d.ts +2 -5
- package/lib/testing/test-processor-server.d.ts.map +1 -1
- package/lib/testing/test-processor-server.js +2 -2
- package/lib/testing/test-processor-server.js.map +1 -1
- package/package.json +8 -5
- package/src/core/base-context.ts +22 -4
- package/src/core/core-plugin.ts +7 -0
- package/src/core/database-schema.ts +11 -0
- package/src/core/index.ts +1 -0
- package/src/fuel/fuel-processor.ts +64 -39
- package/src/store/codegen.ts +213 -0
- package/src/store/context.ts +1 -0
- package/src/store/decorators.ts +9 -0
- package/src/store/entity.ts +61 -0
- package/src/store/index.ts +5 -0
- package/src/store/run.ts +10 -0
- package/src/store/schema.ts +35 -0
- package/src/store/store.ts +68 -0
- package/src/store/types.ts +10 -0
- package/src/testing/test-processor-server.ts +13 -2
@@ -2,9 +2,11 @@ import { ProcessResult, RecordMetaData } from '@sentio/protos';
|
|
2
2
|
import { EventLoggerBinding } from './event-logger.js';
|
3
3
|
import { Meter, Labels } from './meter.js';
|
4
4
|
import { ChainId } from '@sentio/chain';
|
5
|
+
import { Store } from '../store/store.js';
|
5
6
|
export declare abstract class BaseContext {
|
6
7
|
meter: Meter;
|
7
8
|
eventLogger: EventLoggerBinding;
|
9
|
+
private _store;
|
8
10
|
protected baseLabels: Labels;
|
9
11
|
private active;
|
10
12
|
private _res;
|
@@ -14,5 +16,7 @@ export declare abstract class BaseContext {
|
|
14
16
|
getMetaData(name: string, labels: Labels): RecordMetaData;
|
15
17
|
protected abstract getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
|
16
18
|
abstract getChainId(): ChainId;
|
19
|
+
get store(): Store;
|
20
|
+
initStore(): void;
|
17
21
|
}
|
18
22
|
//# sourceMappingURL=base-context.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-context.d.ts","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"base-context.d.ts","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,8BAAsB,WAAW;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAO;IACrB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,IAAI,CAQX;IAEM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;IAQzC,SAAS,aAAa,UAAU,EAAE,MAAM,GAAG,SAAS;IAQpD,gBAAgB,IAAI,aAAa;IASjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAOzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAEpF,QAAQ,CAAC,UAAU,IAAI,OAAO;IAE9B,IAAI,KAAK,UAKR;IAGD,SAAS;CAMV"}
|
package/lib/core/base-context.js
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
import { ProcessResult } from '@sentio/protos';
|
2
2
|
import { EventLoggerBinding } from './event-logger.js';
|
3
3
|
import { Meter } from './meter.js';
|
4
|
-
import { mergeProcessResults } from '@sentio/runtime';
|
4
|
+
import { mergeProcessResults, PluginManager } from '@sentio/runtime';
|
5
5
|
import { ServerError, Status } from 'nice-grpc';
|
6
|
+
import { Store } from '../store/store.js';
|
6
7
|
export class BaseContext {
|
7
8
|
meter;
|
8
9
|
eventLogger;
|
10
|
+
_store;
|
9
11
|
baseLabels;
|
10
12
|
active;
|
11
13
|
_res = {
|
@@ -14,8 +16,8 @@ export class BaseContext {
|
|
14
16
|
exports: [],
|
15
17
|
gauges: [],
|
16
18
|
states: {
|
17
|
-
configUpdated: false
|
18
|
-
}
|
19
|
+
configUpdated: false
|
20
|
+
}
|
19
21
|
};
|
20
22
|
update(res) {
|
21
23
|
if (this.active) {
|
@@ -30,6 +32,7 @@ export class BaseContext {
|
|
30
32
|
this.eventLogger = new EventLoggerBinding(this);
|
31
33
|
this.baseLabels = baseLabels || {};
|
32
34
|
this.active = true;
|
35
|
+
this.initStore();
|
33
36
|
}
|
34
37
|
stopAndGetResult() {
|
35
38
|
if (this.active) {
|
@@ -43,8 +46,21 @@ export class BaseContext {
|
|
43
46
|
getMetaData(name, labels) {
|
44
47
|
return {
|
45
48
|
...this.baseLabels,
|
46
|
-
...this.getMetaDataInternal(name, labels)
|
49
|
+
...this.getMetaDataInternal(name, labels)
|
47
50
|
};
|
48
51
|
}
|
52
|
+
get store() {
|
53
|
+
if (this._store == null) {
|
54
|
+
console.warn('Store is not set, please initialize the processor with your database schema first.');
|
55
|
+
}
|
56
|
+
return this._store;
|
57
|
+
}
|
58
|
+
// this method must be called within the dbContextLocalStorage scope
|
59
|
+
initStore() {
|
60
|
+
const dbContext = PluginManager.INSTANCE.dbContextLocalStorage.getStore();
|
61
|
+
if (dbContext) {
|
62
|
+
this._store = new Store(dbContext);
|
63
|
+
}
|
64
|
+
}
|
49
65
|
}
|
50
66
|
//# sourceMappingURL=base-context.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;
|
1
|
+
{"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAoB;IACvB,MAAM,CAAO;IACX,UAAU,CAAQ;IACpB,MAAM,CAAS;IAEf,IAAI,GAAsC;QAChD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;KACF,CAAA;IAEM,MAAM,CAAC,GAA2B;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC,CAAA;QAC5G,CAAC;IACH,CAAC;IAED,YAAsB,UAA8B;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1C,CAAA;IACH,CAAC;IAMD,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;QACpG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,oEAAoE;IACpE,SAAS;QACP,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;CACF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;
|
1
|
+
{"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAStD,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAErB,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAyC9D"}
|
package/lib/core/core-plugin.js
CHANGED
@@ -4,6 +4,7 @@ import { ExporterState } from './exporter.js';
|
|
4
4
|
import { EventTrackerState } from './event-tracker.js';
|
5
5
|
import { TemplateInstanceState } from './template.js';
|
6
6
|
import { EventLoggerState } from './event-logger.js';
|
7
|
+
import { DatabaseSchemaState } from './database-schema.js';
|
7
8
|
export class CorePlugin extends Plugin {
|
8
9
|
name = 'CorePlugin';
|
9
10
|
async configure(config) {
|
@@ -36,6 +37,11 @@ export class CorePlugin extends Plugin {
|
|
36
37
|
channel: exporter.channel
|
37
38
|
});
|
38
39
|
}
|
40
|
+
if (DatabaseSchemaState.INSTANCE.getValues().length > 0) {
|
41
|
+
config.dbSchema = {
|
42
|
+
gqlSchema: DatabaseSchemaState.INSTANCE.getValues().join('\n\n')
|
43
|
+
};
|
44
|
+
}
|
39
45
|
}
|
40
46
|
}
|
41
47
|
PluginManager.INSTANCE.register(new CorePlugin());
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAW,YAAY,CAAA;IAE3B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,4DAA4D;QAC5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1E,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAClE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC/B,yBAAyB,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;gBACpE,SAAS,EAAE,YAAY,CAAC,IAAI;gBAC5B,eAAe,EAAE,SAAS;gBAC1B,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;gBACpD,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;aAC7C,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG;gBAChB,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aACjE,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { ListStateStorage } from '@sentio/runtime';
|
2
|
+
export declare class DatabaseSchemaState extends ListStateStorage<string> {
|
3
|
+
static INSTANCE: DatabaseSchemaState;
|
4
|
+
}
|
5
|
+
export declare class DatabaseSchema {
|
6
|
+
static register(schema: string): void;
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=database-schema.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../src/core/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAC/D,MAAM,CAAC,QAAQ,sBAA4B;CAC5C;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;CAG/B"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { ListStateStorage } from '@sentio/runtime';
|
2
|
+
export class DatabaseSchemaState extends ListStateStorage {
|
3
|
+
static INSTANCE = new DatabaseSchemaState();
|
4
|
+
}
|
5
|
+
export class DatabaseSchema {
|
6
|
+
static register(schema) {
|
7
|
+
DatabaseSchemaState.INSTANCE.addValue(schema);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=database-schema.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../src/core/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,OAAO,mBAAoB,SAAQ,gBAAwB;IAC/D,MAAM,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAA;;AAG7C,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAc;QAC5B,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;CACF"}
|
package/lib/core/index.d.ts
CHANGED
@@ -9,4 +9,5 @@ export * from './event-tracker.js';
|
|
9
9
|
export * from './event-logger.js';
|
10
10
|
export { type Numberish, toBigInteger, toMetricValue } from './numberish.js';
|
11
11
|
export { CorePlugin } from './core-plugin.js';
|
12
|
+
export { DatabaseSchema } from './database-schema.js';
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/core/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
package/lib/core/index.js
CHANGED
@@ -7,4 +7,5 @@ export * from './event-tracker.js'; // TODO remove this
|
|
7
7
|
export * from './event-logger.js';
|
8
8
|
export { toBigInteger, toMetricValue } from './numberish.js';
|
9
9
|
export { CorePlugin } from './core-plugin.js';
|
10
|
+
export { DatabaseSchema } from './database-schema.js';
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/lib/core/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAe,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA,CAAC,mBAAmB;AACtD,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAkB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAe,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA,CAAC,mBAAmB;AACtD,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAkB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fuel-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAA2B,OAAO,EAAY,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAGL,eAAe,EACf,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAsB,MAAM,YAAY,CAAA;AAGxF,qBAAa,aAAc,YAAW,iBAAiB,CAAC,mBAAmB,CAAC;IAW9D,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IAVhD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAE/C,OAAO,CAAC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;gBAMlC,MAAM,EAAE,mBAAmB;IAE1C,SAAS;IAKR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACjF,MAAM,GAAE,eAA2C;IA6B9C,MAAM,CACX,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnE,MAAM,GAAE,eAA2C;
|
1
|
+
{"version":3,"file":"fuel-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAA2B,OAAO,EAAY,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAGL,eAAe,EACf,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAsB,MAAM,YAAY,CAAA;AAGxF,qBAAa,aAAc,YAAW,iBAAiB,CAAC,mBAAmB,CAAC;IAW9D,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IAVhD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAE/C,OAAO,CAAC,QAAQ,CAAU;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;gBAMlC,MAAM,EAAE,mBAAmB;IAE1C,SAAS;IAKR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACjF,MAAM,GAAE,eAA2C;IA6B9C,MAAM,CACX,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnE,MAAM,GAAE,eAA2C;IAuE9C,KAAK,CAAC,CAAC,EACZ,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAgDxE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd,CAAA"}
|
@@ -64,22 +64,36 @@ export class FuelProcessor {
|
|
64
64
|
}
|
65
65
|
const callHandler = {
|
66
66
|
handler: async (call) => {
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
for (const
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
67
|
+
try {
|
68
|
+
const contract = new Contract(this.config.address, abi, this.provider);
|
69
|
+
const gqlTransaction = call.transaction;
|
70
|
+
const tx = decodeFuelTransactionWithAbi(gqlTransaction, { [this.config.address]: abi }, this.provider);
|
71
|
+
const ctx = new FuelContext(this.config.chainId, this.config.address, this.config.name ?? this.config.address, tx);
|
72
|
+
for (const op of tx.operations) {
|
73
|
+
for (const call of op.calls || []) {
|
74
|
+
if (names.has(call.functionName)) {
|
75
|
+
const fn = contract.functions[call.functionName];
|
76
|
+
const args = Object.values(call.argumentsProvided || {});
|
77
|
+
const scope = fn(...args);
|
78
|
+
const invocationResult = new FuelCall(scope, tx, false, call.argumentsProvided, tx.logs);
|
79
|
+
await handler(invocationResult, ctx);
|
80
|
+
}
|
79
81
|
}
|
80
82
|
}
|
83
|
+
return ctx.stopAndGetResult();
|
84
|
+
}
|
85
|
+
catch (e) {
|
86
|
+
console.error(e);
|
87
|
+
return {
|
88
|
+
gauges: [],
|
89
|
+
counters: [],
|
90
|
+
events: [],
|
91
|
+
exports: [],
|
92
|
+
states: {
|
93
|
+
configUpdated: false
|
94
|
+
}
|
95
|
+
};
|
81
96
|
}
|
82
|
-
return ctx.stopAndGetResult();
|
83
97
|
},
|
84
98
|
fetchConfig: {
|
85
99
|
filters: Object.values(filters)
|
@@ -92,17 +106,31 @@ export class FuelProcessor {
|
|
92
106
|
const logIds = new Set(Array.isArray(logIdFilter) ? logIdFilter : [logIdFilter]);
|
93
107
|
const callHandler = {
|
94
108
|
handler: async (call) => {
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
109
|
+
try {
|
110
|
+
const gqlTransaction = call.transaction;
|
111
|
+
const tx = decodeFuelTransactionWithAbi(gqlTransaction, { [this.config.address]: this.config.abi }, this.provider);
|
112
|
+
const results = [];
|
113
|
+
const logs = (tx.logs || []).filter((log) => logIds.has(log.logId));
|
114
|
+
for (const log of logs) {
|
115
|
+
const ctx = new FuelContext(this.config.chainId, this.config.address, this.config.name ?? this.config.address, tx);
|
116
|
+
ctx.setLogIndex(log.receiptIndex);
|
117
|
+
await handler(log, ctx);
|
118
|
+
results.push(ctx.stopAndGetResult());
|
119
|
+
}
|
120
|
+
return mergeProcessResults(results);
|
121
|
+
}
|
122
|
+
catch (e) {
|
123
|
+
console.error(e);
|
124
|
+
return {
|
125
|
+
gauges: [],
|
126
|
+
counters: [],
|
127
|
+
events: [],
|
128
|
+
exports: [],
|
129
|
+
states: {
|
130
|
+
configUpdated: false
|
131
|
+
}
|
132
|
+
};
|
104
133
|
}
|
105
|
-
return mergeProcessResults(results);
|
106
134
|
},
|
107
135
|
logConfig: {
|
108
136
|
logIds: Array.from(logIds)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fuel-processor.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"fuel-processor.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/store/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAcd,MAAM,SAAS,CAAA;AAOhB,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAW9D;AA+JD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,UAU3D"}
|
@@ -0,0 +1,180 @@
|
|
1
|
+
import { GraphQLEnumType, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLScalarType, Kind, isObjectType, isInterfaceType, isListType } from 'graphql';
|
2
|
+
import * as fs from 'node:fs';
|
3
|
+
import path from 'path';
|
4
|
+
import mkdirp from 'mkdirp';
|
5
|
+
import { schemaFromFile } from './schema.js';
|
6
|
+
import chalk from 'chalk';
|
7
|
+
export async function codegen(srcDir, outputDir) {
|
8
|
+
for (const file of fs.readdirSync(srcDir)) {
|
9
|
+
const f = path.join(srcDir, file);
|
10
|
+
const filePath = path.parse(f);
|
11
|
+
if (filePath.ext == '.graphql') {
|
12
|
+
const { schema, source } = schemaFromFile(f);
|
13
|
+
const target = path.join(outputDir, filePath.name + '.ts');
|
14
|
+
await codegenInternal(schema, source, target);
|
15
|
+
console.log(chalk.green(`Generated ${target}`));
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
async function codegenInternal(schema, source, target) {
|
20
|
+
const results = [
|
21
|
+
'/* Autogenerated file. Do not edit manually. */\n',
|
22
|
+
'/* tslint:disable */',
|
23
|
+
'/* eslint-disable */',
|
24
|
+
"import {entity, derivedFrom, BigDecimal, DateTime, Json, Bytes, ID, Entity, Store} from '@sentio/sdk/store'",
|
25
|
+
`import { DatabaseSchema } from "@sentio/sdk"`
|
26
|
+
];
|
27
|
+
for (const t of Object.values(schema.getTypeMap())) {
|
28
|
+
if (t.name.startsWith('__')) {
|
29
|
+
continue;
|
30
|
+
}
|
31
|
+
if (t instanceof GraphQLObjectType) {
|
32
|
+
const entityContent = genEntity(t);
|
33
|
+
results.push(entityContent);
|
34
|
+
}
|
35
|
+
if (t instanceof GraphQLEnumType) {
|
36
|
+
results.push(genEnum(t));
|
37
|
+
}
|
38
|
+
if (t instanceof GraphQLInterfaceType) {
|
39
|
+
results.push(genInterface(t));
|
40
|
+
}
|
41
|
+
}
|
42
|
+
const contents = results.join('\n') +
|
43
|
+
`\n
|
44
|
+
const source = \`${source.replaceAll('`', '`')}\`
|
45
|
+
DatabaseSchema.register(source)
|
46
|
+
`;
|
47
|
+
await mkdirp(path.dirname(target));
|
48
|
+
fs.writeFileSync(target, contents);
|
49
|
+
}
|
50
|
+
const JsTypes = {
|
51
|
+
ID: 'string',
|
52
|
+
String: 'string',
|
53
|
+
Int: 'number',
|
54
|
+
Float: 'number',
|
55
|
+
Boolean: 'boolean',
|
56
|
+
BigInt: 'bigint',
|
57
|
+
BigDecimal: 'BigDecimal',
|
58
|
+
DateTime: 'Date',
|
59
|
+
Json: 'any',
|
60
|
+
Bytes: 'Uint8Array'
|
61
|
+
};
|
62
|
+
const graphqlTypes = Object.entries(JsTypes).reduce((acc, [k, v]) => {
|
63
|
+
acc[v] = k;
|
64
|
+
return acc;
|
65
|
+
}, {});
|
66
|
+
function genType(type) {
|
67
|
+
if (type instanceof GraphQLNonNull) {
|
68
|
+
return genType(type.ofType);
|
69
|
+
}
|
70
|
+
else if (type instanceof GraphQLScalarType) {
|
71
|
+
return type.name;
|
72
|
+
}
|
73
|
+
else if (type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType) {
|
74
|
+
return type.name;
|
75
|
+
}
|
76
|
+
else if (type instanceof GraphQLList) {
|
77
|
+
return `Array<${genType(type.ofType)}>`;
|
78
|
+
}
|
79
|
+
else if (type instanceof GraphQLEnumType) {
|
80
|
+
return type.name;
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
throw new Error('Unsupported type: ' + type);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
function isObject(type) {
|
87
|
+
if (type instanceof GraphQLNonNull) {
|
88
|
+
return isObject(type.ofType);
|
89
|
+
}
|
90
|
+
else if (type instanceof GraphQLList) {
|
91
|
+
return isObject(type.ofType);
|
92
|
+
}
|
93
|
+
return isObjectType(type) || isInterfaceType(type);
|
94
|
+
}
|
95
|
+
function isList(type) {
|
96
|
+
if (type instanceof GraphQLNonNull) {
|
97
|
+
return isListType(type.ofType);
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
return isListType(type);
|
101
|
+
}
|
102
|
+
}
|
103
|
+
function getElementType(type) {
|
104
|
+
if (type instanceof GraphQLNonNull) {
|
105
|
+
return getElementType(type.ofType);
|
106
|
+
}
|
107
|
+
else if (type instanceof GraphQLList) {
|
108
|
+
return type.ofType;
|
109
|
+
}
|
110
|
+
return type;
|
111
|
+
}
|
112
|
+
function genField(field) {
|
113
|
+
const isNonNull = field.type instanceof GraphQLNonNull;
|
114
|
+
const directives = field.astNode?.directives?.map((d) => '\t' + directive2decorator(d) + '\n') || [];
|
115
|
+
const type = genType(field.type);
|
116
|
+
const returnType = isNonNull ? type : `${type} | undefined`;
|
117
|
+
if (isObject(field.type)) {
|
118
|
+
const t = getElementType(field.type);
|
119
|
+
const typeAsArg = isInterfaceType(t) ? `"${t}"` : genType(t);
|
120
|
+
if (isList(field.type)) {
|
121
|
+
return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)}[]> { return this.getFieldObjectArray(${typeAsArg}, "${field.name}") as Promise<${genType(t)}[]> }
|
122
|
+
set ${field.name}(value: Array<${type}> | ID[]) { this.set("${field.name}", value) }
|
123
|
+
get ${field.name}Ids(): ID[] { return this.get("${field.name}") }`;
|
124
|
+
}
|
125
|
+
return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)} | undefined> { return this.getFieldObject(${typeAsArg},"${field.name}") as Promise<${genType(t)} | undefined> }
|
126
|
+
set ${field.name}(value: ${type} | ID) { this.set("${field.name}", value) }
|
127
|
+
get ${field.name}Id(): ID | undefined { return this.get("${field.name}") }`;
|
128
|
+
}
|
129
|
+
return `${directives.join()}\tget ${field.name}(): ${returnType} { return this.get("${field.name}") }
|
130
|
+
set ${field.name}(value: ${type}) { this.set("${field.name}", value) }`;
|
131
|
+
}
|
132
|
+
function genEntity(t) {
|
133
|
+
const decorators = t.astNode?.directives?.map(directive2decorator) || [];
|
134
|
+
let impls = '';
|
135
|
+
if (t.getInterfaces().length > 0) {
|
136
|
+
impls +=
|
137
|
+
' implements ' +
|
138
|
+
t
|
139
|
+
.getInterfaces()
|
140
|
+
.map((i) => i.name)
|
141
|
+
.join(', ');
|
142
|
+
}
|
143
|
+
return `
|
144
|
+
${decorators.join('\n')}
|
145
|
+
export class ${t.name} extends Entity${impls} {
|
146
|
+
constructor(data: Partial<${t.name}>) {
|
147
|
+
super(data)
|
148
|
+
}
|
149
|
+
${Object.values(t.getFields()).map(genField).join('\n')}
|
150
|
+
}`;
|
151
|
+
}
|
152
|
+
function genInterface(t) {
|
153
|
+
return `
|
154
|
+
export interface ${t.name} {
|
155
|
+
${Object.values(t.getFields())
|
156
|
+
.map((f) => `\t${f.name}: ${genType(f.type)}`)
|
157
|
+
.join('\n')}
|
158
|
+
}`;
|
159
|
+
}
|
160
|
+
export function directive2decorator(directive) {
|
161
|
+
let s = `@${directive.name.value}`;
|
162
|
+
if (directive.arguments?.length) {
|
163
|
+
s += `(${directive.arguments
|
164
|
+
?.map((arg) => {
|
165
|
+
return arg.value.kind === Kind.STRING ? `"${arg.value.value}"` : `${arg.value}`;
|
166
|
+
})
|
167
|
+
.join(', ')})`;
|
168
|
+
}
|
169
|
+
return s;
|
170
|
+
}
|
171
|
+
function genEnum(t) {
|
172
|
+
return `
|
173
|
+
export enum ${t.name} {
|
174
|
+
${t
|
175
|
+
.getValues()
|
176
|
+
.map((v) => `\t${v.name}`)
|
177
|
+
.join(', ')}
|
178
|
+
}`;
|
179
|
+
}
|
180
|
+
//# sourceMappingURL=codegen.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/store/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,iBAAiB,EAEjB,iBAAiB,EAEjB,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,UAAU,EACX,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,SAAiB;IAC7D,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,QAAQ,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,CAAA;YAC1D,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAqB,EAAE,MAAc,EAAE,MAAc;IAClF,MAAM,OAAO,GAAa;QACxB,mDAAmD;QACnD,sBAAsB;QACtB,sBAAsB;QACtB,6GAA6G;QAC7G,8CAA8C;KAC/C,CAAA;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,YAAY,iBAAiB,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QACD,IAAI,CAAC,YAAY,oBAAoB,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAClB;mBACe,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;;CAE7C,CAAA;IACC,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAElC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,OAAO,GAA2B;IACtC,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,YAAY;CACpB,CAAA;AACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CACjD,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;IACd,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACV,OAAO,GAAG,CAAA;AACZ,CAAC,EACD,EAA4B,CAC7B,CAAA;AAED,SAAS,OAAO,CAAC,IAAuB;IACtC,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;SAAM,IAAI,IAAI,YAAY,iBAAiB,IAAI,IAAI,YAAY,oBAAoB,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACvC,OAAO,SAAS,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;IACzC,CAAC;SAAM,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAuB;IACvC,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,MAAM,CAAC,IAAuB;IACrC,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAuB;IAC7C,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,KAA6B;IAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,YAAY,cAAc,CAAA;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAEpG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAA;IAE3D,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAE5D,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,eAAe,OAAO,CAAC,CAAC,CAAC,yCAAyC,SAAS,MAAM,KAAK,CAAC,IAAI,iBAAiB,OAAO,CAAC,CAAC,CAAC;QAClK,KAAK,CAAC,IAAI,iBAAiB,IAAI,yBAAyB,KAAK,CAAC,IAAI;QAClE,KAAK,CAAC,IAAI,kCAAkC,KAAK,CAAC,IAAI,MAAM,CAAA;QAChE,CAAC;QAED,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,eAAe,OAAO,CAAC,CAAC,CAAC,8CAA8C,SAAS,KAAK,KAAK,CAAC,IAAI,iBAAiB,OAAO,CAAC,CAAC,CAAC;QACpK,KAAK,CAAC,IAAI,WAAW,IAAI,sBAAsB,KAAK,CAAC,IAAI;QACzD,KAAK,CAAC,IAAI,2CAA2C,KAAK,CAAC,IAAI,MAAM,CAAA;IAC3E,CAAC;IAED,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,KAAK,CAAC,IAAI,OAAO,UAAU,uBAAuB,KAAK,CAAC,IAAI;QAC1F,KAAK,CAAC,IAAI,WAAW,IAAI,iBAAiB,KAAK,CAAC,IAAI,aAAa,CAAA;AACzE,CAAC;AAED,SAAS,SAAS,CAAC,CAA8B;IAC/C,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAA;IAExE,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK;YACH,cAAc;gBACd,CAAC;qBACE,aAAa,EAAE;qBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO;EACP,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;eACR,CAAC,CAAC,IAAI,kBAAkB,KAAK;8BACd,CAAC,CAAC,IAAI;;;EAGlC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EACrD,CAAA;AACF,CAAC;AAED,SAAS,YAAY,CAAC,CAAuB;IAC3C,OAAO;mBACU,CAAC,CAAC,IAAI;EACvB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC;EACX,CAAA;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAwB;IAC1D,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAClC,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAChC,CAAC,IAAI,IAAI,SAAS,CAAC,SAAS;YAC1B,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;QACjF,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,OAAO,CAAC,CAAkB;IACjC,OAAO;cACK,CAAC,CAAC,IAAI;EAClB,CAAC;SACA,SAAS,EAAE;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC;EACX,CAAA;AACF,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/store/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/store/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
type Constructor = {
|
2
|
+
new (...args: any[]): any;
|
3
|
+
};
|
4
|
+
export declare function entity<T extends Constructor>(constructor: T, context: any): T;
|
5
|
+
export declare function derivedFrom(field: string): (target: any, context: any) => void;
|
6
|
+
export {};
|
7
|
+
//# sourceMappingURL=decorators.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhD,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,KAEzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,YACd,GAAG,WAAW,GAAG,UAC3C"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAwB,WAAc,EAAE,OAAY;IACxE,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Store } from './store.js';
|
2
|
+
import { ID } from './types.js';
|
3
|
+
export interface EntityClass<T extends Entity> {
|
4
|
+
new (data: any): T;
|
5
|
+
}
|
6
|
+
export declare abstract class Entity {
|
7
|
+
get id(): ID;
|
8
|
+
private _store;
|
9
|
+
data: Record<string, any>;
|
10
|
+
protected constructor(data: Record<string, any>);
|
11
|
+
private getIdFromEntity;
|
12
|
+
set store(store: Store);
|
13
|
+
get<T>(field: string): T;
|
14
|
+
set<T>(field: string, value: T | T[] | ID | ID[]): void;
|
15
|
+
protected getFieldObject<T extends Entity>(entity: EntityClass<T> | string, field: string): Promise<T | undefined>;
|
16
|
+
protected getFieldObjectArray<T extends Entity>(entity: EntityClass<T>, field: string): Promise<T[]>;
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=entity.d.ts.map
|
@@ -0,0 +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,8BAAsB,MAAM;IAC1B,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,OAAO,CAAC,MAAM,CAAmB;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAK;IAC9B,SAAS,aAAa,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAU/C,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"}
|