joist-core 2.4.0-next.17 → 2.4.0-next.18
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/EntityManager.cjs +24 -10
- package/build/EntityManager.cjs.map +1 -1
- package/build/EntityManager.d.cts +8 -1
- package/build/EntityManager.d.cts.map +1 -1
- package/build/EntityManager.d.mts +8 -1
- package/build/EntityManager.d.mts.map +1 -1
- package/build/EntityManager.js +23 -11
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.cjs +0 -1
- package/build/EntityMetadata.cjs.map +1 -1
- package/build/EntityMetadata.d.cts +8 -4
- package/build/EntityMetadata.d.cts.map +1 -1
- package/build/EntityMetadata.d.mts +8 -4
- package/build/EntityMetadata.d.mts.map +1 -1
- package/build/EntityMetadata.js +0 -1
- package/build/EntityMetadata.js.map +1 -1
- package/build/batchloaders/populateBatchLoader.cjs +2 -2
- package/build/batchloaders/populateBatchLoader.js +2 -2
- package/build/batchloaders/recursiveChildrenBatchLoader.cjs +1 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.js +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.cjs +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.js +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.cjs +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.js +1 -1
- package/build/config.cjs +74 -1
- package/build/config.cjs.map +1 -1
- package/build/config.d.cts +83 -2
- package/build/config.d.cts.map +1 -1
- package/build/config.d.mts +83 -2
- package/build/config.d.mts.map +1 -1
- package/build/config.js +74 -1
- package/build/config.js.map +1 -1
- package/build/configure.cjs +6 -2
- package/build/configure.cjs.map +1 -1
- package/build/configure.d.cts.map +1 -1
- package/build/configure.d.mts.map +1 -1
- package/build/configure.js +6 -2
- package/build/configure.js.map +1 -1
- package/build/dataloaders/findDataLoader.cjs +1 -1
- package/build/dataloaders/findDataLoader.js +1 -1
- package/build/dataloaders/findPaginatedDataLoader.cjs +1 -1
- package/build/dataloaders/findPaginatedDataLoader.js +1 -1
- package/build/defaults.cjs +2 -2
- package/build/defaults.js +2 -2
- package/build/fields.cjs +1 -0
- package/build/fields.cjs.map +1 -1
- package/build/fields.d.cts.map +1 -1
- package/build/fields.d.mts.map +1 -1
- package/build/fields.js +1 -0
- package/build/fields.js.map +1 -1
- package/build/index.cjs +13 -8
- package/build/index.cjs.map +1 -1
- package/build/index.d.cts +3 -2
- package/build/index.d.cts.map +1 -1
- package/build/index.d.mts +3 -2
- package/build/index.d.mts.map +1 -1
- package/build/index.js +13 -10
- package/build/index.js.map +1 -1
- package/build/json.cjs +3 -3
- package/build/json.js +3 -3
- package/build/loading/loadHints.cjs +1 -1
- package/build/loading/loadHints.js +1 -1
- package/build/loading/withLoaded.cjs +2 -2
- package/build/loading/withLoaded.js +2 -2
- package/build/newTestInstance.cjs +1 -0
- package/build/newTestInstance.cjs.map +1 -1
- package/build/newTestInstance.d.cts.map +1 -1
- package/build/newTestInstance.d.mts.map +1 -1
- package/build/newTestInstance.js +1 -0
- package/build/newTestInstance.js.map +1 -1
- package/build/preloading/partitionHint.cjs +1 -1
- package/build/preloading/partitionHint.js +1 -1
- package/build/reactivity/ReactionsManager.cjs +168 -2
- package/build/reactivity/ReactionsManager.cjs.map +1 -1
- package/build/reactivity/ReactionsManager.d.cts +54 -1
- package/build/reactivity/ReactionsManager.d.cts.map +1 -1
- package/build/reactivity/ReactionsManager.d.mts +54 -1
- package/build/reactivity/ReactionsManager.d.mts.map +1 -1
- package/build/reactivity/ReactionsManager.js +169 -3
- package/build/reactivity/ReactionsManager.js.map +1 -1
- package/build/reactivity/reactiveHints.cjs +2 -2
- package/build/reactivity/reactiveHints.js +2 -2
- package/build/relations/AsyncReactiveField.cjs +3 -3
- package/build/relations/AsyncReactiveField.js +3 -3
- package/build/relations/ReactiveField.cjs +2 -2
- package/build/relations/ReactiveField.js +2 -2
- package/build/relations/ReactiveManyToMany.cjs +1 -1
- package/build/relations/ReactiveManyToMany.js +1 -1
- package/build/relations/ReactiveReference.cjs +1 -1
- package/build/relations/ReactiveReference.js +1 -1
- package/build/relations/RecursiveCollection.cjs +3 -3
- package/build/relations/RecursiveCollection.js +3 -3
- package/build/relations/hasProperty.cjs +2 -2
- package/build/relations/hasProperty.js +2 -2
- package/build/relations/index.cjs +5 -5
- package/build/relations/index.js +5 -5
- package/build/transitions.cjs +89 -0
- package/build/transitions.cjs.map +1 -0
- package/build/transitions.d.cts +110 -0
- package/build/transitions.d.cts.map +1 -0
- package/build/transitions.d.mts +110 -0
- package/build/transitions.d.mts.map +1 -0
- package/build/transitions.js +84 -0
- package/build/transitions.js.map +1 -0
- package/package.json +2 -2
package/build/EntityManager.cjs
CHANGED
|
@@ -4,15 +4,9 @@ const require_batchloaders_BatchLoader = require("./batchloaders/BatchLoader.cjs
|
|
|
4
4
|
require("./relations/Collection.cjs");
|
|
5
5
|
const require_relations_CustomCollection = require("./relations/CustomCollection.cjs");
|
|
6
6
|
const require_relations_CustomReference = require("./relations/CustomReference.cjs");
|
|
7
|
-
const require_normalizeHints = require("./normalizeHints.cjs");
|
|
8
|
-
require("./batchloaders/recursiveChildrenBatchLoader.cjs");
|
|
9
|
-
require("./batchloaders/recursiveM2mBatchLoader.cjs");
|
|
10
|
-
require("./batchloaders/recursiveParentsBatchLoader.cjs");
|
|
11
|
-
const require_relations_RecursiveCycleError = require("./relations/RecursiveCycleError.cjs");
|
|
12
|
-
require("./relations/RecursiveCollection.cjs");
|
|
13
|
-
const require_reactivity_reactiveHints = require("./reactivity/reactiveHints.cjs");
|
|
14
7
|
const require_loading_loadHints = require("./loading/loadHints.cjs");
|
|
15
8
|
const require_relations_hasAsyncMethod = require("./relations/hasAsyncMethod.cjs");
|
|
9
|
+
const require_relations_RecursiveCycleError = require("./relations/RecursiveCycleError.cjs");
|
|
16
10
|
const require_relations_AsyncProperty = require("./relations/AsyncProperty.cjs");
|
|
17
11
|
const require_fields = require("./fields.cjs");
|
|
18
12
|
const require_keys = require("./keys.cjs");
|
|
@@ -28,13 +22,19 @@ require("./batchloaders/oneToOneBatchLoader.cjs");
|
|
|
28
22
|
const require_relations_ReactiveReference = require("./relations/ReactiveReference.cjs");
|
|
29
23
|
const require_relations_OneToOneReference = require("./relations/OneToOneReference.cjs");
|
|
30
24
|
const require_relations_PolymorphicReference = require("./relations/PolymorphicReference.cjs");
|
|
25
|
+
require("./batchloaders/recursiveChildrenBatchLoader.cjs");
|
|
26
|
+
require("./batchloaders/recursiveM2mBatchLoader.cjs");
|
|
27
|
+
require("./batchloaders/recursiveParentsBatchLoader.cjs");
|
|
28
|
+
require("./relations/RecursiveCollection.cjs");
|
|
31
29
|
require("./relations/index.cjs");
|
|
32
30
|
const require_utils = require("./utils.cjs");
|
|
33
31
|
const require_newEntity = require("./newEntity.cjs");
|
|
32
|
+
const require_normalizeHints = require("./normalizeHints.cjs");
|
|
33
|
+
const require_reactivity_reactiveHints = require("./reactivity/reactiveHints.cjs");
|
|
34
34
|
require("./typeMap.cjs");
|
|
35
35
|
const require_rules = require("./rules.cjs");
|
|
36
|
-
const require_configure = require("./configure.cjs");
|
|
37
36
|
const require_config = require("./config.cjs");
|
|
37
|
+
const require_configure = require("./configure.cjs");
|
|
38
38
|
const require_EntityMetadata = require("./EntityMetadata.cjs");
|
|
39
39
|
const require_trusted = require("./trusted.cjs");
|
|
40
40
|
const require_defaults = require("./defaults.cjs");
|
|
@@ -109,6 +109,8 @@ var EntityManager = class EntityManager {
|
|
|
109
109
|
#entitiesByTag = /* @__PURE__ */ new Map();
|
|
110
110
|
#indexManager = new require_IndexManager.IndexManager();
|
|
111
111
|
#isValidating = false;
|
|
112
|
+
/** The error that failed a previous `em.flush`, after which this EntityManager can't flush again. */
|
|
113
|
+
#flushError = void 0;
|
|
112
114
|
#findRestricted = false;
|
|
113
115
|
#pendingPercolate = /* @__PURE__ */ new Map();
|
|
114
116
|
#preloadedRelations = /* @__PURE__ */ new Map();
|
|
@@ -866,6 +868,7 @@ var EntityManager = class EntityManager {
|
|
|
866
868
|
}
|
|
867
869
|
async #flush(flushOptions = {}) {
|
|
868
870
|
if (this.mode === "read-only") throw new ReadOnlyError();
|
|
871
|
+
if (this.#flushError !== void 0) throw new FailedFlushError(this.#flushError);
|
|
869
872
|
const { skipValidation = false } = flushOptions;
|
|
870
873
|
this.#fl.startLock();
|
|
871
874
|
const allFlushedEntities = /* @__PURE__ */ new Set();
|
|
@@ -990,7 +993,7 @@ var EntityManager = class EntityManager {
|
|
|
990
993
|
await runValidation(entityTodos, joinRowTodos, !skipValidation);
|
|
991
994
|
this.#rm.throwIfAnySuppressedTypeErrors();
|
|
992
995
|
if (suppressedDefaultTypeErrors.length > 0) throw suppressedDefaultTypeErrors[0];
|
|
993
|
-
if (Object.keys(entityTodos).length > 0 || Object.keys(joinRowTodos).length > 0) {
|
|
996
|
+
if (Object.keys(entityTodos).length > 0 || Object.keys(joinRowTodos).length > 0 || this.#rm.hasPendingCommitTransitions()) {
|
|
994
997
|
await this.driver.transaction(this, async () => {
|
|
995
998
|
do {
|
|
996
999
|
if (Object.keys(entityTodos).length > 0 || Object.keys(joinRowTodos).length > 0) {
|
|
@@ -1021,6 +1024,7 @@ var EntityManager = class EntityManager {
|
|
|
1021
1024
|
await runCommitValidation(commitRuleTodos, commitRuleJoinRowTodos);
|
|
1022
1025
|
}
|
|
1023
1026
|
await beforeCommit(this.ctx, allFlushedEntities);
|
|
1027
|
+
await this.#rm.runCommitTransitions();
|
|
1024
1028
|
if (this.mode === "in-memory-writes") throw new InMemoryRollbackError();
|
|
1025
1029
|
});
|
|
1026
1030
|
await afterCommit(this.ctx, allFlushedEntities);
|
|
@@ -1040,12 +1044,13 @@ var EntityManager = class EntityManager {
|
|
|
1040
1044
|
this.#dataloaders = {};
|
|
1041
1045
|
this.#batchLoaders = {};
|
|
1042
1046
|
this.#preloadedRelations = /* @__PURE__ */ new Map();
|
|
1043
|
-
this.#rm.clear();
|
|
1044
1047
|
}
|
|
1045
1048
|
for (const e of createdThenDeleted) require_BaseEntity.getInstanceData(e).fixupCreatedThenDeleted();
|
|
1046
1049
|
this.#merging?.clear();
|
|
1050
|
+
this.#rm.clear();
|
|
1047
1051
|
return [...allFlushedEntities].sort((a, b) => require_BaseEntity.getInstanceData(a).entityIndex - require_BaseEntity.getInstanceData(b).entityIndex);
|
|
1048
1052
|
} catch (e) {
|
|
1053
|
+
if (!(e instanceof InMemoryRollbackError)) this.#flushError = e;
|
|
1049
1054
|
if (e instanceof require_relations_RecursiveCycleError.RecursiveCycleError) {
|
|
1050
1055
|
const entity = e.entities[0];
|
|
1051
1056
|
for (const meta of require_EntityMetadata.getBaseAndSelfMetas(require_EntityMetadata.getMetadata(entity))) {
|
|
@@ -1326,6 +1331,7 @@ var EntityManager = class EntityManager {
|
|
|
1326
1331
|
} else throw new Error("Unsupported override for setFieldLogging");
|
|
1327
1332
|
}
|
|
1328
1333
|
async [Symbol.asyncDispose]() {
|
|
1334
|
+
if (this.#flushError !== void 0) return;
|
|
1329
1335
|
await this.flush();
|
|
1330
1336
|
}
|
|
1331
1337
|
/** Returns entities matching the filter using indexed search when available. */
|
|
@@ -1861,6 +1867,12 @@ function hasPaginationSettings(options) {
|
|
|
1861
1867
|
}
|
|
1862
1868
|
/** An error we throw to get knex to `ROLLBACK`, but then catch. */
|
|
1863
1869
|
var InMemoryRollbackError = class extends Error {};
|
|
1870
|
+
/** An error thrown by `em.flush` after a previous `em.flush` on the same EntityManager failed. */
|
|
1871
|
+
var FailedFlushError = class extends Error {
|
|
1872
|
+
constructor(cause) {
|
|
1873
|
+
super("EntityManager cannot flush after a previous flush failed, use a new EntityManager", { cause });
|
|
1874
|
+
}
|
|
1875
|
+
};
|
|
1864
1876
|
/** An error thrown when `em.mode === "read-only"` but entities are mutated/flushed. */
|
|
1865
1877
|
var ReadOnlyError = class extends Error {
|
|
1866
1878
|
constructor() {
|
|
@@ -1912,6 +1924,7 @@ function createRowFromEntityData(e, opts = {}) {
|
|
|
1912
1924
|
}
|
|
1913
1925
|
//#endregion
|
|
1914
1926
|
exports.EntityManager = EntityManager;
|
|
1927
|
+
exports.FailedFlushError = FailedFlushError;
|
|
1915
1928
|
exports.NotFoundError = NotFoundError;
|
|
1916
1929
|
exports.ReadOnlyError = ReadOnlyError;
|
|
1917
1930
|
exports.TooManyError = TooManyError;
|
|
@@ -1923,6 +1936,7 @@ exports.driverBeforeBegin = driverBeforeBegin;
|
|
|
1923
1936
|
exports.driverBeforeCommit = driverBeforeCommit;
|
|
1924
1937
|
exports.getDefaultEntityLimit = getDefaultEntityLimit;
|
|
1925
1938
|
exports.getEmInternalApi = getEmInternalApi;
|
|
1939
|
+
exports.invokeRule = invokeRule;
|
|
1926
1940
|
exports.isDefined = isDefined;
|
|
1927
1941
|
exports.isId = isId;
|
|
1928
1942
|
exports.isKey = isKey;
|