@itwin/imodel-transformer 0.4.3 → 0.4.4-dev.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.
- package/CHANGELOG.md +2 -2
- package/lib/cjs/BigMap.d.ts +6 -1
- package/lib/cjs/BigMap.d.ts.map +1 -1
- package/lib/cjs/BigMap.js +28 -2
- package/lib/cjs/BigMap.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Change Log - @itwin/imodel-transformer
|
|
2
2
|
|
|
3
|
-
This log was last generated on Wed, 06 Dec 2023 15:24:
|
|
3
|
+
This log was last generated on Wed, 06 Dec 2023 15:24:30 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
7
|
## 0.4.3
|
|
8
8
|
|
|
9
|
-
Wed, 06 Dec 2023 15:24:
|
|
9
|
+
Wed, 06 Dec 2023 15:24:30 GMT
|
|
10
10
|
|
|
11
11
|
### Patches
|
|
12
12
|
|
package/lib/cjs/BigMap.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { Id64String } from "@itwin/core-bentley";
|
|
|
9
9
|
* replace this stopgap with a more robust solution, utilizing a temporary SQLite database (https://github.com/iTwin/imodel-transformer/issues/83).
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
export declare class BigMap<V>
|
|
12
|
+
export declare class BigMap<V> implements Map<Id64String, V> {
|
|
13
13
|
private _maps;
|
|
14
14
|
private _size;
|
|
15
15
|
get size(): number;
|
|
@@ -20,5 +20,10 @@ export declare class BigMap<V> extends Map<Id64String, V> {
|
|
|
20
20
|
get(key: Id64String): V | undefined;
|
|
21
21
|
has(key: Id64String): boolean;
|
|
22
22
|
set(key: Id64String, value: V): this;
|
|
23
|
+
[Symbol.iterator](): IterableIterator<[Id64String, V]>;
|
|
24
|
+
get [Symbol.toStringTag](): string;
|
|
25
|
+
entries(): IterableIterator<[Id64String, V]>;
|
|
26
|
+
keys(): IterableIterator<Id64String>;
|
|
27
|
+
values(): IterableIterator<V>;
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=BigMap.d.ts.map
|
package/lib/cjs/BigMap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigMap.d.ts","sourceRoot":"","sources":["../../src/BigMap.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,MAAM,CAAC,CAAC,CAAE,
|
|
1
|
+
{"version":3,"file":"BigMap.d.ts","sourceRoot":"","sources":["../../src/BigMap.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,MAAM,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,KAAK,CAAS;IAEtB,IAAW,IAAI,IAAI,MAAM,CAExB;;IAwBM,KAAK,IAAI,IAAI;IAKb,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAShC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAMtG,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS;IAInC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI7B,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAWpC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAI7D,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,WAE9B;IAEO,OAAO,IAAI,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAQ5C,IAAI,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAQpC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAOxC"}
|
package/lib/cjs/BigMap.js
CHANGED
|
@@ -8,12 +8,11 @@ exports.BigMap = void 0;
|
|
|
8
8
|
* replace this stopgap with a more robust solution, utilizing a temporary SQLite database (https://github.com/iTwin/imodel-transformer/issues/83).
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
class BigMap
|
|
11
|
+
class BigMap {
|
|
12
12
|
get size() {
|
|
13
13
|
return this._size;
|
|
14
14
|
}
|
|
15
15
|
constructor() {
|
|
16
|
-
super();
|
|
17
16
|
this._maps = {
|
|
18
17
|
0: new Map(),
|
|
19
18
|
1: new Map(),
|
|
@@ -66,6 +65,33 @@ class BigMap extends Map {
|
|
|
66
65
|
this._size += (afterSize - beforeSize);
|
|
67
66
|
return this;
|
|
68
67
|
}
|
|
68
|
+
[Symbol.iterator]() {
|
|
69
|
+
return this.entries();
|
|
70
|
+
}
|
|
71
|
+
get [Symbol.toStringTag]() {
|
|
72
|
+
return "BigMap";
|
|
73
|
+
}
|
|
74
|
+
*entries() {
|
|
75
|
+
const maps = Object.values(this._maps);
|
|
76
|
+
for (const map of maps) {
|
|
77
|
+
for (const [key, value] of map.entries())
|
|
78
|
+
yield [key, value];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
*keys() {
|
|
82
|
+
const maps = Object.values(this._maps);
|
|
83
|
+
for (const map of maps) {
|
|
84
|
+
for (const key of map.keys())
|
|
85
|
+
yield key;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
*values() {
|
|
89
|
+
const maps = Object.values(this._maps);
|
|
90
|
+
for (const map of maps) {
|
|
91
|
+
for (const value of map.values())
|
|
92
|
+
yield value;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
69
95
|
}
|
|
70
96
|
exports.BigMap = BigMap;
|
|
71
97
|
//# sourceMappingURL=BigMap.js.map
|
package/lib/cjs/BigMap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigMap.js","sourceRoot":"","sources":["../../src/BigMap.ts"],"names":[],"mappings":";;;AASA;;;;;;GAMG;AACH,MAAa,
|
|
1
|
+
{"version":3,"file":"BigMap.js","sourceRoot":"","sources":["../../src/BigMap.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\nimport { Id64String } from \"@itwin/core-bentley\";\n\n/**\n * This class serves as a temporary solution to address the issue of the V8 JavaScript engine's Map implementation,\n * which is limited to approximately 16.7 million elements. Currently, only Id64 string representations are\n * supported by this Map; any other type will lead to errors. It's worth noting that our future plan is to\n * replace this stopgap with a more robust solution, utilizing a temporary SQLite database (https://github.com/iTwin/imodel-transformer/issues/83).\n * @internal\n */\nexport class BigMap<V> implements Map<Id64String, V> {\n private _maps: Record<string, Map<string, V>>;\n private _size: number;\n\n public get size(): number {\n return this._size;\n }\n\n public constructor() {\n this._maps = {\n 0: new Map(),\n 1: new Map(),\n 2: new Map(),\n 3: new Map(),\n 4: new Map(),\n 5: new Map(),\n 6: new Map(),\n 7: new Map(),\n 8: new Map(),\n 9: new Map(),\n a: new Map(),\n b: new Map(),\n c: new Map(),\n d: new Map(),\n e: new Map(),\n f: new Map(),\n };\n this._size = 0;\n }\n\n public clear(): void {\n Object.values(this._maps).forEach((m) => m.clear());\n this._size = 0;\n }\n\n public delete(key: Id64String): boolean {\n const wasDeleted = this._maps[key[key.length - 1]].delete(key);\n if (wasDeleted) {\n this._size--;\n }\n\n return wasDeleted;\n }\n\n public forEach(callbackfn: (value: V, key: Id64String, map: Map<Id64String, V>) => void, thisArg?: any): void {\n Object.values(this._maps).forEach((m) => {\n m.forEach(callbackfn, thisArg);\n });\n }\n\n public get(key: Id64String): V | undefined {\n return this._maps[key[key.length - 1]].get(key);\n }\n\n public has(key: Id64String): boolean {\n return this._maps[key[key.length - 1]].has(key);\n }\n\n public set(key: Id64String, value: V): this {\n const mapForKey = this._maps[key[key.length - 1]];\n if (mapForKey === undefined)\n throw Error(`Tried to set ${key}, but that key has no submap`);\n const beforeSize = mapForKey.size;\n mapForKey.set(key, value);\n const afterSize = mapForKey.size;\n this._size += (afterSize - beforeSize);\n return this;\n }\n\n public [Symbol.iterator](): IterableIterator<[Id64String, V]>{\n return this.entries();\n }\n\n public get [Symbol.toStringTag]() {\n return \"BigMap\";\n }\n\n public *entries(): IterableIterator<[Id64String, V]> {\n const maps = Object.values(this._maps);\n for (const map of maps) {\n for (const [key, value] of map.entries())\n yield [key, value];\n }\n }\n\n public *keys(): IterableIterator<Id64String> {\n const maps = Object.values(this._maps);\n for (const map of maps) {\n for (const key of map.keys())\n yield key;\n }\n }\n\n public *values(): IterableIterator<V> {\n const maps = Object.values(this._maps);\n for (const map of maps) {\n for (const value of map.values())\n yield value;\n }\n }\n}\n"]}
|
package/package.json
CHANGED