joist-core 2.2.0-next.2 → 2.2.0-next.21
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/build/BaseEntity.js +1 -1
- package/build/BaseEntity.js.map +1 -1
- package/build/EntityManager.d.ts +3 -0
- package/build/EntityManager.d.ts.map +1 -1
- package/build/EntityManager.js +164 -87
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.d.ts +17 -1
- package/build/EntityMetadata.d.ts.map +1 -1
- package/build/EntityMetadata.js.map +1 -1
- package/build/IndexManager.d.ts +5 -5
- package/build/IndexManager.d.ts.map +1 -1
- package/build/IndexManager.js +48 -32
- package/build/IndexManager.js.map +1 -1
- package/build/InstanceData.d.ts +16 -2
- package/build/InstanceData.d.ts.map +1 -1
- package/build/InstanceData.js +36 -3
- package/build/InstanceData.js.map +1 -1
- package/build/IsLoadedCache.d.ts.map +1 -1
- package/build/IsLoadedCache.js +31 -25
- package/build/IsLoadedCache.js.map +1 -1
- package/build/QueryParser.collectionJoins.js +8 -2
- package/build/QueryParser.collectionJoins.js.map +1 -1
- package/build/QueryParser.d.ts +4 -2
- package/build/QueryParser.d.ts.map +1 -1
- package/build/QueryParser.js.map +1 -1
- package/build/QueryParser.pruning.d.ts.map +1 -1
- package/build/QueryParser.pruning.js +8 -1
- package/build/QueryParser.pruning.js.map +1 -1
- package/build/ReactionsManager.d.ts +2 -1
- package/build/ReactionsManager.d.ts.map +1 -1
- package/build/ReactionsManager.js +53 -49
- package/build/ReactionsManager.js.map +1 -1
- package/build/batchloaders/BatchLoader.d.ts.map +1 -1
- package/build/batchloaders/BatchLoader.js +6 -1
- package/build/batchloaders/BatchLoader.js.map +1 -1
- package/build/batchloaders/populateBatchLoader.d.ts.map +1 -1
- package/build/batchloaders/populateBatchLoader.js +26 -8
- package/build/batchloaders/populateBatchLoader.js.map +1 -1
- package/build/configure.d.ts +3 -3
- package/build/configure.d.ts.map +1 -1
- package/build/configure.js +64 -0
- package/build/configure.js.map +1 -1
- package/build/dataloaders/fastWhereFilterHash.d.ts +15 -0
- package/build/dataloaders/fastWhereFilterHash.d.ts.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.js +164 -0
- package/build/dataloaders/fastWhereFilterHash.js.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.test.d.ts +2 -0
- package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +1 -0
- package/build/dataloaders/fastWhereFilterHash.test.js +59 -0
- package/build/dataloaders/fastWhereFilterHash.test.js.map +1 -0
- package/build/dataloaders/findCountDataLoader.d.ts +1 -2
- package/build/dataloaders/findCountDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findCountDataLoader.js +16 -13
- package/build/dataloaders/findCountDataLoader.js.map +1 -1
- package/build/dataloaders/findDataLoader.d.ts +9 -4
- package/build/dataloaders/findDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findDataLoader.js +120 -88
- package/build/dataloaders/findDataLoader.js.map +1 -1
- package/build/dataloaders/findIdsDataLoader.d.ts +1 -2
- package/build/dataloaders/findIdsDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findIdsDataLoader.js +16 -15
- package/build/dataloaders/findIdsDataLoader.js.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.js +3 -3
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/dataloaders/findPaginatedDataLoader.d.ts +1 -2
- package/build/dataloaders/findPaginatedDataLoader.d.ts.map +1 -1
- package/build/dataloaders/findPaginatedDataLoader.js +33 -25
- package/build/dataloaders/findPaginatedDataLoader.js.map +1 -1
- package/build/drivers/EntityWriter.js +13 -7
- package/build/drivers/EntityWriter.js.map +1 -1
- package/build/drivers/buildRawQuery.d.ts.map +1 -1
- package/build/drivers/buildRawQuery.js +5 -1
- package/build/drivers/buildRawQuery.js.map +1 -1
- package/build/fields.d.ts.map +1 -1
- package/build/fields.js +16 -6
- package/build/fields.js.map +1 -1
- package/build/keys.d.ts.map +1 -1
- package/build/keys.js +8 -6
- package/build/keys.js.map +1 -1
- package/build/loadHints.d.ts +9 -0
- package/build/loadHints.d.ts.map +1 -1
- package/build/loadHints.js +63 -9
- package/build/loadHints.js.map +1 -1
- package/build/loadLens.d.ts +11 -0
- package/build/loadLens.d.ts.map +1 -1
- package/build/loadLens.js +43 -10
- package/build/loadLens.js.map +1 -1
- package/build/normalizeHints.d.ts +7 -0
- package/build/normalizeHints.d.ts.map +1 -1
- package/build/normalizeHints.js +40 -2
- package/build/normalizeHints.js.map +1 -1
- package/build/relations/RecursiveCollection.d.ts +2 -6
- package/build/relations/RecursiveCollection.d.ts.map +1 -1
- package/build/relations/RecursiveCollection.js +9 -17
- package/build/relations/RecursiveCollection.js.map +1 -1
- package/build/relations/RecursiveCycleError.d.ts +13 -0
- package/build/relations/RecursiveCycleError.d.ts.map +1 -0
- package/build/relations/RecursiveCycleError.js +15 -0
- package/build/relations/RecursiveCycleError.js.map +1 -0
- package/build/relations/hasOneThrough.d.ts.map +1 -1
- package/build/relations/hasOneThrough.js +6 -4
- package/build/relations/hasOneThrough.js.map +1 -1
- package/build/relations/hasProperty.d.ts +2 -1
- package/build/relations/hasProperty.d.ts.map +1 -1
- package/build/relations/hasProperty.js +15 -5
- package/build/relations/hasProperty.js.map +1 -1
- package/build/utils.d.ts +2 -0
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +12 -0
- package/build/utils.js.map +1 -1
- package/package.json +3 -5
- package/build/caches.d.ts +0 -6
- package/build/caches.d.ts.map +0 -1
- package/build/caches.js +0 -42
- package/build/caches.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"populateBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/populateBatchLoader.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"populateBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/populateBatchLoader.ts"],"names":[],"mappings":"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"}
|
package/build/configure.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Entity } from "./Entity";
|
|
2
|
-
import { MaybeAbstractEntityConstructor, TaggedId } from "./EntityManager";
|
|
3
|
-
import { EntityMetadata } from "./EntityMetadata";
|
|
1
|
+
import { type Entity } from "./Entity";
|
|
2
|
+
import { type MaybeAbstractEntityConstructor, type TaggedId } from "./EntityManager";
|
|
3
|
+
import { type EntityMetadata } from "./EntityMetadata";
|
|
4
4
|
import { Reference } from "./relations";
|
|
5
5
|
/** Performs our boot-time initialization, i.e. hooking up reactivity. */
|
|
6
6
|
export declare function configureMetadata(metas: EntityMetadata[]): void;
|
package/build/configure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,8BAA8B,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAIL,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAiD,SAAS,EAAE,MAAM,aAAa,CAAC;AAavF,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CA2B/D;AAqED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAEtF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAG5F;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAErE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAEnE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,8BAA8B,CAAC,GAAG,CAAC,GAAG,SAAS,CAGjD"}
|
package/build/configure.js
CHANGED
|
@@ -32,6 +32,7 @@ function configureMetadata(metas) {
|
|
|
32
32
|
try {
|
|
33
33
|
populateConstructorMaps(metas);
|
|
34
34
|
hookUpBaseTypeAndSubTypes(metas);
|
|
35
|
+
installMetadataGetters(metas);
|
|
35
36
|
sortMetasByBaseType(metas);
|
|
36
37
|
setImmutableFields(metas);
|
|
37
38
|
populatePolyComponentFields(metas);
|
|
@@ -42,6 +43,7 @@ function configureMetadata(metas) {
|
|
|
42
43
|
// Do these after `fireAfterMetadatas`, in case afterMetadata callbacks added more defaults/rules
|
|
43
44
|
copyAsyncDefaults(metas);
|
|
44
45
|
reverseIndexReactivity(metas);
|
|
46
|
+
installReactiveMetadataGetters(metas);
|
|
45
47
|
copyRunBeforeBooksToBaseType(metas);
|
|
46
48
|
}
|
|
47
49
|
catch (e) {
|
|
@@ -49,6 +51,52 @@ function configureMetadata(metas) {
|
|
|
49
51
|
throw e;
|
|
50
52
|
}
|
|
51
53
|
}
|
|
54
|
+
/** Installs lazy lookup getters for metadata-derived caches. */
|
|
55
|
+
function installMetadataGetters(metas) {
|
|
56
|
+
for (const meta of metas) {
|
|
57
|
+
(0, utils_1.defineLazyGetter)(meta, "subTypesByType", function buildSubTypesByType() {
|
|
58
|
+
return new Map(meta.subTypes.map((st) => [st.type, st]));
|
|
59
|
+
});
|
|
60
|
+
(0, utils_1.defineLazyGetter)(meta, "subTypesByStiValue", function buildSubTypesByStiValue() {
|
|
61
|
+
return new Map(meta.subTypes.map((st) => [st.stiDiscriminatorValue, st]));
|
|
62
|
+
});
|
|
63
|
+
(0, utils_1.defineLazyGetter)(meta, "stiDiscriminatorColumnName", function buildStiDiscriminatorColumnName() {
|
|
64
|
+
const field = meta.fields[meta.stiDiscriminatorField];
|
|
65
|
+
if (field === undefined)
|
|
66
|
+
throw new Error(`${meta.type} does not have an STI discriminator field`);
|
|
67
|
+
if (field.kind !== "enum")
|
|
68
|
+
throw new Error("Discriminator field must be an enum");
|
|
69
|
+
return field.serde.columns[0].columnName;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Installs lazy getters for reactivity caches after reactivity has been reverse-indexed. */
|
|
74
|
+
function installReactiveMetadataGetters(metas) {
|
|
75
|
+
for (const meta of metas) {
|
|
76
|
+
(0, utils_1.defineLazyGetter)(meta, "reactables", function buildReactables() {
|
|
77
|
+
return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta)
|
|
78
|
+
.flatMap((m) => m.config.__data.reactables)
|
|
79
|
+
.filter((r) => !r.isReadOnly);
|
|
80
|
+
});
|
|
81
|
+
(0, utils_1.defineLazyGetter)(meta, "reactablesByField", function buildReactablesByField() {
|
|
82
|
+
return indexReactablesByField(meta.reactables);
|
|
83
|
+
});
|
|
84
|
+
(0, utils_1.defineLazyGetter)(meta, "reactablesIncludingReadOnly", function buildReactablesIncludingReadOnly() {
|
|
85
|
+
return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).flatMap((m) => m.config.__data.reactables);
|
|
86
|
+
});
|
|
87
|
+
(0, utils_1.defineLazyGetter)(meta, "reactablesIncludingReadOnlyByField", function buildReactablesIncludingReadOnlyByField() {
|
|
88
|
+
return indexReactablesByField(meta.reactablesIncludingReadOnly);
|
|
89
|
+
});
|
|
90
|
+
(0, utils_1.defineLazyGetter)(meta, "reactiveRules", function buildReactiveRules() {
|
|
91
|
+
// We use "AndSub" because `reactiveRules` is called with `todo.metadata`, which is always
|
|
92
|
+
// the root type, but ofc we don't want to skip subtype rules.
|
|
93
|
+
//
|
|
94
|
+
// I had considered filtering this list with `rr.fields.length > 0`, but even rules with 100%
|
|
95
|
+
// immutable fields (so all read-only, and so not "reactive") need to run on initial entity creation.
|
|
96
|
+
return (0, EntityMetadata_1.getBaseSelfAndSubMetas)(meta).flatMap((m) => m.config.__data.reactiveRules);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
52
100
|
// Sort metas in place by inheritance hierarchy so that the base type comes before subtypes
|
|
53
101
|
function sortMetasByBaseType(metas) {
|
|
54
102
|
metas.sort(compareMetasByBaseType);
|
|
@@ -326,4 +374,20 @@ function copyRunBeforeBooksToBaseType(meta) {
|
|
|
326
374
|
}
|
|
327
375
|
}
|
|
328
376
|
}
|
|
377
|
+
/** Indexes reactables once so field setters don't scan every reactable's fields. */
|
|
378
|
+
function indexReactablesByField(reactables) {
|
|
379
|
+
const byField = new Map();
|
|
380
|
+
for (const reactable of reactables) {
|
|
381
|
+
for (const field of reactable.fields) {
|
|
382
|
+
let fields = byField.get(field);
|
|
383
|
+
if (fields === undefined) {
|
|
384
|
+
fields = [];
|
|
385
|
+
byField.set(field, fields);
|
|
386
|
+
}
|
|
387
|
+
if (!fields.includes(reactable))
|
|
388
|
+
fields.push(reactable);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return byField;
|
|
392
|
+
}
|
|
329
393
|
//# sourceMappingURL=configure.js.map
|
package/build/configure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a fast stable key for find filters.
|
|
3
|
+
*
|
|
4
|
+
* This avoids `object-hash` for simple find filters; the phase 8 query-prep benchmark saw 1,000-query p50s drop
|
|
5
|
+
* from ~22-26ms to ~7.6-10.9ms, with heap allocation dropping from ~24-30MB to ~10-16MB.
|
|
6
|
+
*
|
|
7
|
+
* We also benchmarked native/WASM non-cryptographic hash libraries, but they only hash bytes; they still need this
|
|
8
|
+
* deterministic serialization first. For 1,000 filter keys, this helper alone had p50s of 0.337/0.353/0.410ms vs.
|
|
9
|
+
* object-hash md5 at 7.467/7.436/7.620ms, and wrapping this key with native hashes was slower: farmhash
|
|
10
|
+
* fingerprint64 at 0.517/0.524/0.538ms, @node-rs/xxhash xxh3-128 at 0.611/0.613/0.627ms, and xxhash-addon
|
|
11
|
+
* XXH128 at 1.031/1.078/1.348ms. So the stable serialization is the necessary work, and keeping it as the cache
|
|
12
|
+
* key avoids extra native-call/digest overhead and avoids introducing probabilistic hash collisions.
|
|
13
|
+
*/
|
|
14
|
+
export declare function fastWhereFilterHash(value: unknown): string | undefined;
|
|
15
|
+
//# sourceMappingURL=fastWhereFilterHash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastWhereFilterHash.d.ts","sourceRoot":"","sources":["../../src/dataloaders/fastWhereFilterHash.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEtE"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fastWhereFilterHash = fastWhereFilterHash;
|
|
4
|
+
const Aliases_1 = require("../Aliases");
|
|
5
|
+
const Entity_1 = require("../Entity");
|
|
6
|
+
const relations_1 = require("../relations");
|
|
7
|
+
const temporal_1 = require("../temporal");
|
|
8
|
+
const temporalMappers_1 = require("../temporalMappers");
|
|
9
|
+
const Temporal = (0, temporal_1.maybeRequireTemporal)()?.Temporal;
|
|
10
|
+
/**
|
|
11
|
+
* Returns a fast stable key for find filters.
|
|
12
|
+
*
|
|
13
|
+
* This avoids `object-hash` for simple find filters; the phase 8 query-prep benchmark saw 1,000-query p50s drop
|
|
14
|
+
* from ~22-26ms to ~7.6-10.9ms, with heap allocation dropping from ~24-30MB to ~10-16MB.
|
|
15
|
+
*
|
|
16
|
+
* We also benchmarked native/WASM non-cryptographic hash libraries, but they only hash bytes; they still need this
|
|
17
|
+
* deterministic serialization first. For 1,000 filter keys, this helper alone had p50s of 0.337/0.353/0.410ms vs.
|
|
18
|
+
* object-hash md5 at 7.467/7.436/7.620ms, and wrapping this key with native hashes was slower: farmhash
|
|
19
|
+
* fingerprint64 at 0.517/0.524/0.538ms, @node-rs/xxhash xxh3-128 at 0.611/0.613/0.627ms, and xxhash-addon
|
|
20
|
+
* XXH128 at 1.031/1.078/1.348ms. So the stable serialization is the necessary work, and keeping it as the cache
|
|
21
|
+
* key avoids extra native-call/digest overhead and avoids introducing probabilistic hash collisions.
|
|
22
|
+
*/
|
|
23
|
+
function fastWhereFilterHash(value) {
|
|
24
|
+
return appendStableValue("", value, new WeakSet());
|
|
25
|
+
}
|
|
26
|
+
/** Appends a deterministic, type-tagged representation of `value` to `key`. */
|
|
27
|
+
function appendStableValue(key, value, seen) {
|
|
28
|
+
if (value === undefined)
|
|
29
|
+
return `${key}u;`;
|
|
30
|
+
if (value === null)
|
|
31
|
+
return `${key}n;`;
|
|
32
|
+
switch (typeof value) {
|
|
33
|
+
case "string":
|
|
34
|
+
return `${key}s${value.length}:${value};`;
|
|
35
|
+
case "number":
|
|
36
|
+
return `${key}d${value};`;
|
|
37
|
+
case "boolean":
|
|
38
|
+
return `${key}b${value ? 1 : 0};`;
|
|
39
|
+
case "bigint":
|
|
40
|
+
return `${key}i${value.toString()};`;
|
|
41
|
+
case "object":
|
|
42
|
+
return appendStableObject(key, value, seen);
|
|
43
|
+
case "function":
|
|
44
|
+
return (0, Aliases_1.isAlias)(value) ? `${key}xalias;` : undefined;
|
|
45
|
+
default:
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** Appends a deterministic, type-tagged representation of `value` to `key`. */
|
|
50
|
+
function appendStableObject(key, value, seen) {
|
|
51
|
+
if (value instanceof Date)
|
|
52
|
+
return `${key}t${value.toISOString().length}:${value.toISOString()};`;
|
|
53
|
+
if (ArrayBuffer.isView(value))
|
|
54
|
+
return appendArrayBufferView(key, value);
|
|
55
|
+
if (Array.isArray(value)) {
|
|
56
|
+
if (seen.has(value))
|
|
57
|
+
return undefined;
|
|
58
|
+
seen.add(value);
|
|
59
|
+
key = `${key}a${value.length}[`;
|
|
60
|
+
for (const item of value) {
|
|
61
|
+
const nextKey = appendStableValue(key, item, seen);
|
|
62
|
+
if (nextKey === undefined) {
|
|
63
|
+
seen.delete(value);
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
key = nextKey;
|
|
67
|
+
}
|
|
68
|
+
seen.delete(value);
|
|
69
|
+
return `${key}]`;
|
|
70
|
+
}
|
|
71
|
+
if (isPlainObject(value)) {
|
|
72
|
+
if (seen.has(value))
|
|
73
|
+
return undefined;
|
|
74
|
+
seen.add(value);
|
|
75
|
+
const keys = Object.keys(value).sort();
|
|
76
|
+
key = `${key}o${keys.length}{`;
|
|
77
|
+
for (const property of keys) {
|
|
78
|
+
key = `${key}${property.length}:${property}=`;
|
|
79
|
+
const nextKey = appendStableValue(key, value[property], seen);
|
|
80
|
+
if (nextKey === undefined) {
|
|
81
|
+
seen.delete(value);
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
key = nextKey;
|
|
85
|
+
}
|
|
86
|
+
seen.delete(value);
|
|
87
|
+
return `${key}}`;
|
|
88
|
+
}
|
|
89
|
+
if ((0, Entity_1.isEntity)(value))
|
|
90
|
+
return `${key}e${value.toString().length}:${value.toString()};`;
|
|
91
|
+
const referenceKey = appendReferenceValue(key, value);
|
|
92
|
+
if (referenceKey !== undefined)
|
|
93
|
+
return referenceKey;
|
|
94
|
+
const temporalValue = toTemporalDbValue(value);
|
|
95
|
+
if (temporalValue !== undefined)
|
|
96
|
+
return appendTemporalValue(key, temporalValue);
|
|
97
|
+
const valueObjectKey = appendValueObject(key, value, seen);
|
|
98
|
+
if (valueObjectKey !== undefined)
|
|
99
|
+
return valueObjectKey;
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
/** Appends an ArrayBuffer view by its exact byte contents. */
|
|
103
|
+
function appendArrayBufferView(key, value) {
|
|
104
|
+
const bytes = Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString("base64");
|
|
105
|
+
return `${key}y${value.constructor.name.length}:${value.constructor.name}:${bytes.length}:${bytes};`;
|
|
106
|
+
}
|
|
107
|
+
/** Appends a Joist reference by its tagged id. */
|
|
108
|
+
function appendReferenceValue(key, value) {
|
|
109
|
+
if (!(0, relations_1.isReference)(value))
|
|
110
|
+
return undefined;
|
|
111
|
+
const id = value.idTaggedMaybe;
|
|
112
|
+
return id === undefined ? `${key}r;` : `${key}r${id.length}:${id};`;
|
|
113
|
+
}
|
|
114
|
+
/** Appends a custom value object by constructor name and enumerable properties. */
|
|
115
|
+
function appendValueObject(key, value, seen) {
|
|
116
|
+
if (!isValueObject(value))
|
|
117
|
+
return undefined;
|
|
118
|
+
if (seen.has(value))
|
|
119
|
+
return undefined;
|
|
120
|
+
seen.add(value);
|
|
121
|
+
const constructorName = value.constructor.name;
|
|
122
|
+
const keys = Object.keys(value).sort();
|
|
123
|
+
key = `${key}c${constructorName.length}:${constructorName}:${keys.length}{`;
|
|
124
|
+
for (const property of keys) {
|
|
125
|
+
key = `${key}${property.length}:${property}=`;
|
|
126
|
+
const nextKey = appendStableValue(key, value[property], seen);
|
|
127
|
+
if (nextKey === undefined) {
|
|
128
|
+
seen.delete(value);
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
key = nextKey;
|
|
132
|
+
}
|
|
133
|
+
seen.delete(value);
|
|
134
|
+
return `${key}}`;
|
|
135
|
+
}
|
|
136
|
+
/** Appends a Temporal value as a distinct scalar type. */
|
|
137
|
+
function appendTemporalValue(key, value) {
|
|
138
|
+
return `${key}t${value.length}:${value};`;
|
|
139
|
+
}
|
|
140
|
+
/** Returns the db representation for Temporal values, or undefined for non-Temporal values. */
|
|
141
|
+
function toTemporalDbValue(value) {
|
|
142
|
+
if (!Temporal)
|
|
143
|
+
return undefined;
|
|
144
|
+
if (value instanceof Temporal.ZonedDateTime)
|
|
145
|
+
return temporalMappers_1.zonedDateTimeMapper.toDb(value);
|
|
146
|
+
if (value instanceof Temporal.PlainDateTime)
|
|
147
|
+
return temporalMappers_1.plainDateTimeMapper.toDb(value);
|
|
148
|
+
if (value instanceof Temporal.PlainDate)
|
|
149
|
+
return temporalMappers_1.plainDateMapper.toDb(value);
|
|
150
|
+
if (value instanceof Temporal.PlainTime)
|
|
151
|
+
return temporalMappers_1.plainTimeMapper.toDb(value);
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
/** Returns true for plain object literals used by find filters/settings. */
|
|
155
|
+
function isPlainObject(value) {
|
|
156
|
+
const prototype = Object.getPrototypeOf(value);
|
|
157
|
+
return prototype === Object.prototype || prototype === null;
|
|
158
|
+
}
|
|
159
|
+
/** Returns true for custom value objects that can be represented by enumerable fields. */
|
|
160
|
+
function isValueObject(value) {
|
|
161
|
+
const prototype = Object.getPrototypeOf(value);
|
|
162
|
+
return prototype !== Object.prototype && prototype !== null && Object.keys(value).length > 0;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=fastWhereFilterHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastWhereFilterHash.js","sourceRoot":"","sources":["../../src/dataloaders/fastWhereFilterHash.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastWhereFilterHash.test.d.ts","sourceRoot":"","sources":["../../src/dataloaders/fastWhereFilterHash.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fastWhereFilterHash_1 = require("./fastWhereFilterHash");
|
|
4
|
+
describe("fastWhereFilterHash", () => {
|
|
5
|
+
it("returns stable hashes for object keys regardless of insertion order", () => {
|
|
6
|
+
const first = (0, fastWhereFilterHash_1.fastWhereFilterHash)({ b: 2, a: "one" });
|
|
7
|
+
const second = (0, fastWhereFilterHash_1.fastWhereFilterHash)({ a: "one", b: 2 });
|
|
8
|
+
expect(first).toEqual("o2{1:a=s3:one;1:b=d2;}");
|
|
9
|
+
expect(second).toEqual(first);
|
|
10
|
+
});
|
|
11
|
+
it("uses type tags to distinguish similar scalar values", () => {
|
|
12
|
+
expect([
|
|
13
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: "1" }),
|
|
14
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: 1 }),
|
|
15
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: true }),
|
|
16
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: 1n }),
|
|
17
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: null }),
|
|
18
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: undefined }),
|
|
19
|
+
]).toEqual([
|
|
20
|
+
"o1{5:value=s1:1;}",
|
|
21
|
+
"o1{5:value=d1;}",
|
|
22
|
+
"o1{5:value=b1;}",
|
|
23
|
+
"o1{5:value=i1;}",
|
|
24
|
+
"o1{5:value=n;}",
|
|
25
|
+
"o1{5:value=u;}",
|
|
26
|
+
]);
|
|
27
|
+
});
|
|
28
|
+
it("hashes nested arrays and plain objects", () => {
|
|
29
|
+
const hash = (0, fastWhereFilterHash_1.fastWhereFilterHash)({ ids: [1, 2], nested: { name: "a1" } });
|
|
30
|
+
expect(hash).toEqual("o2{3:ids=a2[d1;d2;]6:nested=o1{4:name=s2:a1;}}");
|
|
31
|
+
});
|
|
32
|
+
it("hashes date values with their db representation", () => {
|
|
33
|
+
expect((0, fastWhereFilterHash_1.fastWhereFilterHash)({ at: new Date("2020-01-02T03:04:05.000Z") })).toEqual("o1{2:at=t24:2020-01-02T03:04:05.000Z;}");
|
|
34
|
+
});
|
|
35
|
+
it("hashes byte array values by their contents", () => {
|
|
36
|
+
expect((0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: new Uint8Array([11, 22]) })).toEqual("o1{5:value=y10:Uint8Array:4:CxY=;}");
|
|
37
|
+
});
|
|
38
|
+
it("hashes custom value objects by constructor and enumerable values", () => {
|
|
39
|
+
expect((0, fastWhereFilterHash_1.fastWhereFilterHash)({ value: new SupportedValue("a1") })).toEqual("o1{5:value=c14:SupportedValue:1{4:name=s2:a1;}}");
|
|
40
|
+
});
|
|
41
|
+
it("returns undefined for unsupported object types", () => {
|
|
42
|
+
expect([
|
|
43
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)(new Map([["name", "a1"]])),
|
|
44
|
+
(0, fastWhereFilterHash_1.fastWhereFilterHash)(function unsupportedFunction() { }),
|
|
45
|
+
]).toEqual([undefined, undefined]);
|
|
46
|
+
});
|
|
47
|
+
it("returns undefined for circular structures", () => {
|
|
48
|
+
const value = { name: "a1" };
|
|
49
|
+
value.self = value;
|
|
50
|
+
expect((0, fastWhereFilterHash_1.fastWhereFilterHash)(value)).toEqual(undefined);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
class SupportedValue {
|
|
54
|
+
name;
|
|
55
|
+
constructor(name) {
|
|
56
|
+
this.name = name;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=fastWhereFilterHash.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastWhereFilterHash.test.js","sourceRoot":"","sources":["../../src/dataloaders/fastWhereFilterHash.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
1
|
import { Entity } from "../Entity";
|
|
3
2
|
import { FilterAndSettings } from "../EntityFilter";
|
|
4
3
|
import { EntityManager, MaybeAbstractEntityConstructor } from "../EntityManager";
|
|
5
4
|
export declare const findCountOperation = "find-count";
|
|
6
|
-
export declare function findCountDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>):
|
|
5
|
+
export declare function findCountDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>): Promise<number>;
|
|
7
6
|
//# sourceMappingURL=findCountDataLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findCountDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findCountDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"findCountDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findCountDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAcjF,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,MAAM,CAAC,CA6EjB"}
|
|
@@ -16,18 +16,21 @@ function findCountDataLoader(em, type, filter) {
|
|
|
16
16
|
}
|
|
17
17
|
const meta = (0, EntityMetadata_1.getMetadata)(type);
|
|
18
18
|
const query = (0, QueryParser_1.parseFindQuery)(meta, where, opts);
|
|
19
|
+
const { findSettings } = em["prepareFind"](meta, exports.findCountOperation, query, { ...opts, checkLimit: false });
|
|
20
|
+
const bindings = [];
|
|
21
|
+
(0, findDataLoader_1.collectValues)(bindings, query);
|
|
22
|
+
const prepared = { filter, query, bindings, findSettings };
|
|
19
23
|
const batchKey = (0, findDataLoader_1.getBatchKeyFromGenericStructure)(meta, query);
|
|
20
|
-
return em
|
|
24
|
+
return em
|
|
25
|
+
.getLoader(exports.findCountOperation, batchKey, async (entries) => {
|
|
21
26
|
// We're guaranteed that these queries all have the same structure
|
|
22
27
|
// Don't bother with the CTE if there's only 1 query (or each query has exactly the same filter values)
|
|
23
|
-
if (
|
|
24
|
-
const {
|
|
25
|
-
const meta = (0, EntityMetadata_1.getMetadata)(type);
|
|
26
|
-
const query = (0, QueryParser_1.parseFindQuery)(meta, where, options);
|
|
28
|
+
if (entries.length === 1) {
|
|
29
|
+
const { query, findSettings } = entries[0];
|
|
27
30
|
const primary = query.tables.find((t) => t.join === "primary") ?? (0, utils_1.fail)("No primary");
|
|
28
31
|
query.selects = [`count(distinct ${(0, keywords_1.kq)(primary.alias)}.id) as count`];
|
|
29
32
|
query.orderBys = [];
|
|
30
|
-
const rows = await em["
|
|
33
|
+
const rows = await em["executePreparedFind"](meta, exports.findCountOperation, query, findSettings, false);
|
|
31
34
|
return [Number(rows[0].count)];
|
|
32
35
|
}
|
|
33
36
|
// WITH _find (tag, arg1, arg2) AS (
|
|
@@ -40,8 +43,7 @@ function findCountDataLoader(em, type, filter) {
|
|
|
40
43
|
// FROM author a WHERE a.first_name = _find.arg1 OR a.last_name = _find.arg2
|
|
41
44
|
// ) _data
|
|
42
45
|
// Build the list of 'arg1', 'arg2', ... strings
|
|
43
|
-
const {
|
|
44
|
-
const query = (0, QueryParser_1.parseFindQuery)((0, EntityMetadata_1.getMetadata)(type), where, options);
|
|
46
|
+
const { query, findSettings } = entries[0];
|
|
45
47
|
const argsColumns = (0, findDataLoader_1.collectAndReplaceArgs)(query);
|
|
46
48
|
argsColumns.unshift({ columnName: "tag", dbType: "int" });
|
|
47
49
|
// We're not returning the entities, just counting them...
|
|
@@ -56,19 +58,20 @@ function findCountDataLoader(em, type, filter) {
|
|
|
56
58
|
{ join: "lateral", query: query, table: meta.tableName, alias: "_data", fromAlias: "_f" },
|
|
57
59
|
],
|
|
58
60
|
// For each unique query, capture its filter values in `bindings` to populate the CTE _find table
|
|
59
|
-
ctes: [(0, unnest_1.buildUnnestCte)("_find", argsColumns, (0, findDataLoader_1.
|
|
61
|
+
ctes: [(0, unnest_1.buildUnnestCte)("_find", argsColumns, (0, findDataLoader_1.createColumnValuesFromPrepared)(argsColumns, entries))],
|
|
60
62
|
orderBys: [],
|
|
61
63
|
};
|
|
62
|
-
const rows = await em["
|
|
64
|
+
const rows = await em["executePreparedFind"](meta, exports.findCountOperation, query2, findSettings, false);
|
|
63
65
|
// Make an empty array for each batched query, per the dataloader contract
|
|
64
|
-
const results =
|
|
66
|
+
const results = entries.map(() => 0);
|
|
65
67
|
// Then put each row into the tagged query it matched
|
|
66
68
|
for (const row of rows) {
|
|
67
69
|
results[row.tag] = Number(row.count);
|
|
68
70
|
}
|
|
69
71
|
return results;
|
|
70
72
|
},
|
|
71
|
-
// Our filter/order tuple is a complex object, so
|
|
72
|
-
{ cacheKeyFn: findDataLoader_1.whereFilterHash })
|
|
73
|
+
// Our filter/order tuple is a complex object, so use a stable cache key to ensure caching works.
|
|
74
|
+
{ cacheKeyFn: (entry) => (0, findDataLoader_1.whereFilterHash)(entry.filter) })
|
|
75
|
+
.load(prepared);
|
|
73
76
|
}
|
|
74
77
|
//# sourceMappingURL=findCountDataLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findCountDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findCountDataLoader.ts"],"names":[],"mappings":";;;AAkBA,
|
|
1
|
+
{"version":3,"file":"findCountDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findCountDataLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import DataLoader from "dataloader";
|
|
2
1
|
import { Entity } from "../Entity";
|
|
3
2
|
import { FilterAndSettings } from "../EntityFilter";
|
|
4
3
|
import { EntityManager, MaybeAbstractEntityConstructor } from "../EntityManager";
|
|
5
4
|
import { EntityMetadata } from "../EntityMetadata";
|
|
6
5
|
import { ParsedCteClause, ParsedFindQuery } from "../QueryParser";
|
|
7
|
-
import { optimizeCollectionJoins } from "../QueryParser.collectionJoins";
|
|
8
6
|
import { OpColumn } from "../drivers/EntityWriter";
|
|
9
7
|
import { LoadHint } from "../loadHints";
|
|
10
8
|
export declare const findOperation = "find";
|
|
11
|
-
export declare function findDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>, hint: LoadHint<T> | undefined):
|
|
9
|
+
export declare function findDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>, hint: LoadHint<T> | undefined): Promise<T[]>;
|
|
12
10
|
export declare function whereFilterHash(where: FilterAndSettings<any>): any;
|
|
11
|
+
/** Filters pending-delete entities in place to avoid allocating a replacement array for the common find path. */
|
|
12
|
+
export declare function filterDeletedEntities<T extends Entity>(em: EntityManager, entities: T[]): T[];
|
|
13
13
|
/**
|
|
14
14
|
* Recursively finds args in `query` and replaces them with `_find.argX` placeholders.
|
|
15
15
|
*
|
|
@@ -19,7 +19,12 @@ export declare function collectAndReplaceArgs(query: ParsedFindQuery): {
|
|
|
19
19
|
columnName: string;
|
|
20
20
|
dbType: string;
|
|
21
21
|
}[];
|
|
22
|
-
|
|
22
|
+
/** Builds `_find` column values from already prepared queries. */
|
|
23
|
+
export declare function createColumnValuesFromPrepared(columns: OpColumn[], entries: readonly {
|
|
24
|
+
bindings: any[];
|
|
25
|
+
}[]): any[][];
|
|
26
|
+
/** Pushes the arg values of a given query in the cross-query `bindings` array. */
|
|
27
|
+
export declare function collectValues(bindings: any[], query: ParsedFindQuery): void;
|
|
23
28
|
/**
|
|
24
29
|
* Creates a `VALUES (...), (...)` SQL string for use in a CTE, typically for our
|
|
25
30
|
* batch INSERTs/UPDATEs where the CTE is how we inject N rows of data/params into
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"findDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAoB,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAEL,eAAe,EACf,eAAe,EAQhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,eAAO,MAAM,aAAa,SAAS,CAAC;AAUpC,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,GAC5B,OAAO,CAAC,CAAC,EAAE,CAAC,CA2Gd;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,GAAG,CAIlE;AAED,iHAAiH;AACjH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAgB7F;AASD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAiCtG;AAaD,kEAAkE;AAClE,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,CAUpH;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAc3E;AAuHD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACjD,IAAI,EAAE,SAAS,GAAG,EAAE,EAEpB,QAAQ,EAAE,SAAS,GAAG,EAAE,GACvB,eAAe,CAYjB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAUpG"}
|