@belopash/typeorm-store 0.1.0 → 1.0.0

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.
@@ -23,12 +23,6 @@ jobs:
23
23
  git config --global user.name 'github-actions'
24
24
  git config --global user.email 'github-actions@github.com'
25
25
 
26
- - name: update changelog
27
- run: |
28
- npx generate-changelog -p
29
- git add CHANGELOG.md
30
- git commit -m 'updated CHANGELOG.md'
31
-
32
26
  - name: bump version
33
27
  run: npm version ${{ github.event.inputs.version }} -m "bump to %s"
34
28
 
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @belopash/typeorm-store
2
+
3
+ This package is the fork of [@subsquid/typeorm-store](https://github.com/subsquid/squid-sdk/tree/master/typeorm/typeorm-store) package. It designed to reduce number of DB queries by postponing as much operations as possible.
package/lib/cacheMap.js CHANGED
@@ -92,32 +92,32 @@ class CacheMap {
92
92
  }
93
93
  cacheRelatedEntities(relations, sourceEntity, cachedEntity, mask) {
94
94
  for (const relation of relations) {
95
- const relatedMetadata = relation.inverseEntityMetadata;
96
- const relatedEntity = relation.getEntityValue(sourceEntity);
97
- const relatedMask = mask[relation.propertyName];
98
- if (relatedEntity === undefined)
95
+ const invMetadata = relation.inverseEntityMetadata;
96
+ const invEntity = relation.getEntityValue(sourceEntity);
97
+ const invMask = mask[relation.propertyName];
98
+ if (invEntity === undefined)
99
99
  continue;
100
- if (relatedMask) {
100
+ if (invMask) {
101
101
  if (relation.isOneToMany || relation.isManyToMany) {
102
- if (!Array.isArray(relatedEntity))
102
+ if (!Array.isArray(invEntity))
103
103
  continue;
104
- for (const entity of relatedEntity) {
105
- this.cacheEntity(entity, typeof relatedMask === 'boolean' ? {} : relatedMask);
104
+ for (const entity of invEntity) {
105
+ this.cacheEntity(entity, typeof invMask === 'boolean' ? {} : invMask);
106
106
  }
107
107
  }
108
- else if (relatedEntity != null) {
109
- this.cacheEntity(relatedEntity, typeof relatedMask === 'boolean' ? {} : relatedMask);
108
+ else if (invEntity != null) {
109
+ this.cacheEntity(invEntity, typeof invMask === 'boolean' ? {} : invMask);
110
110
  }
111
111
  }
112
112
  if (relation.isOwning) {
113
- if (relatedEntity === null) {
113
+ if (invEntity === null) {
114
114
  relation.setEntityValue(cachedEntity, null);
115
115
  }
116
116
  else {
117
- const relationCacheMap = this.getEntityCache(relatedMetadata.target);
118
- const cachedRelation = relationCacheMap.get(relatedEntity.id);
117
+ const relationCacheMap = this.getEntityCache(invMetadata.target);
118
+ const cachedRelation = relationCacheMap.get(invEntity.id);
119
119
  if (cachedRelation == null) {
120
- throw new Error(`Missing entity ${relatedMetadata.name} with id ${relatedEntity.id}`);
120
+ throw new Error(`Missing entity ${invMetadata.name} with id ${invEntity.id}`);
121
121
  }
122
122
  relation.setEntityValue(cachedEntity, cachedRelation.value);
123
123
  }
@@ -142,11 +142,11 @@ class CacheMap {
142
142
  return this.opts.logger.child('cache');
143
143
  }
144
144
  }
145
+ exports.CacheMap = CacheMap;
145
146
  __decorate([
146
147
  util_internal_1.def,
147
148
  __metadata("design:type", Function),
148
149
  __metadata("design:paramtypes", []),
149
150
  __metadata("design:returntype", logger_1.Logger)
150
151
  ], CacheMap.prototype, "getLogger", null);
151
- exports.CacheMap = CacheMap;
152
152
  //# sourceMappingURL=cacheMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cacheMap.js","sourceRoot":"","sources":["../src/cacheMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cacheMap.js","sourceRoot":"","sources":["../src/cacheMap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Entity } from '@subsquid/typeorm-store';
2
+ import { EntityManager, EntityTarget } from 'typeorm';
3
+ export declare enum UpdateType {
4
+ Insert = 0,
5
+ Upsert = 1,
6
+ Remove = 2
7
+ }
8
+ export interface Update {
9
+ id: string;
10
+ type: UpdateType;
11
+ }
12
+ export declare class UpdatesTracker {
13
+ private em;
14
+ private map;
15
+ constructor(em: () => EntityManager);
16
+ get<E extends Entity>(target: EntityTarget<E>, id: string): UpdateType | undefined;
17
+ set<E extends Entity>(target: EntityTarget<E>, id: string, type: UpdateType): this;
18
+ insert<E extends Entity>(target: EntityTarget<E>, id: string): void;
19
+ upsert<E extends Entity>(target: EntityTarget<E>, id: string): void;
20
+ remove<E extends Entity>(target: EntityTarget<E>, id: string): void;
21
+ getUpdates<E extends Entity>(target: EntityTarget<E>): Map<string, UpdateType>;
22
+ clear(): void;
23
+ }
24
+ //# sourceMappingURL=changeTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeTracker.d.ts","sourceRoot":"","sources":["../src/changeTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAEnD,oBAAY,UAAU;IAClB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;CACT;AAED,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,UAAU,CAAA;CACnB;AAED,qBAAa,cAAc;IAGX,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,GAAG,CAA6D;gBAEpD,EAAE,EAAE,MAAM,aAAa;IAE3C,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;IAIzD,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAK3E,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;IAS5D,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;IAQ5D,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;IAS5D,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAapD,KAAK;CAGR"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdatesTracker = exports.UpdateType = void 0;
4
+ var UpdateType;
5
+ (function (UpdateType) {
6
+ UpdateType[UpdateType["Insert"] = 0] = "Insert";
7
+ UpdateType[UpdateType["Upsert"] = 1] = "Upsert";
8
+ UpdateType[UpdateType["Remove"] = 2] = "Remove";
9
+ })(UpdateType || (exports.UpdateType = UpdateType = {}));
10
+ class UpdatesTracker {
11
+ constructor(em) {
12
+ this.em = em;
13
+ this.map = new Map();
14
+ }
15
+ get(target, id) {
16
+ return this.getUpdates(target).get(id);
17
+ }
18
+ set(target, id, type) {
19
+ this.getUpdates(target).set(id, type);
20
+ return this;
21
+ }
22
+ insert(target, id) {
23
+ const prevType = this.get(target, id);
24
+ if (prevType === UpdateType.Insert || prevType === UpdateType.Upsert) {
25
+ throw new Error(`ID ${id} is already marked as insert or upsert`);
26
+ }
27
+ else {
28
+ this.set(target, id, UpdateType.Insert);
29
+ }
30
+ }
31
+ upsert(target, id) {
32
+ const prevType = this.get(target, id);
33
+ if (prevType === UpdateType.Insert) {
34
+ }
35
+ else {
36
+ this.set(target, id, UpdateType.Upsert);
37
+ }
38
+ }
39
+ remove(target, id) {
40
+ const prevType = this.get(target, id);
41
+ if (prevType == UpdateType.Insert) {
42
+ this.getUpdates(target).delete(id);
43
+ }
44
+ else {
45
+ this.set(target, id, UpdateType.Remove);
46
+ }
47
+ }
48
+ getUpdates(target) {
49
+ const em = this.em();
50
+ const metadata = em.connection.getMetadata(target);
51
+ let map = this.map.get(metadata.target);
52
+ if (map == null) {
53
+ map = new Map();
54
+ this.map.set(metadata.target, map);
55
+ }
56
+ return map;
57
+ }
58
+ clear() {
59
+ this.map.clear();
60
+ }
61
+ }
62
+ exports.UpdatesTracker = UpdatesTracker;
63
+ //# sourceMappingURL=changeTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeTracker.js","sourceRoot":"","sources":["../src/changeTracker.ts"],"names":[],"mappings":";;;AAGA,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,+CAAM,CAAA;AACV,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAOD,MAAa,cAAc;IAGvB,YAAoB,EAAuB;QAAvB,OAAE,GAAF,EAAE,CAAqB;QAFnC,QAAG,GAAoD,IAAI,GAAG,EAAE,CAAA;IAE1B,CAAC;IAE/C,GAAG,CAAmB,MAAuB,EAAE,EAAU;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG,CAAmB,MAAuB,EAAE,EAAU,EAAE,IAAgB;QACvE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAmB,MAAuB,EAAE,EAAU;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACrC,IAAI,QAAQ,KAAK,UAAU,CAAC,MAAM,IAAI,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAED,MAAM,CAAmB,MAAuB,EAAE,EAAU;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACrC,IAAI,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAED,MAAM,CAAmB,MAAuB,EAAE,EAAU;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACrC,IAAI,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAED,UAAU,CAAmB,MAAuB;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAElD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACJ;AAxDD,wCAwDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA+F;AAG/F,oDAA2B;AAE3B,mCAAsC;AAItC,aAAa;AACb,MAAa,wBAAyB,SAAQ,+BAAe;IACzD,aAAa;IACb,QAAQ,CAAC,IAAiB,EAAE,EAA4C;QACpE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC1C,CAAC;IAED,aAAa;IACb,WAAW,CAAC,IAAe,EAAE,EAAkE;QAC3F,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,EAA4C,EAC5C,EAAiB,EACjB,aAA6B;QAE7B,IAAI,OAAO,GAAG,IAAI,CAAA;QAElB,IAAI,KAAK,GAAG,IAAI,sBAAc,CAAC,GAAG,EAAE;YAChC,IAAA,gBAAM,EAAC,OAAO,EAAE,mFAAmF,CAAC,CAAA;YACpG,OAAO,EAAE,CAAA;QACb,CAAC,EAAE,aAAa,CAAC,CAAA;QAEjB,IAAI;YACA,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YACf,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;SACtB;gBAAS;YACN,OAAO,GAAG,KAAK,CAAA;SAClB;IACL,CAAC;CACJ;AA9BD,4DA8BC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA+F;AAG/F,oDAA2B;AAE3B,mCAAsC;AAItC,aAAa;AACb,MAAa,wBAAyB,SAAQ,+BAAe;IACzD,aAAa;IACb,QAAQ,CAAC,IAAiB,EAAE,EAA4C;QACpE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC1C,CAAC;IAED,aAAa;IACb,WAAW,CAAC,IAAe,EAAE,EAAkE;QAC3F,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,EAA4C,EAC5C,EAAiB,EACjB,aAA6B;QAE7B,IAAI,OAAO,GAAG,IAAI,CAAA;QAElB,IAAI,KAAK,GAAG,IAAI,sBAAc,CAAC,GAAG,EAAE;YAChC,IAAA,gBAAM,EAAC,OAAO,EAAE,mFAAmF,CAAC,CAAA;YACpG,OAAO,EAAE,CAAA;QACb,CAAC,EAAE,aAAa,CAAC,CAAA;QAEjB,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YACf,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;gBAAS,CAAC;YACP,OAAO,GAAG,KAAK,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AA9BD,4DA8BC"}
@@ -0,0 +1,19 @@
1
+ import { Entity } from '@subsquid/typeorm-store';
2
+ import { EntityManager, EntityTarget, FindOptionsRelations } from 'typeorm';
3
+ export type DeferData = {
4
+ ids: Set<string>;
5
+ relations: FindOptionsRelations<any>;
6
+ };
7
+ export declare class DeferQueue {
8
+ private em;
9
+ private deferMap;
10
+ constructor(em: () => EntityManager);
11
+ add<E extends Entity>(entityClass: EntityTarget<E>, id: string, relations?: FindOptionsRelations<E>): void;
12
+ getData(entityClass: EntityTarget<any>): DeferData;
13
+ values(): {
14
+ target: EntityTarget<any>;
15
+ data: DeferData;
16
+ }[];
17
+ clear(): void;
18
+ }
19
+ //# sourceMappingURL=deferQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferQueue.d.ts","sourceRoot":"","sources":["../src/deferQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,SAAS,GAAG;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChB,SAAS,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAA;CACvC,CAAA;AAED,qBAAa,UAAU;IAGP,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAA+C;gBAE3C,EAAE,EAAE,MAAM,aAAa;IAE3C,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;IASnG,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC;IAatC,MAAM;;;;IAIN,KAAK;CAGR"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeferQueue = void 0;
4
+ class DeferQueue {
5
+ constructor(em) {
6
+ this.em = em;
7
+ this.deferMap = new Map();
8
+ }
9
+ add(entityClass, id, relations) {
10
+ const data = this.getData(entityClass);
11
+ data.ids.add(id);
12
+ if (relations != null) {
13
+ data.relations = mergeRelataions(data.relations, relations);
14
+ }
15
+ }
16
+ getData(entityClass) {
17
+ const em = this.em();
18
+ const metadata = em.connection.getMetadata(entityClass);
19
+ let list = this.deferMap.get(metadata.target);
20
+ if (list == null) {
21
+ list = { ids: new Set(), relations: {} };
22
+ this.deferMap.set(metadata.target, list);
23
+ }
24
+ return list;
25
+ }
26
+ values() {
27
+ return [...this.deferMap.entries()].map(([target, data]) => ({ target, data }));
28
+ }
29
+ clear() {
30
+ this.deferMap.clear();
31
+ }
32
+ }
33
+ exports.DeferQueue = DeferQueue;
34
+ function mergeRelataions(a, b) {
35
+ const mergedObject = {};
36
+ for (const key in a) {
37
+ mergedObject[key] = a[key];
38
+ }
39
+ for (const key in b) {
40
+ const bValue = b[key];
41
+ const value = mergedObject[key];
42
+ if (typeof bValue === 'object') {
43
+ mergedObject[key] = (typeof value === 'object' ? mergeRelataions(value, bValue) : bValue);
44
+ }
45
+ else {
46
+ mergedObject[key] = value || bValue;
47
+ }
48
+ }
49
+ return mergedObject;
50
+ }
51
+ //# sourceMappingURL=deferQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferQueue.js","sourceRoot":"","sources":["../src/deferQueue.ts"],"names":[],"mappings":";;;AAQA,MAAa,UAAU;IAGnB,YAAoB,EAAuB;QAAvB,OAAE,GAAF,EAAE,CAAqB;QAFnC,aAAQ,GAAsC,IAAI,GAAG,EAAE,CAAA;IAEjB,CAAC;IAE/C,GAAG,CAAmB,WAA4B,EAAE,EAAU,EAAE,SAAmC;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEhB,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC/D,CAAC;IACL,CAAC;IAED,OAAO,CAAC,WAA8B;QAClC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QAEvD,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACf,IAAI,GAAG,EAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAC,CAAA;YACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;CACJ;AAlCD,gCAkCC;AAED,SAAS,eAAe,CACpB,CAA0B,EAC1B,CAA0B;IAE1B,MAAM,YAAY,GAA4B,EAAE,CAAA;IAEhD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAC,GAAG,CAChB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAY,EAAE,MAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAC7E,CAAA;QACZ,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,MAAM,CAAA;QACvC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAA;AACvB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EntityMetadata } from 'typeorm';
2
+ export declare function getCommitOrder(entities: EntityMetadata[]): EntityMetadata[];
3
+ //# sourceMappingURL=relationGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationGraph.d.ts","sourceRoot":"","sources":["../src/relationGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAStC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAuD3E"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCommitOrder = void 0;
4
+ var State;
5
+ (function (State) {
6
+ State[State["Unvisited"] = 0] = "Unvisited";
7
+ State[State["Visiting"] = 1] = "Visiting";
8
+ State[State["Visited"] = 2] = "Visited";
9
+ })(State || (State = {}));
10
+ function getCommitOrder(entities) {
11
+ const nodeState = {};
12
+ const saveOrder = [];
13
+ for (const node of entities) {
14
+ nodeState[node.name] = State.Unvisited;
15
+ }
16
+ function visit(node) {
17
+ if (nodeState[node.name] !== State.Unvisited)
18
+ return;
19
+ nodeState[node.name] = State.Visiting;
20
+ for (const edge of node.relations) {
21
+ if (edge.foreignKeys.length === 0)
22
+ continue;
23
+ const target = edge.inverseEntityMetadata;
24
+ switch (nodeState[target.name]) {
25
+ case undefined:
26
+ case State.Unvisited: {
27
+ visit(target);
28
+ break;
29
+ }
30
+ case State.Visiting: {
31
+ const reversedEdge = target.relations.find((r) => r.inverseEntityMetadata === node);
32
+ if (reversedEdge != null) {
33
+ const edgeWeight = getWeight(edge);
34
+ const reversedEdgeWeight = getWeight(reversedEdge);
35
+ if (edgeWeight > reversedEdgeWeight) {
36
+ for (const r of target.relations) {
37
+ visit(r.inverseEntityMetadata);
38
+ }
39
+ nodeState[target.name] = State.Visited;
40
+ saveOrder.push(target);
41
+ }
42
+ }
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ if (nodeState[node.name] !== State.Visited) {
48
+ nodeState[node.name] = State.Visited;
49
+ saveOrder.push(node);
50
+ }
51
+ }
52
+ for (const node of entities) {
53
+ visit(node);
54
+ }
55
+ return saveOrder;
56
+ }
57
+ exports.getCommitOrder = getCommitOrder;
58
+ function getWeight(relation) {
59
+ return relation.isNullable ? 0 : 1;
60
+ }
61
+ //# sourceMappingURL=relationGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationGraph.js","sourceRoot":"","sources":["../src/relationGraph.ts"],"names":[],"mappings":";;;AAGA,IAAK,KAIJ;AAJD,WAAK,KAAK;IACN,2CAAS,CAAA;IACT,yCAAQ,CAAA;IACR,uCAAO,CAAA;AACX,CAAC,EAJI,KAAK,KAAL,KAAK,QAIT;AAED,SAAgB,cAAc,CAAC,QAA0B;IACrD,MAAM,SAAS,GAA0B,EAAE,CAAA;IAC3C,MAAM,SAAS,GAAqB,EAAE,CAAA;IAEtC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAA;IAC1C,CAAC;IAED,SAAS,KAAK,CAAC,IAAoB;QAC/B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS;YAAE,OAAM;QAEpD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAA;QAErC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAA;YAEzC,QAAQ,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,KAAK,SAAS,CAAC;gBACf,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBACnB,KAAK,CAAC,MAAM,CAAC,CAAA;oBACb,MAAK;gBACT,CAAC;gBACD,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAClB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAA;oBACnF,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;wBAClC,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;wBAElD,IAAI,UAAU,GAAG,kBAAkB,EAAE,CAAC;4BAClC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gCAC/B,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;4BAClC,CAAC;4BAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAA;4BACtC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC1B,CAAC;oBACL,CAAC;oBACD,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACzC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAA;YACpC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IAED,OAAO,SAAS,CAAA;AACpB,CAAC;AAvDD,wCAuDC;AAED,SAAS,SAAS,CAAC,QAA0B;IACzC,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC"}
package/lib/store.d.ts CHANGED
@@ -1,22 +1,24 @@
1
1
  import { Entity as _Entity, Entity, EntityClass, FindManyOptions, FindOneOptions, Store } from '@subsquid/typeorm-store';
2
2
  import { ChangeTracker } from '@subsquid/typeorm-store/lib/hot';
3
- import { EntityManager, EntityTarget, FindOptionsRelations, FindOptionsWhere } from 'typeorm';
4
- export { EntityClass, FindManyOptions, FindOneOptions, Entity };
5
- export type DeferMap = Map<string, {
6
- ids: Set<string>;
7
- relations: FindOptionsRelations<any>;
8
- }>;
9
- export interface ChangeSet {
10
- inserts: Entity[];
11
- upserts: Entity[];
12
- delayedUpserts: Entity[];
13
- removes: Entity[];
3
+ import { EntityManager, EntityMetadata, EntityTarget, FindOptionsRelations, FindOptionsWhere } from 'typeorm';
4
+ export { Entity, EntityClass, FindManyOptions, FindOneOptions };
5
+ export type ChangeSet<E extends Entity> = {
6
+ metadata: EntityMetadata;
7
+ inserts: E[];
8
+ upserts: E[];
9
+ removes: E[];
10
+ extraUpserts: E[];
11
+ };
12
+ export interface GetOptions<Entity = any> {
13
+ id: string;
14
+ relations?: FindOptionsRelations<Entity>;
14
15
  }
15
16
  export declare class StoreWithCache extends Store {
16
17
  private em;
17
- private deferMap;
18
18
  private updates;
19
+ private queue;
19
20
  private cache;
21
+ private logger;
20
22
  constructor(em: () => EntityManager, changes?: ChangeTracker);
21
23
  insert<E extends _Entity>(entity: E): Promise<void>;
22
24
  insert<E extends _Entity>(entities: E[]): Promise<void>;
@@ -35,20 +37,23 @@ export declare class StoreWithCache extends Store {
35
37
  findOneOrFail<E extends Entity>(entityClass: EntityTarget<E>, options: FindOneOptions<E>): Promise<E>;
36
38
  findOneBy<E extends Entity>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E | undefined>;
37
39
  findOneByOrFail<E extends Entity>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E>;
38
- get<E extends Entity>(entityClass: EntityTarget<E>, id: string, relations?: FindOptionsRelations<E>): Promise<E | undefined>;
39
- getOrFail<E extends Entity>(entityClass: EntityTarget<E>, id: string, relations?: FindOptionsRelations<E>): Promise<E>;
40
+ get<E extends Entity>(entityClass: EntityTarget<E>, id: string): Promise<E | undefined>;
41
+ get<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>): Promise<E | undefined>;
42
+ getOrFail<E extends Entity>(entityClass: EntityTarget<E>, id: string): Promise<E>;
43
+ getOrFail<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>): Promise<E>;
44
+ getOrCreate<E extends Entity>(entityClass: EntityTarget<E>, id: string, create: (id: string) => E | Promise<E>): Promise<E>;
45
+ getOrCreate<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
40
46
  private getCached;
41
- defer<E extends Entity>(entityClass: EntityTarget<E>, id: string, relations?: FindOptionsRelations<E>): DeferredEntity<E>;
47
+ defer<E extends Entity>(entityClass: EntityTarget<E>, id: string): DeferredEntity<E>;
48
+ defer<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>): DeferredEntity<E>;
42
49
  commit(): Promise<void>;
43
- private collectChangeSets;
50
+ private getChangeSet;
51
+ private extractExtraUpsert;
44
52
  flush(): Promise<void>;
45
53
  private load;
46
- private knownSelfRelations;
47
- private getSelfRelations;
48
- private getTopologicalOrder;
49
- private getDeferData;
50
- private getUpdateMap;
51
- private getLogger;
54
+ private getCommitOrder;
55
+ private commitOrderIndexes;
56
+ private getCommitOrderIndex;
52
57
  private saveMany;
53
58
  private getFkSignature;
54
59
  private upsertMany;
@@ -58,8 +63,10 @@ export declare class DeferredEntity<E extends Entity> {
58
63
  constructor(opts: {
59
64
  get: () => Promise<E | undefined>;
60
65
  getOrFail: () => Promise<E>;
66
+ getOrCreate: (create: (id: string) => E | Promise<E>) => Promise<E>;
61
67
  });
62
68
  get(): Promise<E | undefined>;
63
69
  getOrFail(): Promise<E>;
70
+ getOrCreate(create: (id: string) => E | Promise<E>): Promise<E>;
64
71
  }
65
72
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}