joist-core 2.3.0-next.2 → 2.3.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/AliasAssigner.d.ts +0 -1
- package/build/Aliases.d.ts +0 -1
- package/build/BaseEntity.d.ts +0 -1
- package/build/ConditionBuilder.d.ts +0 -1
- package/build/ConditionBuilder.js +1 -1
- package/build/ConditionBuilder.js.map +1 -1
- package/build/Entity.d.ts +0 -1
- package/build/EntityFields.d.ts +0 -1
- package/build/EntityFilter.d.ts +0 -1
- package/build/EntityGraphQLFilter.d.ts +0 -1
- package/build/EntityManager.d.ts +3 -3
- package/build/EntityManager.js +298 -115
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.d.ts +22 -3
- package/build/EntityMetadata.js +5 -3
- package/build/EntityMetadata.js.map +1 -1
- package/build/EnumMetadata.d.ts +0 -1
- package/build/FlushLock.d.ts +0 -1
- package/build/HintTree.d.ts +0 -1
- package/build/IndexManager.d.ts +4 -3
- package/build/IndexManager.js +4 -2
- package/build/IndexManager.js.map +1 -1
- package/build/InstanceData.d.ts +8 -8
- package/build/InstanceData.js +57 -25
- package/build/InstanceData.js.map +1 -1
- package/build/IsLoadedCache.d.ts +0 -1
- package/build/JoinRows.d.ts +0 -1
- package/build/PendingChanges.d.ts +0 -1
- package/build/PluginManager.d.ts +0 -1
- package/build/QueryParser.collectionJoins.d.ts +0 -1
- package/build/QueryParser.d.ts +7 -1
- package/build/QueryParser.js +25 -1
- package/build/QueryParser.js.map +1 -1
- package/build/QueryParser.pruning.d.ts +0 -1
- package/build/QueryVisitor.d.ts +0 -1
- package/build/ReactionsManager.d.ts +1 -2
- package/build/ReactionsManager.js +24 -20
- package/build/ReactionsManager.js.map +1 -1
- package/build/Todo.d.ts +1 -2
- package/build/Todo.js +16 -5
- package/build/Todo.js.map +1 -1
- package/build/batchloaders/BatchLoader.d.ts +0 -1
- package/build/batchloaders/enumCollectionBatchLoader.d.ts +0 -1
- package/build/batchloaders/loadBatchLoader.d.ts +0 -1
- package/build/batchloaders/loadBatchLoader.js +1 -1
- package/build/batchloaders/loadBatchLoader.js.map +1 -1
- package/build/batchloaders/manyToManyBatchLoader.d.ts +0 -1
- package/build/batchloaders/oneToManyBatchLoader.d.ts +0 -1
- package/build/batchloaders/oneToOneBatchLoader.d.ts +0 -1
- package/build/batchloaders/populateBatchLoader.d.ts +0 -1
- package/build/batchloaders/populateBatchLoader.js +4 -2
- package/build/batchloaders/populateBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts +0 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.js +3 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts +0 -1
- package/build/batchloaders/recursiveM2mBatchLoader.js +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts +0 -1
- package/build/batchloaders/recursiveParentsBatchLoader.js +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.js.map +1 -1
- package/build/changes.d.ts +0 -1
- package/build/changes.js +4 -1
- package/build/changes.js.map +1 -1
- package/build/config.d.ts +19 -1
- package/build/config.js +36 -23
- package/build/config.js.map +1 -1
- package/build/configure.d.ts +0 -1
- package/build/configure.js +66 -2
- package/build/configure.js.map +1 -1
- package/build/dataloaders/fastWhereFilterHash.d.ts +0 -1
- package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -1
- package/build/dataloaders/findCountDataLoader.d.ts +0 -1
- package/build/dataloaders/findDataLoader.d.ts +0 -1
- package/build/dataloaders/findDataLoader.js +21 -21
- package/build/dataloaders/findDataLoader.js.map +1 -1
- package/build/dataloaders/findIdsDataLoader.d.ts +0 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -1
- package/build/dataloaders/findOrCreateDataLoader.js +2 -2
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/dataloaders/findPaginatedDataLoader.d.ts +0 -1
- package/build/dataloaders/lensDataLoader.d.ts +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -1
- package/build/defaults.d.ts +0 -1
- package/build/driverApi.d.ts +0 -1
- package/build/drivers/Driver.d.ts +0 -1
- package/build/drivers/EntityWriter.d.ts +0 -1
- package/build/drivers/EntityWriter.js +32 -3
- package/build/drivers/EntityWriter.js.map +1 -1
- package/build/drivers/IdAssigner.d.ts +0 -1
- package/build/drivers/buildRawQuery.d.ts +0 -1
- package/build/drivers/buildUtils.d.ts +0 -1
- package/build/drivers/index.d.ts +0 -1
- package/build/fields.d.ts +0 -1
- package/build/fields.js +2 -2
- package/build/fields.js.map +1 -1
- package/build/getProperties.d.ts +3 -4
- package/build/getProperties.js +3 -3
- package/build/getProperties.js.map +1 -1
- package/build/index.d.ts +1 -2
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/json.d.ts +0 -1
- package/build/k.d.ts +0 -1
- package/build/keys.d.ts +7 -7
- package/build/keys.js +102 -46
- package/build/keys.js.map +1 -1
- package/build/keywords.d.ts +0 -1
- package/build/loadHints.d.ts +0 -1
- package/build/loadLens.d.ts +0 -1
- package/build/logging/FactoryLogger.d.ts +0 -1
- package/build/logging/FieldLogger.d.ts +2 -1
- package/build/logging/FieldLogger.js +10 -1
- package/build/logging/FieldLogger.js.map +1 -1
- package/build/logging/ReactionLogger.d.ts +2 -1
- package/build/logging/ReactionLogger.js +15 -1
- package/build/logging/ReactionLogger.js.map +1 -1
- package/build/newEntity.d.ts +2 -3
- package/build/newEntity.js +10 -8
- package/build/newEntity.js.map +1 -1
- package/build/newTestInstance.d.ts +0 -1
- package/build/newTestInstance.js +4 -0
- package/build/newTestInstance.js.map +1 -1
- package/build/normalizeHints.d.ts +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -1
- package/build/plugins/PreloadPlugin.d.ts +0 -1
- package/build/preloading/JsonAggregatePreloader.d.ts +0 -1
- package/build/preloading/JsonAggregatePreloader.js +4 -3
- package/build/preloading/JsonAggregatePreloader.js.map +1 -1
- package/build/preloading/canPreload.d.ts +0 -1
- package/build/preloading/partitionHint.d.ts +0 -1
- package/build/reactiveHints.d.ts +0 -1
- package/build/relations/AbstractPropertyImpl.d.ts +0 -1
- package/build/relations/AbstractRelationImpl.d.ts +0 -1
- package/build/relations/AsyncProperty.d.ts +0 -1
- package/build/relations/AsyncReactiveField.d.ts +13 -9
- package/build/relations/AsyncReactiveField.js +22 -19
- package/build/relations/AsyncReactiveField.js.map +1 -1
- package/build/relations/Collection.d.ts +0 -1
- package/build/relations/CustomCollection.d.ts +0 -1
- package/build/relations/CustomReference.d.ts +0 -1
- package/build/relations/EnumCollection.d.ts +0 -1
- package/build/relations/LargeCollection.d.ts +0 -1
- package/build/relations/LazyField.d.ts +46 -0
- package/build/relations/LazyField.js +133 -0
- package/build/relations/LazyField.js.map +1 -0
- package/build/relations/ManyToManyCollection.d.ts +0 -1
- package/build/relations/ManyToManyCollection.js +5 -3
- package/build/relations/ManyToManyCollection.js.map +1 -1
- package/build/relations/ManyToManyLargeCollection.d.ts +0 -1
- package/build/relations/ManyToOneReference.d.ts +0 -1
- package/build/relations/OneToManyCollection.d.ts +0 -1
- package/build/relations/OneToManyCollection.js +3 -1
- package/build/relations/OneToManyCollection.js.map +1 -1
- package/build/relations/OneToManyLargeCollection.d.ts +0 -1
- package/build/relations/OneToOneReference.d.ts +0 -1
- package/build/relations/OneToOneReference.js +1 -1
- package/build/relations/OneToOneReference.js.map +1 -1
- package/build/relations/PolymorphicReference.d.ts +0 -1
- package/build/relations/ReactiveField.d.ts +0 -1
- package/build/relations/ReactiveGetter.d.ts +0 -1
- package/build/relations/ReactiveManyToMany.d.ts +0 -1
- package/build/relations/ReactiveManyToMany.js +1 -1
- package/build/relations/ReactiveManyToMany.js.map +1 -1
- package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.js +1 -1
- package/build/relations/ReactiveManyToManyOtherSide.js.map +1 -1
- package/build/relations/ReactiveReference.d.ts +0 -1
- package/build/relations/ReactiveReference.js +1 -1
- package/build/relations/ReactiveReference.js.map +1 -1
- package/build/relations/ReadOnlyCollection.d.ts +0 -1
- package/build/relations/RecursiveCollection.d.ts +0 -1
- package/build/relations/RecursiveCycleError.d.ts +0 -1
- package/build/relations/Reference.d.ts +0 -1
- package/build/relations/Relation.d.ts +0 -1
- package/build/relations/hasAsyncMethod.d.ts +0 -1
- package/build/relations/hasManyDerived.d.ts +0 -1
- package/build/relations/hasManyThrough.d.ts +0 -1
- package/build/relations/hasOneDerived.d.ts +0 -1
- package/build/relations/hasOneThrough.d.ts +0 -1
- package/build/relations/hasProperty.d.ts +0 -1
- package/build/relations/index.d.ts +1 -1
- package/build/relations/index.js +7 -2
- package/build/relations/index.js.map +1 -1
- package/build/resurrection.d.ts +0 -1
- package/build/rules.d.ts +8 -1
- package/build/rules.js +17 -0
- package/build/rules.js.map +1 -1
- package/build/runtimeConfig.d.ts +4 -1
- package/build/runtimeConfig.js +5 -0
- package/build/runtimeConfig.js.map +1 -1
- package/build/scopes.d.ts +0 -1
- package/build/serde.d.ts +0 -1
- package/build/serde.js +9 -7
- package/build/serde.js.map +1 -1
- package/build/temporal.d.ts +0 -1
- package/build/temporalMappers.d.ts +0 -1
- package/build/trusted.d.ts +0 -1
- package/build/typeMap.d.ts +0 -1
- package/build/unnest.d.ts +0 -1
- package/build/upsert.d.ts +0 -1
- package/build/utils.d.ts +2 -1
- package/build/utils.js +7 -0
- package/build/utils.js.map +1 -1
- package/build/withLoaded.d.ts +0 -1
- package/package.json +2 -2
- package/build/AliasAssigner.d.ts.map +0 -1
- package/build/Aliases.d.ts.map +0 -1
- package/build/BaseEntity.d.ts.map +0 -1
- package/build/ConditionBuilder.d.ts.map +0 -1
- package/build/Entity.d.ts.map +0 -1
- package/build/EntityFields.d.ts.map +0 -1
- package/build/EntityFilter.d.ts.map +0 -1
- package/build/EntityGraphQLFilter.d.ts.map +0 -1
- package/build/EntityManager.d.ts.map +0 -1
- package/build/EntityMetadata.d.ts.map +0 -1
- package/build/EnumMetadata.d.ts.map +0 -1
- package/build/FlushLock.d.ts.map +0 -1
- package/build/HintTree.d.ts.map +0 -1
- package/build/IndexManager.d.ts.map +0 -1
- package/build/InstanceData.d.ts.map +0 -1
- package/build/IsLoadedCache.d.ts.map +0 -1
- package/build/JoinRows.d.ts.map +0 -1
- package/build/PendingChanges.d.ts.map +0 -1
- package/build/PluginManager.d.ts.map +0 -1
- package/build/QueryParser.collectionJoins.d.ts.map +0 -1
- package/build/QueryParser.collectionJoins.test.d.ts +0 -2
- package/build/QueryParser.collectionJoins.test.d.ts.map +0 -1
- package/build/QueryParser.collectionJoins.test.js +0 -772
- package/build/QueryParser.collectionJoins.test.js.map +0 -1
- package/build/QueryParser.d.ts.map +0 -1
- package/build/QueryParser.pruning.d.ts.map +0 -1
- package/build/QueryParser.pruning.test.d.ts +0 -2
- package/build/QueryParser.pruning.test.d.ts.map +0 -1
- package/build/QueryParser.pruning.test.js +0 -106
- package/build/QueryParser.pruning.test.js.map +0 -1
- package/build/QueryParser.test.d.ts +0 -2
- package/build/QueryParser.test.d.ts.map +0 -1
- package/build/QueryParser.test.js +0 -27
- package/build/QueryParser.test.js.map +0 -1
- package/build/QueryVisitor.d.ts.map +0 -1
- package/build/ReactionsManager.d.ts.map +0 -1
- package/build/Todo.d.ts.map +0 -1
- package/build/batchloaders/BatchLoader.d.ts.map +0 -1
- package/build/batchloaders/enumCollectionBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/loadBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/manyToManyBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/oneToManyBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/oneToOneBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/populateBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +0 -1
- package/build/batchloaders/recursiveParentsBatchLoader.d.ts.map +0 -1
- package/build/changes.d.ts.map +0 -1
- package/build/config.d.ts.map +0 -1
- package/build/config.test.d.ts +0 -2
- package/build/config.test.d.ts.map +0 -1
- package/build/config.test.js +0 -53
- package/build/config.test.js.map +0 -1
- package/build/configure.d.ts.map +0 -1
- package/build/dataloaders/fastWhereFilterHash.d.ts.map +0 -1
- package/build/dataloaders/fastWhereFilterHash.test.d.ts +0 -2
- package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +0 -1
- package/build/dataloaders/fastWhereFilterHash.test.js +0 -59
- package/build/dataloaders/fastWhereFilterHash.test.js.map +0 -1
- package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
- package/build/dataloaders/findPaginatedDataLoader.d.ts.map +0 -1
- package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
- package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
- package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
- package/build/defaults.d.ts.map +0 -1
- package/build/driverApi.d.ts.map +0 -1
- package/build/drivers/Driver.d.ts.map +0 -1
- package/build/drivers/EntityWriter.d.ts.map +0 -1
- package/build/drivers/IdAssigner.d.ts.map +0 -1
- package/build/drivers/buildRawQuery.d.ts.map +0 -1
- package/build/drivers/buildUtils.d.ts.map +0 -1
- package/build/drivers/index.d.ts.map +0 -1
- package/build/fields.d.ts.map +0 -1
- package/build/getProperties.d.ts.map +0 -1
- package/build/index.d.ts.map +0 -1
- package/build/json.d.ts.map +0 -1
- package/build/k.d.ts.map +0 -1
- package/build/keys.d.ts.map +0 -1
- package/build/keywords.d.ts.map +0 -1
- package/build/loadHints.d.ts.map +0 -1
- package/build/loadLens.d.ts.map +0 -1
- package/build/logging/FactoryLogger.d.ts.map +0 -1
- package/build/logging/FieldLogger.d.ts.map +0 -1
- package/build/logging/ReactionLogger.d.ts.map +0 -1
- package/build/newEntity.d.ts.map +0 -1
- package/build/newTestInstance.d.ts.map +0 -1
- package/build/normalizeHints.d.ts.map +0 -1
- package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
- package/build/plugins/PreloadPlugin.d.ts.map +0 -1
- package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
- package/build/preloading/canPreload.d.ts.map +0 -1
- package/build/preloading/partitionHint.d.ts.map +0 -1
- package/build/reactiveHints.d.ts.map +0 -1
- package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
- package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
- package/build/relations/AsyncProperty.d.ts.map +0 -1
- package/build/relations/AsyncReactiveField.d.ts.map +0 -1
- package/build/relations/Collection.d.ts.map +0 -1
- package/build/relations/CustomCollection.d.ts.map +0 -1
- package/build/relations/CustomReference.d.ts.map +0 -1
- package/build/relations/EnumCollection.d.ts.map +0 -1
- package/build/relations/LargeCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyCollection.d.ts.map +0 -1
- package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/ManyToOneReference.d.ts.map +0 -1
- package/build/relations/OneToManyCollection.d.ts.map +0 -1
- package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
- package/build/relations/OneToOneReference.d.ts.map +0 -1
- package/build/relations/PolymorphicReference.d.ts.map +0 -1
- package/build/relations/ReactiveField.d.ts.map +0 -1
- package/build/relations/ReactiveGetter.d.ts.map +0 -1
- package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
- package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
- package/build/relations/ReactiveReference.d.ts.map +0 -1
- package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
- package/build/relations/RecursiveCollection.d.ts.map +0 -1
- package/build/relations/RecursiveCycleError.d.ts.map +0 -1
- package/build/relations/Reference.d.ts.map +0 -1
- package/build/relations/Relation.d.ts.map +0 -1
- package/build/relations/hasAsyncMethod.d.ts.map +0 -1
- package/build/relations/hasManyDerived.d.ts.map +0 -1
- package/build/relations/hasManyThrough.d.ts.map +0 -1
- package/build/relations/hasOneDerived.d.ts.map +0 -1
- package/build/relations/hasOneThrough.d.ts.map +0 -1
- package/build/relations/hasProperty.d.ts.map +0 -1
- package/build/relations/index.d.ts.map +0 -1
- package/build/resurrection.d.ts.map +0 -1
- package/build/rules.d.ts.map +0 -1
- package/build/runtimeConfig.d.ts.map +0 -1
- package/build/scopes.d.ts.map +0 -1
- package/build/serde.d.ts.map +0 -1
- package/build/temporal.d.ts.map +0 -1
- package/build/temporalMappers.d.ts.map +0 -1
- package/build/trusted.d.ts.map +0 -1
- package/build/typeMap.d.ts.map +0 -1
- package/build/unnest.d.ts.map +0 -1
- package/build/upsert.d.ts.map +0 -1
- package/build/utils.d.ts.map +0 -1
- package/build/withLoaded.d.ts.map +0 -1
package/build/keys.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setTaggedIdDelimiter = setTaggedIdDelimiter;
|
|
3
4
|
exports.toIdOf = toIdOf;
|
|
4
5
|
exports.maybeResolveReferenceToId = maybeResolveReferenceToId;
|
|
5
6
|
exports.keyToNumber = keyToNumber;
|
|
@@ -19,7 +20,11 @@ const BaseEntity_1 = require("./BaseEntity");
|
|
|
19
20
|
const Entity_1 = require("./Entity");
|
|
20
21
|
const EntityMetadata_1 = require("./EntityMetadata");
|
|
21
22
|
const utils_1 = require("./utils");
|
|
22
|
-
|
|
23
|
+
let tagDelimiter = ":";
|
|
24
|
+
/** Sets the process-wide tagged-id format during metadata boot. */
|
|
25
|
+
function setTaggedIdDelimiter(delimiter) {
|
|
26
|
+
tagDelimiter = delimiter;
|
|
27
|
+
}
|
|
23
28
|
/** Converts our internal/always-tagged `id` to the domain entity's `id` type (could be a number or uuid). */
|
|
24
29
|
function toIdOf(meta, id) {
|
|
25
30
|
if (!id)
|
|
@@ -48,27 +53,32 @@ function keyToNumber(meta, value) {
|
|
|
48
53
|
return value;
|
|
49
54
|
}
|
|
50
55
|
else if (typeof value === "string") {
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
if (tagDelimiter === undefined) {
|
|
57
|
+
const id = value.startsWith(meta.tagName) ? value.slice(meta.tagName.length) : value;
|
|
58
|
+
return maybeNumberUnlessUuid(meta, id);
|
|
59
|
+
}
|
|
60
|
+
const delimiterIndex = value.indexOf(tagDelimiter);
|
|
61
|
+
if (delimiterIndex === -1) {
|
|
53
62
|
return maybeNumberUnlessUuid(meta, value);
|
|
54
63
|
}
|
|
64
|
+
const tag = value.slice(0, delimiterIndex);
|
|
55
65
|
if (tag !== meta.tagName) {
|
|
56
66
|
throw new Error(`Invalid tagged id, expected tag ${meta.tagName}, got ${value}`);
|
|
57
67
|
}
|
|
58
|
-
return maybeNumberUnlessUuid(meta,
|
|
68
|
+
return maybeNumberUnlessUuid(meta, value.slice(delimiterIndex + tagDelimiter.length));
|
|
59
69
|
}
|
|
60
70
|
else {
|
|
61
71
|
throw new Error(`Invalid key ${value}`);
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
|
-
//
|
|
74
|
+
// UUIDs, text, and bigints are strings at the database boundary, so lie to the type system and pretend they're numbers.
|
|
65
75
|
function maybeNumberUnlessUuid(meta, key) {
|
|
66
76
|
switch (meta.idDbType) {
|
|
77
|
+
case "bigint":
|
|
67
78
|
case "uuid":
|
|
68
79
|
case "text":
|
|
69
80
|
return key;
|
|
70
81
|
case "int":
|
|
71
|
-
case "bigint":
|
|
72
82
|
return Number(key);
|
|
73
83
|
default:
|
|
74
84
|
(0, utils_1.assertNever)(meta.idDbType);
|
|
@@ -76,43 +86,32 @@ function maybeNumberUnlessUuid(meta, key) {
|
|
|
76
86
|
}
|
|
77
87
|
/** Converts `dbValue` (big int, int, uuid) to a tagged string, unless its undefined. */
|
|
78
88
|
function keyToTaggedId(meta, dbValue) {
|
|
79
|
-
|
|
89
|
+
if (dbValue === undefined || dbValue === null)
|
|
90
|
+
return undefined;
|
|
91
|
+
return `${meta.tagName}${tagDelimiter ?? ""}${dbValue}`;
|
|
80
92
|
}
|
|
81
|
-
/** Fails if any keys are
|
|
93
|
+
/** Fails if any keys are untagged; internal batch-loader keys must always be tagged. */
|
|
82
94
|
function assertIdsAreTagged(keys) {
|
|
83
95
|
for (const key of keys) {
|
|
84
|
-
|
|
96
|
+
const isTagged = tagDelimiter === undefined ? validSlugId.test(key) : key.indexOf(tagDelimiter) !== -1;
|
|
97
|
+
if (!isTagged)
|
|
85
98
|
throw new Error(`Key ${key} is missing a tag`);
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
|
-
|
|
89
|
-
const validId = /[a-z]+:([0-9a-z\-]+)/;
|
|
90
|
-
// Not super strict to allow uuid-ish ides
|
|
101
|
+
const validSlugId = /^([a-z]+)(\d+)$/i;
|
|
91
102
|
const uuidIshId = /[0-9a-z\-]+/i;
|
|
92
103
|
function isTaggedId(metaOrId, id) {
|
|
93
104
|
if (typeof metaOrId === "number") {
|
|
105
|
+
// number overload
|
|
94
106
|
return false;
|
|
95
107
|
}
|
|
96
108
|
else if (typeof metaOrId === "string") {
|
|
97
|
-
|
|
109
|
+
// string overload
|
|
110
|
+
return tagDelimiter === undefined ? validSlugId.test(metaOrId) : hasTagDelimiter(metaOrId);
|
|
98
111
|
}
|
|
99
112
|
else {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return false;
|
|
103
|
-
// With meta available, we can do more strict number or uuid checking
|
|
104
|
-
if (metaOrId.idDbType === "int" || metaOrId.idDbType === "bigint") {
|
|
105
|
-
return !Number.isNaN(Number(_id));
|
|
106
|
-
}
|
|
107
|
-
else if (metaOrId.idDbType === "uuid") {
|
|
108
|
-
return uuidIshId.test(_id);
|
|
109
|
-
}
|
|
110
|
-
else if (metaOrId.idDbType === "text") {
|
|
111
|
-
return true; // We should ask the IdAssigner what it thinks?
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return (0, utils_1.assertNever)(metaOrId.idDbType);
|
|
115
|
-
}
|
|
113
|
+
// meta + string overload
|
|
114
|
+
return isTaggedIdForMeta(metaOrId, id);
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
117
|
function assertIdIsTagged(id) {
|
|
@@ -122,18 +121,28 @@ function assertIdIsTagged(id) {
|
|
|
122
121
|
}
|
|
123
122
|
function toTaggedId(meta, id) {
|
|
124
123
|
if (typeof id === "number") {
|
|
125
|
-
return `${meta.tagName}${tagDelimiter}${id}`;
|
|
124
|
+
return `${meta.tagName}${tagDelimiter ?? ""}${id}`;
|
|
126
125
|
}
|
|
127
126
|
else if (typeof id === "string") {
|
|
128
127
|
// This seems odd, but is covered by a unit test, so I guess we need it?
|
|
129
128
|
if (id === "")
|
|
130
129
|
return undefined;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
if (tagDelimiter === undefined) {
|
|
131
|
+
const tag = validSlugId.exec(id)?.[1];
|
|
132
|
+
if (tag && tag !== meta.tagName) {
|
|
133
|
+
throw new Error(`Invalid tagged id, expected tag ${meta.tagName}, got ${id}`);
|
|
134
|
+
}
|
|
135
|
+
return tag ? id : `${meta.tagName}${id}`;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const i = id.indexOf(tagDelimiter);
|
|
139
|
+
if (i === -1)
|
|
140
|
+
return `${meta.tagName}${tagDelimiter}${id}`;
|
|
141
|
+
const tag = id.slice(0, i);
|
|
142
|
+
if (tag !== meta.tagName) {
|
|
143
|
+
throw new Error(`Invalid tagged id, expected tag ${meta.tagName}, got ${id}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
137
146
|
}
|
|
138
147
|
return id;
|
|
139
148
|
}
|
|
@@ -142,13 +151,21 @@ function ensureTagged(meta, value) {
|
|
|
142
151
|
return (0, Entity_1.isEntity)(value) ? value : toTaggedId(meta, value);
|
|
143
152
|
}
|
|
144
153
|
function tagId(metaOrCstr, id) {
|
|
145
|
-
const
|
|
154
|
+
const meta = metadata(metaOrCstr);
|
|
155
|
+
const tag = meta.tagName;
|
|
146
156
|
if (typeof id === "number") {
|
|
147
|
-
return `${tag}${tagDelimiter}${id}`;
|
|
157
|
+
return `${tag}${tagDelimiter ?? ""}${id}`;
|
|
148
158
|
}
|
|
149
159
|
if (id === null || id === undefined) {
|
|
150
160
|
return undefined;
|
|
151
161
|
}
|
|
162
|
+
if (tagDelimiter === undefined) {
|
|
163
|
+
const existingTag = validSlugId.exec(id)?.[1];
|
|
164
|
+
if (existingTag && existingTag !== tag) {
|
|
165
|
+
throw new Error(`Invalid tagged id, expected tag ${tag}, got ${id}`);
|
|
166
|
+
}
|
|
167
|
+
return existingTag ? id : `${tag}${id}`;
|
|
168
|
+
}
|
|
152
169
|
// Avoid using includes/split, for a faster indexOf + length + startsWith
|
|
153
170
|
const delimiterIndex = id.indexOf(tagDelimiter);
|
|
154
171
|
if (delimiterIndex !== -1) {
|
|
@@ -178,20 +195,59 @@ function deTagIds(meta, keys) {
|
|
|
178
195
|
function unsafeDeTagIds(keys) {
|
|
179
196
|
const deTagged = Array(keys.length);
|
|
180
197
|
for (let i = 0; i < keys.length; i++) {
|
|
181
|
-
|
|
182
|
-
|
|
198
|
+
if (tagDelimiter === undefined) {
|
|
199
|
+
deTagged[i] = validSlugId.exec(keys[i])?.[2];
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
const delimiterIndex = keys[i].indexOf(tagDelimiter);
|
|
203
|
+
deTagged[i] = delimiterIndex === -1 ? undefined : keys[i].slice(delimiterIndex + tagDelimiter.length);
|
|
204
|
+
}
|
|
183
205
|
}
|
|
184
206
|
return deTagged;
|
|
185
207
|
}
|
|
186
208
|
/** Given a tagged id, returns its tag. */
|
|
187
209
|
function tagFromId(id) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
(0, utils_1.fail)(`Unknown tagged id format: "${id}"`);
|
|
210
|
+
if (tagDelimiter === undefined) {
|
|
211
|
+
return validSlugId.exec(id)?.[1] ?? (0, utils_1.fail)(`Unknown tagged id format: "${id}"`);
|
|
191
212
|
}
|
|
192
|
-
|
|
213
|
+
const delimiterIndex = id.indexOf(tagDelimiter);
|
|
214
|
+
return delimiterIndex > 0 && delimiterIndex + tagDelimiter.length < id.length
|
|
215
|
+
? id.slice(0, delimiterIndex)
|
|
216
|
+
: (0, utils_1.fail)(`Unknown tagged id format: "${id}"`);
|
|
217
|
+
}
|
|
218
|
+
/** Returns the metadata needed to format an id. */
|
|
219
|
+
function metadata(metaOrCstr) {
|
|
220
|
+
return typeof metaOrCstr === "function" ? (0, EntityMetadata_1.getMetadata)(metaOrCstr) : metaOrCstr;
|
|
193
221
|
}
|
|
194
|
-
|
|
195
|
-
|
|
222
|
+
/** Returns whether `id` has the tag and database id shape required by `meta`. */
|
|
223
|
+
function isTaggedIdForMeta(meta, id) {
|
|
224
|
+
if (tagDelimiter === undefined) {
|
|
225
|
+
return validSlugId.exec(id)?.[1] === meta.tagName;
|
|
226
|
+
}
|
|
227
|
+
const delimiterIndex = id.indexOf(tagDelimiter);
|
|
228
|
+
if (delimiterIndex === -1)
|
|
229
|
+
return false;
|
|
230
|
+
const tag = id.slice(0, delimiterIndex);
|
|
231
|
+
const untaggedId = id.slice(delimiterIndex + tagDelimiter.length);
|
|
232
|
+
if (meta.tagName !== tag)
|
|
233
|
+
return false;
|
|
234
|
+
switch (meta.idDbType) {
|
|
235
|
+
case "int":
|
|
236
|
+
case "bigint":
|
|
237
|
+
return !Number.isNaN(Number(untaggedId));
|
|
238
|
+
case "uuid":
|
|
239
|
+
return uuidIshId.test(untaggedId);
|
|
240
|
+
case "text":
|
|
241
|
+
return true;
|
|
242
|
+
default:
|
|
243
|
+
return (0, utils_1.assertNever)(meta.idDbType);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/** Returns whether `id` has a non-empty tag and value separated by the configured delimiter. */
|
|
247
|
+
function hasTagDelimiter(id) {
|
|
248
|
+
if (tagDelimiter === undefined)
|
|
249
|
+
return false;
|
|
250
|
+
const delimiterIndex = id.indexOf(tagDelimiter);
|
|
251
|
+
return delimiterIndex > 0 && delimiterIndex + tagDelimiter.length < id.length;
|
|
196
252
|
}
|
|
197
253
|
//# sourceMappingURL=keys.js.map
|
package/build/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
|
package/build/keywords.d.ts
CHANGED
package/build/loadHints.d.ts
CHANGED
package/build/loadLens.d.ts
CHANGED
|
@@ -74,4 +74,3 @@ export declare function lensPathToLoadHint<T extends Entity>(paths: string[]): L
|
|
|
74
74
|
/** Accepts a lens like `a => a.books.reviews` and returns the paths like `[books, reviews]`. */
|
|
75
75
|
export declare function lensToPath<T extends Entity, U, V>(fn: (lens: Lens<T>) => Lens<U, V>): string[];
|
|
76
76
|
export {};
|
|
77
|
-
//# sourceMappingURL=loadLens.d.ts.map
|
|
@@ -24,4 +24,5 @@ export declare class FieldLogger {
|
|
|
24
24
|
private shouldLog;
|
|
25
25
|
private getColor;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
/** A shared no-op logger that avoids optional chaining in hot field access paths. */
|
|
28
|
+
export declare const noopFieldLogger: FieldLogger;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.FieldLogger = void 0;
|
|
6
|
+
exports.noopFieldLogger = exports.FieldLogger = void 0;
|
|
7
7
|
const ansis_1 = __importDefault(require("ansis"));
|
|
8
8
|
const Entity_1 = require("../Entity");
|
|
9
9
|
const config_1 = require("../config");
|
|
@@ -66,4 +66,13 @@ class FieldLogger {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
exports.FieldLogger = FieldLogger;
|
|
69
|
+
class NoopFieldLogger extends FieldLogger {
|
|
70
|
+
constructor() {
|
|
71
|
+
super([]);
|
|
72
|
+
}
|
|
73
|
+
logCreate(entity) { }
|
|
74
|
+
logSet(entity, fieldName, value) { }
|
|
75
|
+
}
|
|
76
|
+
/** A shared no-op logger that avoids optional chaining in hot field access paths. */
|
|
77
|
+
exports.noopFieldLogger = new NoopFieldLogger();
|
|
69
78
|
//# sourceMappingURL=FieldLogger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldLogger.js","sourceRoot":"","sources":["../../src/logging/FieldLogger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FieldLogger.js","sourceRoot":"","sources":["../../src/logging/FieldLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,5 +23,6 @@ export declare class ReactionLogger {
|
|
|
23
23
|
}
|
|
24
24
|
export declare function setReactionLogging(enabled: boolean): void;
|
|
25
25
|
export declare function setReactionLogging(logger: ReactionLogger): void;
|
|
26
|
+
/** A shared no-op logger that avoids optional chaining in hot reaction paths. */
|
|
27
|
+
export declare const noopReactionLogger: ReactionLogger;
|
|
26
28
|
export {};
|
|
27
|
-
//# sourceMappingURL=ReactionLogger.d.ts.map
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ReactionLogger = exports.globalLogger = void 0;
|
|
6
|
+
exports.noopReactionLogger = exports.ReactionLogger = exports.globalLogger = void 0;
|
|
7
7
|
exports.setReactionLogging = setReactionLogging;
|
|
8
8
|
const ansis_1 = __importDefault(require("ansis"));
|
|
9
9
|
const utils_1 = require("../utils");
|
|
@@ -69,4 +69,18 @@ function setReactionLogging(arg) {
|
|
|
69
69
|
function maybeDotPath(r) {
|
|
70
70
|
return r.path.length > 0 ? `.${r.path.join(".")}.` : ".";
|
|
71
71
|
}
|
|
72
|
+
class NoopReactionLogger extends ReactionLogger {
|
|
73
|
+
now() {
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
logQueued(entity, fieldName, r) { }
|
|
77
|
+
logQueuedAll(entity, reason, r) { }
|
|
78
|
+
logStartingRecalc(em, kind) { }
|
|
79
|
+
logStartingValidate(em, todos) { }
|
|
80
|
+
logWalked(todo, r, entities, action) { }
|
|
81
|
+
logLoadingStart(em, actions) { }
|
|
82
|
+
logLoadingEnd(em, millis) { }
|
|
83
|
+
}
|
|
84
|
+
/** A shared no-op logger that avoids optional chaining in hot reaction paths. */
|
|
85
|
+
exports.noopReactionLogger = new NoopReactionLogger();
|
|
72
86
|
//# sourceMappingURL=ReactionLogger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionLogger.js","sourceRoot":"","sources":["../../src/logging/ReactionLogger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReactionLogger.js","sourceRoot":"","sources":["../../src/logging/ReactionLogger.ts"],"names":[],"mappings":"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"}
|
package/build/newEntity.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare function newEntity<T extends Entity>(em: EntityManager, cstr: Ent
|
|
|
17
17
|
* We need TypeScript to still see `books = hasMany(...)` as being typed as `Many<Book>`,
|
|
18
18
|
* so this method's return type is `R` i.e. the `Many<Book>` relation type.
|
|
19
19
|
*
|
|
20
|
-
* But at runtime we actually want this to be a `
|
|
20
|
+
* But at runtime we actually want this to be a `LazyRelation` that can be rewritten
|
|
21
21
|
* into a getter, and only invoked when the relation is actually accessed.
|
|
22
22
|
*/
|
|
23
23
|
export declare function lazyField<T extends Entity, R>(fn: (entity: T, fieldName: string) => R): R;
|
|
@@ -36,10 +36,9 @@ export declare function lazyField<T extends Entity, R>(fn: (entity: T, fieldName
|
|
|
36
36
|
*/
|
|
37
37
|
export declare function resolveOtherMeta(entity: Entity, fieldName: string): EntityMetadata;
|
|
38
38
|
/** Wraps `has...` relation constructors in an easily-identifiable container. */
|
|
39
|
-
export declare class
|
|
39
|
+
export declare class LazyRelation<T extends Entity> {
|
|
40
40
|
#private;
|
|
41
41
|
constructor(fn: (entity: T, fieldName: string) => any);
|
|
42
42
|
/** Called by our getters to lazily create the relation on first access. */
|
|
43
43
|
create(entity: T, fieldName: string): any;
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=newEntity.d.ts.map
|
package/build/newEntity.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.LazyRelation = void 0;
|
|
4
4
|
exports.newEntity = newEntity;
|
|
5
5
|
exports.lazyField = lazyField;
|
|
6
6
|
exports.resolveOtherMeta = resolveOtherMeta;
|
|
@@ -37,10 +37,10 @@ function newEntity(em, cstr, isNew) {
|
|
|
37
37
|
function moveRelationsToGetters(cstr) {
|
|
38
38
|
let transientFieldsValue = {};
|
|
39
39
|
for (const [fieldName, value] of (0, getProperties_1.getLazyFields)((0, EntityMetadata_1.getMetadata)(cstr))) {
|
|
40
|
-
if (value instanceof
|
|
40
|
+
if (value instanceof LazyRelation) {
|
|
41
41
|
Object.defineProperty(cstr.prototype, fieldName, {
|
|
42
42
|
get() {
|
|
43
|
-
return (this.__data.relations[fieldName] ??= value.create(this, fieldName));
|
|
43
|
+
return ((this.__data.relations ??= {})[fieldName] ??= value.create(this, fieldName));
|
|
44
44
|
},
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -49,6 +49,8 @@ function moveRelationsToGetters(cstr) {
|
|
|
49
49
|
transientFieldsValue = value;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
// Most entities have no transientFields, so skip the structuredClone for the empty default
|
|
53
|
+
const needsClone = (0, utils_1.hasAnyKey)(transientFieldsValue);
|
|
52
54
|
Object.defineProperty(cstr.prototype, "transientFields", {
|
|
53
55
|
get() {
|
|
54
56
|
// This prototype-level `get` will only ever be called once per instance, b/c when we're
|
|
@@ -57,7 +59,7 @@ function moveRelationsToGetters(cstr) {
|
|
|
57
59
|
//
|
|
58
60
|
// This has the pleasant upshot of making the instance-level `transientFields` lazy, and
|
|
59
61
|
// they will not be created on an instance until they're actually asked for.
|
|
60
|
-
const copy = structuredClone(transientFieldsValue);
|
|
62
|
+
const copy = needsClone ? structuredClone(transientFieldsValue) : {};
|
|
61
63
|
Object.defineProperty(this, "transientFields", { value: copy });
|
|
62
64
|
return copy;
|
|
63
65
|
},
|
|
@@ -69,11 +71,11 @@ function moveRelationsToGetters(cstr) {
|
|
|
69
71
|
* We need TypeScript to still see `books = hasMany(...)` as being typed as `Many<Book>`,
|
|
70
72
|
* so this method's return type is `R` i.e. the `Many<Book>` relation type.
|
|
71
73
|
*
|
|
72
|
-
* But at runtime we actually want this to be a `
|
|
74
|
+
* But at runtime we actually want this to be a `LazyRelation` that can be rewritten
|
|
73
75
|
* into a getter, and only invoked when the relation is actually accessed.
|
|
74
76
|
*/
|
|
75
77
|
function lazyField(fn) {
|
|
76
|
-
return new
|
|
78
|
+
return new LazyRelation(fn);
|
|
77
79
|
}
|
|
78
80
|
/**
|
|
79
81
|
* Easily resolves `otherMetadata` fields for lazy relations.
|
|
@@ -94,7 +96,7 @@ function resolveOtherMeta(entity, fieldName) {
|
|
|
94
96
|
return field.otherMetadata();
|
|
95
97
|
}
|
|
96
98
|
/** Wraps `has...` relation constructors in an easily-identifiable container. */
|
|
97
|
-
class
|
|
99
|
+
class LazyRelation {
|
|
98
100
|
#fn;
|
|
99
101
|
constructor(fn) {
|
|
100
102
|
this.#fn = fn;
|
|
@@ -104,5 +106,5 @@ class LazyField {
|
|
|
104
106
|
return this.#fn(entity, fieldName);
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
|
-
exports.
|
|
109
|
+
exports.LazyRelation = LazyRelation;
|
|
108
110
|
//# sourceMappingURL=newEntity.js.map
|
package/build/newEntity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newEntity.js","sourceRoot":"","sources":["../src/newEntity.ts"],"names":[],"mappings":";;;AAmBA,8BAaC;
|
|
1
|
+
{"version":3,"file":"newEntity.js","sourceRoot":"","sources":["../src/newEntity.ts"],"names":[],"mappings":"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"}
|
package/build/newTestInstance.js
CHANGED
|
@@ -611,6 +611,10 @@ function defaultValueForField(em, cstr, field) {
|
|
|
611
611
|
else if (field.type === "boolean") {
|
|
612
612
|
return false;
|
|
613
613
|
}
|
|
614
|
+
else if (field.type === "Object") {
|
|
615
|
+
// A required jsonb column, i.e. so factories can satisfy a required (possibly `lazy`) column.
|
|
616
|
+
return {};
|
|
617
|
+
}
|
|
614
618
|
else if (Temporal) {
|
|
615
619
|
if (field.type === Temporal.PlainDate) {
|
|
616
620
|
return exports.testPlainDate;
|