@belopash/typeorm-store 1.2.1 → 1.3.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.
@@ -1 +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"}
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;IAe5D,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;IAW5D,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM;IAW5D,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAapD,KAAK;CAGR"}
@@ -21,28 +21,36 @@ class UpdatesTracker {
21
21
  }
22
22
  insert(target, id) {
23
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);
24
+ switch (prevType) {
25
+ case undefined:
26
+ this.set(target, id, UpdateType.Insert);
27
+ break;
28
+ case UpdateType.Remove:
29
+ this.set(target, id, UpdateType.Upsert);
30
+ break;
31
+ case UpdateType.Insert:
32
+ case UpdateType.Insert:
33
+ throw new Error(`ID ${id} is already marked as insert or upsert`);
29
34
  }
30
35
  }
31
36
  upsert(target, id) {
32
37
  const prevType = this.get(target, id);
33
- if (prevType === UpdateType.Insert) {
34
- }
35
- else {
36
- this.set(target, id, UpdateType.Upsert);
38
+ switch (prevType) {
39
+ case UpdateType.Insert:
40
+ break;
41
+ default:
42
+ this.set(target, id, UpdateType.Upsert);
43
+ break;
37
44
  }
38
45
  }
39
46
  remove(target, id) {
40
47
  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);
48
+ switch (prevType) {
49
+ case UpdateType.Insert:
50
+ this.getUpdates(target).delete(id);
51
+ break;
52
+ default:
53
+ this.set(target, id, UpdateType.Remove);
46
54
  }
47
55
  }
48
56
  getUpdates(target) {
@@ -1 +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
+ {"version":3,"file":"changeTracker.js","sourceRoot":"","sources":["../src/changeTracker.ts"],"names":[],"mappings":"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"}
package/lib/database.d.ts CHANGED
@@ -5,6 +5,7 @@ export { IsolationLevel, TypeormDatabaseOptions };
5
5
  export declare class TypeormDatabaseWithCache extends TypeormDatabase {
6
6
  transact(info: FinalTxInfo, cb: (store: StoreWithCache) => Promise<void>): Promise<void>;
7
7
  transactHot(info: HotTxInfo, cb: (store: StoreWithCache, block: HashAndHeight) => Promise<void>): Promise<void>;
8
+ transactHot2(info: HotTxInfo, cb: (store: StoreWithCache, sliceBeg: number, sliceEnd: number) => Promise<void>): Promise<void>;
8
9
  private performUpdates;
9
10
  }
10
11
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAA;AAE/F,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,wCAAwC,CAAA;AAG5F,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAC,cAAc,EAAE,sBAAsB,EAAC,CAAA;AAG/C,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjG,cAAc;CAmB/B"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAA;AAE/F,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,wCAAwC,CAAA;AAG5F,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAC,cAAc,EAAE,sBAAsB,EAAC,CAAA;AAG/C,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/G,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAIhH,cAAc;CAmB/B"}
package/lib/database.js CHANGED
@@ -17,6 +17,10 @@ class TypeormDatabaseWithCache extends typeorm_store_1.TypeormDatabase {
17
17
  transactHot(info, cb) {
18
18
  return super.transactHot(info, cb);
19
19
  }
20
+ // @ts-ignore
21
+ transactHot2(info, cb) {
22
+ return super.transactHot2(info, cb);
23
+ }
20
24
  async performUpdates(cb, em, changeTracker) {
21
25
  let running = true;
22
26
  let store = new store_1.StoreWithCache(() => {
@@ -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,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"}
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;IAED,aAAa;IACb,YAAY,CAAC,IAAe,EAAE,EAAgF;QAC1G,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC9C,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;AAnCD,4DAmCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@belopash/typeorm-store",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Optimized TypeORM based storage for squid mappings",
5
5
  "repository": {
6
6
  "url": "https://github.com/belopash/squid-typeorm-store"
@@ -18,21 +18,21 @@
18
18
  "test": "mocha -r dotenv/config lib/test/*.test.js --exit --timeout 5000"
19
19
  },
20
20
  "dependencies": {
21
- "@subsquid/logger": "^1.3.1",
22
- "@subsquid/util-internal": "^2.5.2"
21
+ "@subsquid/logger": "^1.3.3",
22
+ "@subsquid/util-internal": "^3.1.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@subsquid/typeorm-config": "^4.1.0",
26
- "@subsquid/typeorm-store": "^1.2.1",
26
+ "@subsquid/typeorm-store": "^1.3.0",
27
27
  "typeorm": "^0.3.16",
28
28
  "pg": "^8.11.3"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/mocha": "^10.0.6",
32
- "@types/node": "^20.8.7",
33
- "@types/pg": "^8.10.9",
32
+ "@types/node": "^20.11.28",
33
+ "@types/pg": "^8.11.2",
34
34
  "expect": "^29.7.0",
35
- "mocha": "^10.2.0",
36
- "typescript": "^5.2.2"
35
+ "mocha": "^10.3.0",
36
+ "typescript": "^5.4.2"
37
37
  }
38
38
  }
@@ -28,27 +28,38 @@ export class UpdatesTracker {
28
28
 
29
29
  insert<E extends Entity>(target: EntityTarget<E>, id: string) {
30
30
  const prevType = this.get(target, id)
31
- if (prevType === UpdateType.Insert || prevType === UpdateType.Upsert) {
32
- throw new Error(`ID ${id} is already marked as insert or upsert`)
33
- } else {
34
- this.set(target, id, UpdateType.Insert)
31
+ switch (prevType) {
32
+ case undefined:
33
+ this.set(target, id, UpdateType.Insert)
34
+ break
35
+ case UpdateType.Remove:
36
+ this.set(target, id, UpdateType.Upsert)
37
+ break
38
+ case UpdateType.Insert:
39
+ case UpdateType.Insert:
40
+ throw new Error(`ID ${id} is already marked as insert or upsert`)
35
41
  }
36
42
  }
37
43
 
38
44
  upsert<E extends Entity>(target: EntityTarget<E>, id: string) {
39
45
  const prevType = this.get(target, id)
40
- if (prevType === UpdateType.Insert) {
41
- } else {
42
- this.set(target, id, UpdateType.Upsert)
46
+ switch (prevType) {
47
+ case UpdateType.Insert:
48
+ break
49
+ default:
50
+ this.set(target, id, UpdateType.Upsert)
51
+ break
43
52
  }
44
53
  }
45
54
 
46
55
  remove<E extends Entity>(target: EntityTarget<E>, id: string) {
47
56
  const prevType = this.get(target, id)
48
- if (prevType == UpdateType.Insert) {
49
- this.getUpdates(target).delete(id)
50
- } else {
51
- this.set(target, id, UpdateType.Remove)
57
+ switch (prevType) {
58
+ case UpdateType.Insert:
59
+ this.getUpdates(target).delete(id)
60
+ break
61
+ default:
62
+ this.set(target, id, UpdateType.Remove)
52
63
  }
53
64
  }
54
65
 
package/src/database.ts CHANGED
@@ -19,6 +19,11 @@ export class TypeormDatabaseWithCache extends TypeormDatabase {
19
19
  return super.transactHot(info, cb as any)
20
20
  }
21
21
 
22
+ // @ts-ignore
23
+ transactHot2(info: HotTxInfo, cb: (store: StoreWithCache, sliceBeg: number, sliceEnd: number) => Promise<void>): Promise<void> {
24
+ return super.transactHot2(info, cb as any)
25
+ }
26
+
22
27
  private async performUpdates(
23
28
  cb: (store: StoreWithCache) => Promise<void>,
24
29
  em: EntityManager,