@belopash/typeorm-store 1.6.0-rc.5 → 1.6.0-rc.6

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":"commitOrder.d.ts","sourceRoot":"","sources":["../../src/utils/commitOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,SAAS,CAAA;AASlD,QAAA,MAAM,iBAAiB,eAAwB,CAAA;AAE/C,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,UAAU,GAAG;IACrB,CAAC,iBAAiB,CAAC,CAAC,EAAE,cAAc,EAAE,CAAA;CACzC,GACF,cAAc,EAAE,CAyDlB"}
1
+ {"version":3,"file":"commitOrder.d.ts","sourceRoot":"","sources":["../../src/utils/commitOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,SAAS,CAAA;AASlD,QAAA,MAAM,iBAAiB,eAAwB,CAAA;AAE/C,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,UAAU,GAAG;IACrB,CAAC,iBAAiB,CAAC,CAAC,EAAE,cAAc,EAAE,CAAA;CACzC,GACF,cAAc,EAAE,CAsDlB"}
@@ -12,48 +12,47 @@ function getMetadatasInCommitOrder(connection) {
12
12
  let commitOrder = connection[CommitOrderSymbol];
13
13
  if (commitOrder != null)
14
14
  return commitOrder;
15
- let states = new Map();
15
+ const nodeState = {};
16
16
  function visit(node) {
17
- if (states.get(node.name) !== NodeState.Unvisited)
17
+ if (nodeState[node.name] && nodeState[node.name] !== NodeState.Unvisited)
18
18
  return;
19
- states.set(node.name, NodeState.Visiting);
20
- for (let edge of node.relations) {
19
+ nodeState[node.name] = NodeState.Visiting;
20
+ for (const edge of node.relations) {
21
21
  if (edge.foreignKeys.length === 0)
22
22
  continue;
23
- let target = edge.inverseEntityMetadata;
24
- let targetState = states.get(target.name);
25
- if (targetState === NodeState.Unvisited) {
26
- visit(target);
27
- }
28
- else if (targetState === NodeState.Visiting) {
29
- let inverseEdge = target.relations.find((r) => r.inverseEntityMetadata === node);
30
- if (inverseEdge != null) {
31
- let edgeWeight = getWeight(edge);
32
- let inverseEdgeWeight = getWeight(inverseEdge);
33
- if (edgeWeight > inverseEdgeWeight) {
34
- for (let r of target.relations) {
35
- visit(r.inverseEntityMetadata);
23
+ const target = edge.inverseEntityMetadata;
24
+ switch (nodeState[target.name]) {
25
+ case undefined:
26
+ case NodeState.Unvisited: {
27
+ visit(target);
28
+ break;
29
+ }
30
+ case NodeState.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] = NodeState.Visited;
40
+ commitOrder?.push(target);
36
41
  }
37
- states.set(target.name, NodeState.Visited);
38
- commitOrder?.push(target);
39
42
  }
43
+ break;
40
44
  }
41
45
  }
42
46
  }
43
- let nodeState = states.get(node.name);
44
- if (nodeState !== NodeState.Visited) {
45
- states.set(node.name, NodeState.Visited);
47
+ if (nodeState[node.name] !== NodeState.Visited) {
48
+ nodeState[node.name] = NodeState.Visited;
46
49
  commitOrder?.push(node);
47
50
  }
48
51
  }
49
- commitOrder = [];
50
- for (let node of connection.entityMetadatas) {
51
- if (!states.has(node.name)) {
52
- states.set(node.name, NodeState.Unvisited);
53
- }
52
+ connection[CommitOrderSymbol] = commitOrder = [];
53
+ for (const node of connection.entityMetadatas) {
54
54
  visit(node);
55
55
  }
56
- connection[CommitOrderSymbol] = commitOrder;
57
56
  return commitOrder;
58
57
  }
59
58
  function getWeight(edge) {
@@ -1 +1 @@
1
- {"version":3,"file":"commitOrder.js","sourceRoot":"","sources":["../../src/utils/commitOrder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commitOrder.js","sourceRoot":"","sources":["../../src/utils/commitOrder.ts"],"names":[],"mappings":";;AAWA,8DA0DC;AAlED,IAAK,SAIJ;AAJD,WAAK,SAAS;IACV,mDAAS,CAAA;IACT,iDAAQ,CAAA;IACR,+CAAO,CAAA;AACX,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAE/C,SAAgB,yBAAyB,CACrC,UAEC;IAED,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC/C,IAAI,WAAW,IAAI,IAAI;QAAE,OAAO,WAAW,CAAA;IAE3C,MAAM,SAAS,GAA8B,EAAE,CAAA;IAE/C,SAAS,KAAK,CAAC,IAAoB;QAC/B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,SAAS;YAAE,OAAM;QAEhF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAA;QAEzC,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,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvB,KAAK,CAAC,MAAM,CAAC,CAAA;oBACb,MAAK;gBACT,CAAC;gBACD,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACtB,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,SAAS,CAAC,OAAO,CAAA;4BAC1C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;wBAC7B,CAAC;oBACL,CAAC;oBACD,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAA;YACxC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,UAAU,CAAC,iBAAiB,CAAC,GAAG,WAAW,GAAG,EAAE,CAAA;IAChD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IAED,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,IAAsB;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@belopash/typeorm-store",
3
- "version": "1.6.0-rc.5",
3
+ "version": "1.6.0-rc.6",
4
4
  "description": "Optimized TypeORM based storage for squid mappings",
5
5
  "repository": {
6
6
  "url": "https://github.com/belopash/squid-typeorm-store"
@@ -17,57 +17,54 @@ export function getMetadatasInCommitOrder(
17
17
  let commitOrder = connection[CommitOrderSymbol]
18
18
  if (commitOrder != null) return commitOrder
19
19
 
20
- let states: Map<string, NodeState> = new Map()
20
+ const nodeState: Record<string, NodeState> = {}
21
21
 
22
22
  function visit(node: EntityMetadata) {
23
- if (states.get(node.name) !== NodeState.Unvisited) return
23
+ if (nodeState[node.name] && nodeState[node.name] !== NodeState.Unvisited) return
24
24
 
25
- states.set(node.name, NodeState.Visiting)
25
+ nodeState[node.name] = NodeState.Visiting
26
26
 
27
- for (let edge of node.relations) {
27
+ for (const edge of node.relations) {
28
28
  if (edge.foreignKeys.length === 0) continue
29
29
 
30
- let target = edge.inverseEntityMetadata
31
- let targetState = states.get(target.name)
30
+ const target = edge.inverseEntityMetadata
32
31
 
33
- if (targetState === NodeState.Unvisited) {
34
- visit(target)
35
- } else if (targetState === NodeState.Visiting) {
36
- let inverseEdge = target.relations.find((r) => r.inverseEntityMetadata === node)
37
- if (inverseEdge != null) {
38
- let edgeWeight = getWeight(edge)
39
- let inverseEdgeWeight = getWeight(inverseEdge)
40
-
41
- if (edgeWeight > inverseEdgeWeight) {
42
- for (let r of target.relations) {
43
- visit(r.inverseEntityMetadata)
32
+ switch (nodeState[target.name]) {
33
+ case undefined:
34
+ case NodeState.Unvisited: {
35
+ visit(target)
36
+ break
37
+ }
38
+ case NodeState.Visiting: {
39
+ const reversedEdge = target.relations.find((r) => r.inverseEntityMetadata === node)
40
+ if (reversedEdge != null) {
41
+ const edgeWeight = getWeight(edge)
42
+ const reversedEdgeWeight = getWeight(reversedEdge)
43
+
44
+ if (edgeWeight > reversedEdgeWeight) {
45
+ for (const r of target.relations) {
46
+ visit(r.inverseEntityMetadata)
47
+ }
48
+
49
+ nodeState[target.name] = NodeState.Visited
50
+ commitOrder?.push(target)
44
51
  }
45
-
46
- states.set(target.name, NodeState.Visited)
47
- commitOrder?.push(target)
48
52
  }
53
+ break
49
54
  }
50
55
  }
51
56
  }
52
57
 
53
- let nodeState = states.get(node.name)
54
-
55
- if (nodeState !== NodeState.Visited) {
56
- states.set(node.name, NodeState.Visited)
58
+ if (nodeState[node.name] !== NodeState.Visited) {
59
+ nodeState[node.name] = NodeState.Visited
57
60
  commitOrder?.push(node)
58
61
  }
59
62
  }
60
63
 
61
- commitOrder = []
62
-
63
- for (let node of connection.entityMetadatas) {
64
- if (!states.has(node.name)) {
65
- states.set(node.name, NodeState.Unvisited)
66
- }
67
-
64
+ connection[CommitOrderSymbol] = commitOrder = []
65
+ for (const node of connection.entityMetadatas) {
68
66
  visit(node)
69
67
  }
70
- connection[CommitOrderSymbol] = commitOrder
71
68
 
72
69
  return commitOrder
73
70
  }