@expo/entity 0.43.0 → 0.45.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/build/AuthorizationResultBasedEntityLoader.js +5 -1
- package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
- package/build/AuthorizationResultBasedEntityMutator.d.ts +87 -2
- package/build/AuthorizationResultBasedEntityMutator.js +122 -8
- package/build/AuthorizationResultBasedEntityMutator.js.map +1 -1
- package/build/EntityLoaderUtils.d.ts +15 -3
- package/build/EntityLoaderUtils.js +25 -10
- package/build/EntityLoaderUtils.js.map +1 -1
- package/build/EntityQueryContext.d.ts +53 -7
- package/build/EntityQueryContext.js +65 -10
- package/build/EntityQueryContext.js.map +1 -1
- package/build/EntityQueryContextProvider.d.ts +5 -1
- package/build/EntityQueryContextProvider.js +11 -4
- package/build/EntityQueryContextProvider.js.map +1 -1
- package/build/IEntityGenericCacher.d.ts +2 -2
- package/build/errors/EntityNotFoundError.d.ts +8 -1
- package/build/errors/EntityNotFoundError.js +7 -2
- package/build/errors/EntityNotFoundError.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/internal/CompositeFieldHolder.d.ts +13 -0
- package/build/internal/CompositeFieldHolder.js +7 -0
- package/build/internal/CompositeFieldHolder.js.map +1 -1
- package/build/internal/CompositeFieldValueMap.d.ts +3 -0
- package/build/internal/CompositeFieldValueMap.js +3 -0
- package/build/internal/CompositeFieldValueMap.js.map +1 -1
- package/build/internal/EntityDataManager.d.ts +22 -3
- package/build/internal/EntityDataManager.js +99 -11
- package/build/internal/EntityDataManager.js.map +1 -1
- package/build/internal/EntityFieldTransformationUtils.d.ts +20 -0
- package/build/internal/EntityFieldTransformationUtils.js +15 -0
- package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
- package/build/internal/EntityLoadInterfaces.d.ts +8 -0
- package/build/internal/EntityLoadInterfaces.js +2 -0
- package/build/internal/EntityLoadInterfaces.js.map +1 -1
- package/build/internal/EntityTableDataCoordinator.d.ts +2 -0
- package/build/internal/EntityTableDataCoordinator.js +2 -0
- package/build/internal/EntityTableDataCoordinator.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.d.ts +8 -0
- package/build/internal/ReadThroughEntityCache.js +5 -0
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/SingleFieldHolder.d.ts +7 -0
- package/build/internal/SingleFieldHolder.js +7 -0
- package/build/internal/SingleFieldHolder.js.map +1 -1
- package/build/metrics/EntityMetricsUtils.d.ts +4 -3
- package/build/metrics/EntityMetricsUtils.js +6 -3
- package/build/metrics/EntityMetricsUtils.js.map +1 -1
- package/build/metrics/IEntityMetricsAdapter.d.ts +21 -0
- package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/utils/EntityCreationUtils.d.ts +14 -0
- package/build/utils/EntityCreationUtils.js +57 -0
- package/build/utils/EntityCreationUtils.js.map +1 -0
- package/package.json +13 -13
- package/src/AuthorizationResultBasedEntityLoader.ts +7 -1
- package/src/AuthorizationResultBasedEntityMutator.ts +133 -15
- package/src/EntityLoaderUtils.ts +43 -12
- package/src/EntityQueryContext.ts +68 -13
- package/src/EntityQueryContextProvider.ts +20 -3
- package/src/IEntityGenericCacher.ts +2 -2
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +98 -0
- package/src/__tests__/EntityQueryContext-test.ts +141 -26
- package/src/errors/EntityNotFoundError.ts +51 -4
- package/src/errors/__tests__/EntityDatabaseAdapterError-test.ts +26 -0
- package/src/index.ts +1 -0
- package/src/internal/CompositeFieldHolder.ts +15 -0
- package/src/internal/CompositeFieldValueMap.ts +3 -0
- package/src/internal/EntityDataManager.ts +170 -10
- package/src/internal/EntityFieldTransformationUtils.ts +20 -0
- package/src/internal/EntityLoadInterfaces.ts +8 -0
- package/src/internal/EntityTableDataCoordinator.ts +2 -0
- package/src/internal/ReadThroughEntityCache.ts +8 -0
- package/src/internal/SingleFieldHolder.ts +7 -0
- package/src/internal/__tests__/EntityDataManager-test.ts +708 -186
- package/src/metrics/EntityMetricsUtils.ts +7 -0
- package/src/metrics/IEntityMetricsAdapter.ts +27 -0
- package/src/utils/EntityCreationUtils.ts +143 -0
- package/src/utils/__testfixtures__/StubDatabaseAdapter.ts +13 -1
- package/src/utils/__tests__/EntityCreationUtils-test.ts +354 -0
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const dataloader_1 = __importDefault(require("dataloader"));
|
|
7
7
|
const invariant_1 = __importDefault(require("invariant"));
|
|
8
|
+
const EntityQueryContext_1 = require("../EntityQueryContext");
|
|
8
9
|
const entityUtils_1 = require("../entityUtils");
|
|
9
10
|
const EntityMetricsUtils_1 = require("../metrics/EntityMetricsUtils");
|
|
10
11
|
const IEntityMetricsAdapter_1 = require("../metrics/IEntityMetricsAdapter");
|
|
@@ -14,6 +15,8 @@ const maps_1 = require("../utils/collections/maps");
|
|
|
14
15
|
* data including local caches, EntityCacheAdapter, and EntityDatabaseAdapter.
|
|
15
16
|
*
|
|
16
17
|
* It is also responsible for invalidating all sources of data when mutated using EntityMutator.
|
|
18
|
+
*
|
|
19
|
+
* @internal
|
|
17
20
|
*/
|
|
18
21
|
class EntityDataManager {
|
|
19
22
|
databaseAdapter;
|
|
@@ -21,7 +24,10 @@ class EntityDataManager {
|
|
|
21
24
|
queryContextProvider;
|
|
22
25
|
metricsAdapter;
|
|
23
26
|
entityClassName;
|
|
24
|
-
|
|
27
|
+
// map from (load method type + data manager data loader key) to dataloader
|
|
28
|
+
dataLoaders = new Map();
|
|
29
|
+
// map from transaction id to dataloader map
|
|
30
|
+
transactionalDataLoaders = new Map();
|
|
25
31
|
constructor(databaseAdapter, entityCache, queryContextProvider, metricsAdapter, entityClassName) {
|
|
26
32
|
this.databaseAdapter = databaseAdapter;
|
|
27
33
|
this.entityCache = entityCache;
|
|
@@ -30,17 +36,18 @@ class EntityDataManager {
|
|
|
30
36
|
this.entityClassName = entityClassName;
|
|
31
37
|
}
|
|
32
38
|
getDataLoaderForLoadKey(key) {
|
|
33
|
-
return (0, maps_1.computeIfAbsent)(this.
|
|
39
|
+
return (0, maps_1.computeIfAbsent)(this.dataLoaders, key.getLoadMethodType() + key.getDataManagerDataLoaderKey(), () => {
|
|
34
40
|
return new dataloader_1.default(async (serializedLoadValues) => {
|
|
35
41
|
const values = serializedLoadValues.map((serializedLoadValue) => key.deserializeLoadValue(serializedLoadValue));
|
|
36
|
-
const objectMap = await this.
|
|
42
|
+
const objectMap = await this.loadManyForNonTransactionalDataLoaderAsync(key, values);
|
|
37
43
|
return values.map((value) => objectMap.get(value) ?? []);
|
|
38
44
|
});
|
|
39
45
|
});
|
|
40
46
|
}
|
|
41
|
-
async
|
|
47
|
+
async loadManyForNonTransactionalDataLoaderAsync(key, values) {
|
|
42
48
|
this.metricsAdapter.incrementDataManagerLoadCount({
|
|
43
49
|
type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.CACHE,
|
|
50
|
+
isInTransaction: false,
|
|
44
51
|
fieldValueCount: values.length,
|
|
45
52
|
entityClassName: this.entityClassName,
|
|
46
53
|
loadType: key.getLoadMethodType(),
|
|
@@ -48,6 +55,7 @@ class EntityDataManager {
|
|
|
48
55
|
return await this.entityCache.readManyThroughAsync(key, values, async (fetcherValues) => {
|
|
49
56
|
this.metricsAdapter.incrementDataManagerLoadCount({
|
|
50
57
|
type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATABASE,
|
|
58
|
+
isInTransaction: false,
|
|
51
59
|
fieldValueCount: fetcherValues.length,
|
|
52
60
|
entityClassName: this.entityClassName,
|
|
53
61
|
loadType: key.getLoadMethodType(),
|
|
@@ -55,6 +63,29 @@ class EntityDataManager {
|
|
|
55
63
|
return await this.databaseAdapter.fetchManyWhereAsync(this.queryContextProvider.getQueryContext(), key, fetcherValues);
|
|
56
64
|
});
|
|
57
65
|
}
|
|
66
|
+
getTransactionalDataLoaderForLoadKey(queryContext, key) {
|
|
67
|
+
const dataLoaderMapForTransaction = (0, maps_1.computeIfAbsent)(this.transactionalDataLoaders, queryContext.transactionId, () => new Map());
|
|
68
|
+
return (0, maps_1.computeIfAbsent)(dataLoaderMapForTransaction, key.getLoadMethodType() + key.getDataManagerDataLoaderKey(), () => {
|
|
69
|
+
return new dataloader_1.default(async (serializedLoadValues) => {
|
|
70
|
+
const values = serializedLoadValues.map((serializedLoadValue) => key.deserializeLoadValue(serializedLoadValue));
|
|
71
|
+
const objectMap = await this.loadManyForTransactionalDataLoaderAsync(queryContext, key, values);
|
|
72
|
+
return values.map((value) => objectMap.get(value) ?? []);
|
|
73
|
+
}, {
|
|
74
|
+
// only cache if transactional dataloader caching is enabled for the transactional query context
|
|
75
|
+
cache: queryContext.transactionalDataLoaderMode === EntityQueryContext_1.TransactionalDataLoaderMode.ENABLED,
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async loadManyForTransactionalDataLoaderAsync(queryContext, key, values) {
|
|
80
|
+
this.metricsAdapter.incrementDataManagerLoadCount({
|
|
81
|
+
type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATABASE,
|
|
82
|
+
isInTransaction: true,
|
|
83
|
+
fieldValueCount: values.length,
|
|
84
|
+
entityClassName: this.entityClassName,
|
|
85
|
+
loadType: key.getLoadMethodType(),
|
|
86
|
+
});
|
|
87
|
+
return await this.databaseAdapter.fetchManyWhereAsync(queryContext, key, values);
|
|
88
|
+
}
|
|
58
89
|
/**
|
|
59
90
|
* Load many objects through read-through dataloader (batcher) and cache (optional).
|
|
60
91
|
*
|
|
@@ -64,21 +95,31 @@ class EntityDataManager {
|
|
|
64
95
|
* @returns map from load value to objects that match the query for that load value
|
|
65
96
|
*/
|
|
66
97
|
async loadManyEqualingAsync(queryContext, key, values) {
|
|
67
|
-
return await (0, EntityMetricsUtils_1.timeAndLogLoadMapEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY, this.entityClassName)(this.loadManyEqualingInternalAsync(queryContext, key, values));
|
|
98
|
+
return await (0, EntityMetricsUtils_1.timeAndLogLoadMapEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY, this.entityClassName, queryContext)(this.loadManyEqualingInternalAsync(queryContext, key, values));
|
|
68
99
|
}
|
|
69
100
|
async loadManyEqualingInternalAsync(queryContext, key, values) {
|
|
70
101
|
key.validateRuntimeLoadValuesForDataManagerDataLoader(values, this.entityClassName);
|
|
71
|
-
|
|
72
|
-
|
|
102
|
+
if (queryContext.isInTransaction() &&
|
|
103
|
+
queryContext.transactionalDataLoaderMode === EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED) {
|
|
104
|
+
this.metricsAdapter.incrementDataManagerLoadCount({
|
|
105
|
+
type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATABASE,
|
|
106
|
+
isInTransaction: true,
|
|
107
|
+
fieldValueCount: values.length,
|
|
108
|
+
entityClassName: this.entityClassName,
|
|
109
|
+
loadType: key.getLoadMethodType(),
|
|
110
|
+
});
|
|
73
111
|
return await this.databaseAdapter.fetchManyWhereAsync(queryContext, key, values);
|
|
74
112
|
}
|
|
75
113
|
this.metricsAdapter.incrementDataManagerLoadCount({
|
|
76
114
|
type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATALOADER,
|
|
115
|
+
isInTransaction: queryContext.isInTransaction(),
|
|
77
116
|
fieldValueCount: values.length,
|
|
78
117
|
entityClassName: this.entityClassName,
|
|
79
118
|
loadType: key.getLoadMethodType(),
|
|
80
119
|
});
|
|
81
|
-
const dataLoader =
|
|
120
|
+
const dataLoader = queryContext.isInTransaction()
|
|
121
|
+
? this.getTransactionalDataLoaderForLoadKey(queryContext, key)
|
|
122
|
+
: this.getDataLoaderForLoadKey(key);
|
|
82
123
|
const results = await dataLoader.loadMany(values.map((v) => key.serializeLoadValue(v)));
|
|
83
124
|
const [successfulValues, errors] = (0, entityUtils_1.partitionErrors)(results);
|
|
84
125
|
if (errors.length > 0) {
|
|
@@ -102,7 +143,7 @@ class EntityDataManager {
|
|
|
102
143
|
* @returns array of objects matching the query
|
|
103
144
|
*/
|
|
104
145
|
async loadManyByFieldEqualityConjunctionAsync(queryContext, fieldEqualityOperands, querySelectionModifiers) {
|
|
105
|
-
return await (0, EntityMetricsUtils_1.timeAndLogLoadEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_EQUALITY_CONJUNCTION, this.entityClassName)(this.databaseAdapter.fetchManyByFieldEqualityConjunctionAsync(queryContext, fieldEqualityOperands, querySelectionModifiers));
|
|
146
|
+
return await (0, EntityMetricsUtils_1.timeAndLogLoadEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_EQUALITY_CONJUNCTION, this.entityClassName, queryContext)(this.databaseAdapter.fetchManyByFieldEqualityConjunctionAsync(queryContext, fieldEqualityOperands, querySelectionModifiers));
|
|
106
147
|
}
|
|
107
148
|
/**
|
|
108
149
|
* Loads many objects matching the raw WHERE clause.
|
|
@@ -114,20 +155,67 @@ class EntityDataManager {
|
|
|
114
155
|
* @returns array of objects matching the query
|
|
115
156
|
*/
|
|
116
157
|
async loadManyByRawWhereClauseAsync(queryContext, rawWhereClause, bindings, querySelectionModifiers) {
|
|
117
|
-
return await (0, EntityMetricsUtils_1.timeAndLogLoadEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_RAW, this.entityClassName)(this.databaseAdapter.fetchManyByRawWhereClauseAsync(queryContext, rawWhereClause, bindings, querySelectionModifiers));
|
|
158
|
+
return await (0, EntityMetricsUtils_1.timeAndLogLoadEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_RAW, this.entityClassName, queryContext)(this.databaseAdapter.fetchManyByRawWhereClauseAsync(queryContext, rawWhereClause, bindings, querySelectionModifiers));
|
|
118
159
|
}
|
|
119
160
|
async invalidateOneAsync(key, value) {
|
|
120
161
|
await this.entityCache.invalidateManyAsync(key, [value]);
|
|
121
162
|
this.getDataLoaderForLoadKey(key).clear(key.serializeLoadValue(value));
|
|
122
163
|
}
|
|
164
|
+
invalidateOneForTransaction(queryContext, key, value) {
|
|
165
|
+
this.getTransactionalDataLoaderForLoadKey(queryContext, key).clear(key.serializeLoadValue(value));
|
|
166
|
+
}
|
|
123
167
|
/**
|
|
124
168
|
* Invalidate all caches, in-memory or otherwise, for sets of key-value pairs.
|
|
125
169
|
* @param pairs - key-value pairs to invalidate
|
|
126
170
|
*/
|
|
127
171
|
async invalidateKeyValuePairsAsync(pairs) {
|
|
128
|
-
// TODO(wschurman): check for races with load
|
|
129
172
|
await Promise.all(pairs.map(([key, value]) => this.invalidateOneAsync(key, value)));
|
|
130
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Invalidate all in-memory caches for sets of key-value pairs for all transactions and parent transactions.
|
|
176
|
+
* @param pairs - key-value pairs to invalidate
|
|
177
|
+
*/
|
|
178
|
+
invalidateKeyValuePairsForTransaction(queryContext, pairs) {
|
|
179
|
+
if (queryContext.transactionalDataLoaderMode === EntityQueryContext_1.TransactionalDataLoaderMode.DISABLED) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
// invalidate all query contexts in transaction tree
|
|
183
|
+
const outermostTransactionalQueryContext = EntityDataManager.getOutermostTransactionalQueryContextIfInNestedTransaction(queryContext);
|
|
184
|
+
const allQueryContextsToInvalidate = [
|
|
185
|
+
outermostTransactionalQueryContext,
|
|
186
|
+
...EntityDataManager.getAllDescendantTransactionalQueryContexts(outermostTransactionalQueryContext),
|
|
187
|
+
];
|
|
188
|
+
for (const currentQueryContext of allQueryContextsToInvalidate) {
|
|
189
|
+
for (const [key, value] of pairs) {
|
|
190
|
+
this.invalidateOneForTransaction(currentQueryContext, key, value);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Traverse to root of transactional query context tree.
|
|
196
|
+
*/
|
|
197
|
+
static getOutermostTransactionalQueryContextIfInNestedTransaction(queryContext) {
|
|
198
|
+
if (queryContext.isInNestedTransaction()) {
|
|
199
|
+
return EntityDataManager.getOutermostTransactionalQueryContextIfInNestedTransaction(queryContext.parentQueryContext);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
return queryContext;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get a list of all child query contexts recursively for a given query context.
|
|
207
|
+
*/
|
|
208
|
+
static getAllDescendantTransactionalQueryContexts(queryContext) {
|
|
209
|
+
if (queryContext.childQueryContexts.length === 0) {
|
|
210
|
+
return [];
|
|
211
|
+
}
|
|
212
|
+
return queryContext.childQueryContexts.flatMap((childQueryContext) => {
|
|
213
|
+
return [
|
|
214
|
+
childQueryContext,
|
|
215
|
+
...EntityDataManager.getAllDescendantTransactionalQueryContexts(childQueryContext),
|
|
216
|
+
];
|
|
217
|
+
});
|
|
218
|
+
}
|
|
131
219
|
}
|
|
132
220
|
exports.default = EntityDataManager;
|
|
133
221
|
//# sourceMappingURL=EntityDataManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityDataManager.js","sourceRoot":"","sources":["../../src/internal/EntityDataManager.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AACpC,0DAAkC;
|
|
1
|
+
{"version":3,"file":"EntityDataManager.js","sourceRoot":"","sources":["../../src/internal/EntityDataManager.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AACpC,0DAAkC;AAQlC,8DAI+B;AAE/B,gDAAiD;AAEjD,sEAGuC;AACvC,4EAG0C;AAC1C,oDAA4D;AAO5D;;;;;;;GAOG;AACH,MAAqB,iBAAiB;IAWjB;IACA;IACA;IACA;IACA;IAXnB,2EAA2E;IAC1D,WAAW,GAA2B,IAAI,GAAG,EAAE,CAAC;IAEjE,4CAA4C;IAC3B,wBAAwB,GAAwC,IAAI,GAAG,EAAE,CAAC;IAE3F,YACmB,eAAyD,EACzD,WAAsD,EACtD,oBAAgD,EAChD,cAAqC,EACrC,eAAuB;QAJvB,oBAAe,GAAf,eAAe,CAA0C;QACzD,gBAAW,GAAX,WAAW,CAA2C;QACtD,yBAAoB,GAApB,oBAAoB,CAA4B;QAChD,mBAAc,GAAd,cAAc,CAAuB;QACrC,oBAAe,GAAf,eAAe,CAAQ;IACvC,CAAC;IAEI,uBAAuB,CAI7B,GAAa;QACb,OAAO,IAAA,sBAAe,EACpB,IAAI,CAAC,WAAW,EAChB,GAAG,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,2BAA2B,EAAE,EAC3D,GAAG,EAAE;YACH,OAAO,IAAI,oBAAU,CACnB,KAAK,EACH,oBAAqD,EACX,EAAE;gBAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAC9D,GAAG,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAC9C,CAAC;gBACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,0CAA0C,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACrF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,0CAA0C,CAKtD,GAAa,EACb,MAA6B;QAE7B,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;YAChD,IAAI,EAAE,mDAA2B,CAAC,KAAK;YACvC,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE;SAClC,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YACtF,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;gBAChD,IAAI,EAAE,mDAA2B,CAAC,QAAQ;gBAC1C,eAAe,EAAE,KAAK;gBACtB,eAAe,EAAE,aAAa,CAAC,MAAM;gBACrC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACnD,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,EAC3C,GAAG,EACH,aAAa,CACd,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oCAAoC,CAK1C,YAA6C,EAC7C,GAAa;QAEb,MAAM,2BAA2B,GAAG,IAAA,sBAAe,EACjD,IAAI,CAAC,wBAAwB,EAC7B,YAAY,CAAC,aAAa,EAC1B,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAChB,CAAC;QACF,OAAO,IAAA,sBAAe,EACpB,2BAA2B,EAC3B,GAAG,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,2BAA2B,EAAE,EAC3D,GAAG,EAAE;YACH,OAAO,IAAI,oBAAU,CACnB,KAAK,EACH,oBAAqD,EACX,EAAE;gBAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAC9D,GAAG,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAC9C,CAAC;gBACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,uCAAuC,CAClE,YAAY,EACZ,GAAG,EACH,MAAM,CACP,CAAC;gBACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC,EACD;gBACE,gGAAgG;gBAChG,KAAK,EAAE,YAAY,CAAC,2BAA2B,KAAK,gDAA2B,CAAC,OAAO;aACxF,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,uCAAuC,CAKnD,YAA6C,EAC7C,GAAa,EACb,MAA6B;QAE7B,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;YAChD,IAAI,EAAE,mDAA2B,CAAC,QAAQ;YAC1C,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,qBAAqB,CAKzB,YAAgC,EAChC,GAAa,EACb,MAA6B;QAE7B,OAAO,MAAM,IAAA,gDAA2B,EACtC,IAAI,CAAC,cAAc,EACnB,6CAAqB,CAAC,SAAS,EAC/B,IAAI,CAAC,eAAe,EACpB,YAAY,CACb,CAAC,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAKzC,YAAgC,EAChC,GAAa,EACb,MAA6B;QAE7B,GAAG,CAAC,iDAAiD,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEpF,IACE,YAAY,CAAC,eAAe,EAAE;YAC9B,YAAY,CAAC,2BAA2B,KAAK,gDAA2B,CAAC,QAAQ,EACjF,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;gBAChD,IAAI,EAAE,mDAA2B,CAAC,QAAQ;gBAC1C,eAAe,EAAE,IAAI;gBACrB,eAAe,EAAE,MAAM,CAAC,MAAM;gBAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;YAChD,IAAI,EAAE,mDAA2B,CAAC,UAAU;YAC5C,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE;YAC/C,eAAe,EAAE,MAAM,CAAC,MAAM;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE;SAClC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,YAAY,CAAC,eAAe,EAAE;YAC/C,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,YAAY,EAAE,GAAG,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,IAAA,6BAAe,EAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAA,mBAAS,EACP,MAAM,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EACzC,mCAAmC,MAAM,CAAC,MAAM,4BAA4B,gBAAgB,CAAC,MAAM,GAAG,CACvG,CAAC;QACF,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB,EAAgC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,gBAAgB,CAAC,CAAC,CAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,uCAAuC,CAC3C,YAAgC,EAChC,qBAA2D,EAC3D,uBAAyD;QAEzD,OAAO,MAAM,IAAA,6CAAwB,EACnC,IAAI,CAAC,cAAc,EACnB,6CAAqB,CAAC,8BAA8B,EACpD,IAAI,CAAC,eAAe,EACpB,YAAY,CACb,CACC,IAAI,CAAC,eAAe,CAAC,wCAAwC,CAC3D,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,CACxB,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,6BAA6B,CACjC,YAAgC,EAChC,cAAsB,EACtB,QAAwB,EACxB,uBAAuE;QAEvE,OAAO,MAAM,IAAA,6CAAwB,EACnC,IAAI,CAAC,cAAc,EACnB,6CAAqB,CAAC,aAAa,EACnC,IAAI,CAAC,eAAe,EACpB,YAAY,CACb,CACC,IAAI,CAAC,eAAe,CAAC,8BAA8B,CACjD,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,uBAAuB,CACxB,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAI9B,GAAa,EAAE,KAAiB;QAChC,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAEO,2BAA2B,CAIjC,YAA6C,EAAE,GAAa,EAAE,KAAiB;QAC/E,IAAI,CAAC,oCAAoC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,CAChE,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,4BAA4B,CACvC,KAA4D;QAE5D,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED;;;OAGG;IACI,qCAAqC,CAC1C,YAA6C,EAC7C,KAA4D;QAE5D,IAAI,YAAY,CAAC,2BAA2B,KAAK,gDAA2B,CAAC,QAAQ,EAAE,CAAC;YACtF,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,MAAM,kCAAkC,GACtC,iBAAiB,CAAC,0DAA0D,CAAC,YAAY,CAAC,CAAC;QAC7F,MAAM,4BAA4B,GAAG;YACnC,kCAAkC;YAClC,GAAG,iBAAiB,CAAC,0CAA0C,CAC7D,kCAAkC,CACnC;SACF,CAAC;QACF,KAAK,MAAM,mBAAmB,IAAI,4BAA4B,EAAE,CAAC;YAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;gBACjC,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,0DAA0D,CACvE,YAA6C;QAE7C,IAAI,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACzC,OAAO,iBAAiB,CAAC,0DAA0D,CACjF,YAAY,CAAC,kBAAkB,CAChC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,0CAA0C,CACvD,YAA6C;QAE7C,IAAI,YAAY,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;YACnE,OAAO;gBACL,iBAAiB;gBACjB,GAAG,iBAAiB,CAAC,0CAA0C,CAAC,iBAAiB,CAAC;aACnF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtWD,oCAsWC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import EntityConfiguration from '../EntityConfiguration';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
2
5
|
export interface FieldTransformer<T> {
|
|
3
6
|
/**
|
|
4
7
|
* Transformation to apply when a value is read from an adapter.
|
|
@@ -11,14 +14,31 @@ export interface FieldTransformer<T> {
|
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
16
|
* Map from concrete EntityFieldDefinition implementation class name to field transformer.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
14
19
|
*/
|
|
15
20
|
export type FieldTransformerMap = Map<string, FieldTransformer<any>>;
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
16
24
|
export declare const getDatabaseFieldForEntityField: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, entityField: keyof TFields) => string;
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
17
28
|
export declare const transformDatabaseObjectToFields: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, databaseObject: {
|
|
18
29
|
[key: string]: any;
|
|
19
30
|
}) => Readonly<TFields>;
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
20
34
|
export declare const transformFieldsToDatabaseObject: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, fields: Readonly<Partial<TFields>>) => object;
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
21
38
|
export declare const transformCacheObjectToFields: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, cacheObject: {
|
|
22
39
|
[key: string]: any;
|
|
23
40
|
}) => Readonly<TFields>;
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
24
44
|
export declare const transformFieldsToCacheObject: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, fields: Readonly<Partial<TFields>>) => object;
|
|
@@ -6,12 +6,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.transformFieldsToCacheObject = exports.transformCacheObjectToFields = exports.transformFieldsToDatabaseObject = exports.transformDatabaseObjectToFields = exports.getDatabaseFieldForEntityField = void 0;
|
|
7
7
|
const invariant_1 = __importDefault(require("invariant"));
|
|
8
8
|
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
9
12
|
const getDatabaseFieldForEntityField = (entityConfiguration, entityField) => {
|
|
10
13
|
const databaseField = entityConfiguration.entityToDBFieldsKeyMapping.get(entityField);
|
|
11
14
|
(0, invariant_1.default)(databaseField, `database field mapping missing for ${String(entityField)}`);
|
|
12
15
|
return databaseField;
|
|
13
16
|
};
|
|
14
17
|
exports.getDatabaseFieldForEntityField = getDatabaseFieldForEntityField;
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
15
21
|
const transformDatabaseObjectToFields = (entityConfiguration, fieldTransformerMap, databaseObject) => {
|
|
16
22
|
const fields = {};
|
|
17
23
|
for (const k in databaseObject) {
|
|
@@ -24,6 +30,9 @@ const transformDatabaseObjectToFields = (entityConfiguration, fieldTransformerMa
|
|
|
24
30
|
return fields;
|
|
25
31
|
};
|
|
26
32
|
exports.transformDatabaseObjectToFields = transformDatabaseObjectToFields;
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
27
36
|
const transformFieldsToDatabaseObject = (entityConfiguration, fieldTransformerMap, fields) => {
|
|
28
37
|
const databaseObject = {};
|
|
29
38
|
for (const k in fields) {
|
|
@@ -35,6 +44,9 @@ const transformFieldsToDatabaseObject = (entityConfiguration, fieldTransformerMa
|
|
|
35
44
|
return databaseObject;
|
|
36
45
|
};
|
|
37
46
|
exports.transformFieldsToDatabaseObject = transformFieldsToDatabaseObject;
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
38
50
|
const transformCacheObjectToFields = (entityConfiguration, fieldTransformerMap, cacheObject) => {
|
|
39
51
|
const fields = {};
|
|
40
52
|
for (const fieldsKey in cacheObject) {
|
|
@@ -44,6 +56,9 @@ const transformCacheObjectToFields = (entityConfiguration, fieldTransformerMap,
|
|
|
44
56
|
return fields;
|
|
45
57
|
};
|
|
46
58
|
exports.transformCacheObjectToFields = transformCacheObjectToFields;
|
|
59
|
+
/**
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
47
62
|
const transformFieldsToCacheObject = (entityConfiguration, fieldTransformerMap, fields) => {
|
|
48
63
|
const cacheObject = {};
|
|
49
64
|
for (const fieldsKey in fields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityFieldTransformationUtils.js","sourceRoot":"","sources":["../../src/internal/EntityFieldTransformationUtils.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC,4DAAoC;
|
|
1
|
+
{"version":3,"file":"EntityFieldTransformationUtils.js","sourceRoot":"","sources":["../../src/internal/EntityFieldTransformationUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@ export declare enum EntityLoadMethodType {
|
|
|
16
16
|
/**
|
|
17
17
|
* Interface responsible for defining how the key and corresponding load values behave in the data manager, cache adapter,
|
|
18
18
|
* and database adapter during entity field loading.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
19
21
|
*/
|
|
20
22
|
export interface IEntityLoadKey<TFields extends Record<string, any>, TIDField extends keyof TFields, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>> {
|
|
21
23
|
toString(): string;
|
|
@@ -89,16 +91,22 @@ export interface IEntityLoadKey<TFields extends Record<string, any>, TIDField ex
|
|
|
89
91
|
}
|
|
90
92
|
/**
|
|
91
93
|
* Interface for a load value corresponding to a load key.
|
|
94
|
+
*
|
|
95
|
+
* @internal
|
|
92
96
|
*/
|
|
93
97
|
export interface IEntityLoadValue<TSerialized> extends ISerializable<TSerialized> {
|
|
94
98
|
toString(): string;
|
|
95
99
|
}
|
|
96
100
|
/**
|
|
97
101
|
* Map from load value interface to value.
|
|
102
|
+
*
|
|
103
|
+
* @internal
|
|
98
104
|
*/
|
|
99
105
|
export declare abstract class LoadValueMap<TSerialized, TLoadValue extends IEntityLoadValue<TSerialized>, V> extends SerializableKeyMap<TSerialized, TLoadValue, V> {
|
|
100
106
|
}
|
|
101
107
|
/**
|
|
102
108
|
* Load pair type for a load key and load value.
|
|
109
|
+
*
|
|
110
|
+
* @internal
|
|
103
111
|
*/
|
|
104
112
|
export type LoadPair<TFields extends Record<string, any>, TIDField extends keyof TFields, TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>> = readonly [TLoadKey, TLoadValue];
|
|
@@ -18,6 +18,8 @@ var EntityLoadMethodType;
|
|
|
18
18
|
})(EntityLoadMethodType || (exports.EntityLoadMethodType = EntityLoadMethodType = {}));
|
|
19
19
|
/**
|
|
20
20
|
* Map from load value interface to value.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
21
23
|
*/
|
|
22
24
|
class LoadValueMap extends SerializableKeyMap_1.SerializableKeyMap {
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityLoadInterfaces.js","sourceRoot":"","sources":["../../src/internal/EntityLoadInterfaces.ts"],"names":[],"mappings":";;;AACA,gFAA4F;AAE5F;;GAEG;AACH,IAAY,oBAUX;AAVD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,yCAAiB,CAAA;IAEjB;;OAEG;IACH,+CAAuB,CAAA;AACzB,CAAC,EAVW,oBAAoB,oCAApB,oBAAoB,QAU/B;
|
|
1
|
+
{"version":3,"file":"EntityLoadInterfaces.js","sourceRoot":"","sources":["../../src/internal/EntityLoadInterfaces.ts"],"names":[],"mappings":";;;AACA,gFAA4F;AAE5F;;GAEG;AACH,IAAY,oBAUX;AAVD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,yCAAiB,CAAA;IAEjB;;OAEG;IACH,+CAAuB,CAAA;AACzB,CAAC,EAVW,oBAAoB,oCAApB,oBAAoB,QAU/B;AAgHD;;;;GAIG;AACH,MAAsB,YAIpB,SAAQ,uCAA8C;CAAG;AAJ3D,oCAI2D"}
|
|
@@ -10,6 +10,8 @@ import IEntityMetricsAdapter from '../metrics/IEntityMetricsAdapter';
|
|
|
10
10
|
* Responsible for orchestrating fetching and caching of entity data from a
|
|
11
11
|
* table. Note that one instance is shared amongst all entities that read from
|
|
12
12
|
* the table to ensure cross-entity data consistency.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
13
15
|
*/
|
|
14
16
|
export default class EntityTableDataCoordinator<TFields extends Record<string, any>, TIDField extends keyof TFields> {
|
|
15
17
|
readonly entityConfiguration: EntityConfiguration<TFields, TIDField>;
|
|
@@ -9,6 +9,8 @@ const ReadThroughEntityCache_1 = __importDefault(require("./ReadThroughEntityCac
|
|
|
9
9
|
* Responsible for orchestrating fetching and caching of entity data from a
|
|
10
10
|
* table. Note that one instance is shared amongst all entities that read from
|
|
11
11
|
* the table to ensure cross-entity data consistency.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
12
14
|
*/
|
|
13
15
|
class EntityTableDataCoordinator {
|
|
14
16
|
entityConfiguration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTableDataCoordinator.js","sourceRoot":"","sources":["../../src/internal/EntityTableDataCoordinator.ts"],"names":[],"mappings":";;;;;AAAA,4EAAoD;AACpD,sFAA8D;AAS9D
|
|
1
|
+
{"version":3,"file":"EntityTableDataCoordinator.js","sourceRoot":"","sources":["../../src/internal/EntityTableDataCoordinator.ts"],"names":[],"mappings":";;;;;AAAA,4EAAoD;AACpD,sFAA8D;AAS9D;;;;;;GAMG;AACH,MAAqB,0BAA0B;IASlC;IAGQ;IARV,eAAe,CAA2C;IAC1D,YAAY,CAAyC;IACrD,WAAW,CAAuC;IAE3D,YACW,mBAA2D,EACpE,uBAAuD,EACvD,oBAAiD,EAChC,oBAAgD,EACjE,cAAqC,EACrC,eAAuB;QALd,wBAAmB,GAAnB,mBAAmB,CAAwC;QAGnD,yBAAoB,GAApB,oBAAoB,CAA4B;QAIjE,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QACvF,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,GAAG,IAAI,2BAAiB,CACtC,IAAI,CAAC,eAAe,EACpB,IAAI,gCAAsB,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,EAClE,oBAAoB,EACpB,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;CACF;AA9BD,6CA8BC"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import EntityConfiguration from '../EntityConfiguration';
|
|
2
2
|
import IEntityCacheAdapter from '../IEntityCacheAdapter';
|
|
3
3
|
import { IEntityLoadKey, IEntityLoadValue } from './EntityLoadInterfaces';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
4
7
|
export declare enum CacheStatus {
|
|
5
8
|
HIT = 0,
|
|
6
9
|
MISS = 1,
|
|
7
10
|
NEGATIVE = 2
|
|
8
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
9
15
|
export type CacheLoadResult<TFields extends Record<string, any>> = {
|
|
10
16
|
status: CacheStatus.HIT;
|
|
11
17
|
item: Readonly<TFields>;
|
|
@@ -17,6 +23,8 @@ export type CacheLoadResult<TFields extends Record<string, any>> = {
|
|
|
17
23
|
/**
|
|
18
24
|
* A read-through entity cache is responsible for coordinating EntityDatabaseAdapter and
|
|
19
25
|
* EntityCacheAdapter within the EntityDataManager.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
20
28
|
*/
|
|
21
29
|
export default class ReadThroughEntityCache<TFields extends Record<string, any>, TIDField extends keyof TFields> {
|
|
22
30
|
private readonly entityConfiguration;
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.CacheStatus = void 0;
|
|
7
7
|
const invariant_1 = __importDefault(require("invariant"));
|
|
8
8
|
const maps_1 = require("../utils/collections/maps");
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
9
12
|
var CacheStatus;
|
|
10
13
|
(function (CacheStatus) {
|
|
11
14
|
CacheStatus[CacheStatus["HIT"] = 0] = "HIT";
|
|
@@ -15,6 +18,8 @@ var CacheStatus;
|
|
|
15
18
|
/**
|
|
16
19
|
* A read-through entity cache is responsible for coordinating EntityDatabaseAdapter and
|
|
17
20
|
* EntityCacheAdapter within the EntityDataManager.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
18
23
|
*/
|
|
19
24
|
class ReadThroughEntityCache {
|
|
20
25
|
entityConfiguration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadThroughEntityCache.js","sourceRoot":"","sources":["../../src/internal/ReadThroughEntityCache.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAKlC,oDAAsD;AAEtD,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,2CAAG,CAAA;IACH,6CAAI,CAAA;IACJ,qDAAQ,CAAA;AACV,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;
|
|
1
|
+
{"version":3,"file":"ReadThroughEntityCache.js","sourceRoot":"","sources":["../../src/internal/ReadThroughEntityCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import EntityConfiguration from '../EntityConfiguration';
|
|
|
2
2
|
import { EntityLoadMethodType, IEntityLoadKey, IEntityLoadValue, LoadValueMap } from './EntityLoadInterfaces';
|
|
3
3
|
/**
|
|
4
4
|
* A load key that represents a single field (fieldName) on an entity.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
5
7
|
*/
|
|
6
8
|
export declare class SingleFieldHolder<TFields extends Record<string, any>, TIDField extends keyof TFields, N extends keyof TFields> implements IEntityLoadKey<TFields, TIDField, NonNullable<TFields[N]>, SingleFieldValueHolder<TFields, N>> {
|
|
7
9
|
readonly fieldName: N;
|
|
@@ -21,6 +23,8 @@ export declare class SingleFieldHolder<TFields extends Record<string, any>, TIDF
|
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* A load value for a SingleFieldHolder.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
24
28
|
*/
|
|
25
29
|
export declare class SingleFieldValueHolder<TFields extends Record<string, any>, N extends keyof TFields> implements IEntityLoadValue<NonNullable<TFields[N]>> {
|
|
26
30
|
readonly fieldValue: NonNullable<TFields[N]>;
|
|
@@ -29,6 +33,9 @@ export declare class SingleFieldValueHolder<TFields extends Record<string, any>,
|
|
|
29
33
|
serialize(): NonNullable<TFields[N]>;
|
|
30
34
|
static deserialize<TFields extends Record<string, any>, N extends keyof TFields>(fieldValue: NonNullable<TFields[N]>): SingleFieldValueHolder<TFields, N>;
|
|
31
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
32
39
|
export declare class SingleFieldValueHolderMap<TFields extends Record<string, any>, N extends keyof TFields, V> extends LoadValueMap<NonNullable<TFields[N]>, SingleFieldValueHolder<TFields, N>, V> {
|
|
33
40
|
protected deserializeKey(serializedKey: NonNullable<TFields[N]>): SingleFieldValueHolder<TFields, N>;
|
|
34
41
|
}
|
|
@@ -9,6 +9,8 @@ const EntityFieldTransformationUtils_1 = require("./EntityFieldTransformationUti
|
|
|
9
9
|
const EntityLoadInterfaces_1 = require("./EntityLoadInterfaces");
|
|
10
10
|
/**
|
|
11
11
|
* A load key that represents a single field (fieldName) on an entity.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
12
14
|
*/
|
|
13
15
|
class SingleFieldHolder {
|
|
14
16
|
fieldName;
|
|
@@ -64,6 +66,8 @@ class SingleFieldHolder {
|
|
|
64
66
|
exports.SingleFieldHolder = SingleFieldHolder;
|
|
65
67
|
/**
|
|
66
68
|
* A load value for a SingleFieldHolder.
|
|
69
|
+
*
|
|
70
|
+
* @internal
|
|
67
71
|
*/
|
|
68
72
|
class SingleFieldValueHolder {
|
|
69
73
|
fieldValue;
|
|
@@ -81,6 +85,9 @@ class SingleFieldValueHolder {
|
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
exports.SingleFieldValueHolder = SingleFieldValueHolder;
|
|
88
|
+
/**
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
84
91
|
class SingleFieldValueHolderMap extends EntityLoadInterfaces_1.LoadValueMap {
|
|
85
92
|
deserializeKey(serializedKey) {
|
|
86
93
|
return SingleFieldValueHolder.deserialize(serializedKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleFieldHolder.js","sourceRoot":"","sources":["../../src/internal/SingleFieldHolder.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAGlC,qFAAkF;AAClF,iEAKgC;AAEhC
|
|
1
|
+
{"version":3,"file":"SingleFieldHolder.js","sourceRoot":"","sources":["../../src/internal/SingleFieldHolder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import IEntityMetricsAdapter, { EntityMetricsLoadType, EntityMetricsMutationType } from './IEntityMetricsAdapter';
|
|
2
|
+
import { EntityQueryContext } from '../EntityQueryContext';
|
|
2
3
|
import { IEntityLoadValue } from '../internal/EntityLoadInterfaces';
|
|
3
|
-
export declare const timeAndLogLoadEventAsync: (metricsAdapter: IEntityMetricsAdapter, loadType: EntityMetricsLoadType, entityClassName: string) => <TFields>(promise: Promise<readonly Readonly<TFields>[]>) => Promise<readonly Readonly<TFields>[]>;
|
|
4
|
-
export declare const timeAndLogLoadMapEventAsync: (metricsAdapter: IEntityMetricsAdapter, loadType: EntityMetricsLoadType, entityClassName: string) => <TFields extends Record<string, any>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(promise: Promise<ReadonlyMap<TLoadValue, readonly Readonly<TFields>[]>>) => Promise<ReadonlyMap<TLoadValue, readonly Readonly<TFields>[]>>;
|
|
5
|
-
export declare const timeAndLogMutationEventAsync: (metricsAdapter: IEntityMetricsAdapter, mutationType: EntityMetricsMutationType, entityClassName: string) => <T>(promise: Promise<T>) => Promise<T>;
|
|
4
|
+
export declare const timeAndLogLoadEventAsync: (metricsAdapter: IEntityMetricsAdapter, loadType: EntityMetricsLoadType, entityClassName: string, queryContext: EntityQueryContext) => <TFields>(promise: Promise<readonly Readonly<TFields>[]>) => Promise<readonly Readonly<TFields>[]>;
|
|
5
|
+
export declare const timeAndLogLoadMapEventAsync: (metricsAdapter: IEntityMetricsAdapter, loadType: EntityMetricsLoadType, entityClassName: string, queryContext: EntityQueryContext) => <TFields extends Record<string, any>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(promise: Promise<ReadonlyMap<TLoadValue, readonly Readonly<TFields>[]>>) => Promise<ReadonlyMap<TLoadValue, readonly Readonly<TFields>[]>>;
|
|
6
|
+
export declare const timeAndLogMutationEventAsync: (metricsAdapter: IEntityMetricsAdapter, mutationType: EntityMetricsMutationType, entityClassName: string, queryContext: EntityQueryContext) => <T>(promise: Promise<T>) => Promise<T>;
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.timeAndLogMutationEventAsync = exports.timeAndLogLoadMapEventAsync = exports.timeAndLogLoadEventAsync = void 0;
|
|
4
4
|
const maps_1 = require("../utils/collections/maps");
|
|
5
|
-
const timeAndLogLoadEventAsync = (metricsAdapter, loadType, entityClassName) => async (promise) => {
|
|
5
|
+
const timeAndLogLoadEventAsync = (metricsAdapter, loadType, entityClassName, queryContext) => async (promise) => {
|
|
6
6
|
const startTime = Date.now();
|
|
7
7
|
const result = await promise;
|
|
8
8
|
const endTime = Date.now();
|
|
9
9
|
metricsAdapter.logDataManagerLoadEvent({
|
|
10
10
|
type: loadType,
|
|
11
|
+
isInTransaction: queryContext.isInTransaction(),
|
|
11
12
|
entityClassName,
|
|
12
13
|
duration: endTime - startTime,
|
|
13
14
|
count: result.length,
|
|
@@ -15,13 +16,14 @@ const timeAndLogLoadEventAsync = (metricsAdapter, loadType, entityClassName) =>
|
|
|
15
16
|
return result;
|
|
16
17
|
};
|
|
17
18
|
exports.timeAndLogLoadEventAsync = timeAndLogLoadEventAsync;
|
|
18
|
-
const timeAndLogLoadMapEventAsync = (metricsAdapter, loadType, entityClassName) => async (promise) => {
|
|
19
|
+
const timeAndLogLoadMapEventAsync = (metricsAdapter, loadType, entityClassName, queryContext) => async (promise) => {
|
|
19
20
|
const startTime = Date.now();
|
|
20
21
|
const result = await promise;
|
|
21
22
|
const endTime = Date.now();
|
|
22
23
|
const count = (0, maps_1.reduceMap)(result, (acc, v) => acc + v.length, 0);
|
|
23
24
|
metricsAdapter.logDataManagerLoadEvent({
|
|
24
25
|
type: loadType,
|
|
26
|
+
isInTransaction: queryContext.isInTransaction(),
|
|
25
27
|
entityClassName,
|
|
26
28
|
duration: endTime - startTime,
|
|
27
29
|
count,
|
|
@@ -29,12 +31,13 @@ const timeAndLogLoadMapEventAsync = (metricsAdapter, loadType, entityClassName)
|
|
|
29
31
|
return result;
|
|
30
32
|
};
|
|
31
33
|
exports.timeAndLogLoadMapEventAsync = timeAndLogLoadMapEventAsync;
|
|
32
|
-
const timeAndLogMutationEventAsync = (metricsAdapter, mutationType, entityClassName) => async (promise) => {
|
|
34
|
+
const timeAndLogMutationEventAsync = (metricsAdapter, mutationType, entityClassName, queryContext) => async (promise) => {
|
|
33
35
|
const startTime = Date.now();
|
|
34
36
|
const result = await promise;
|
|
35
37
|
const endTime = Date.now();
|
|
36
38
|
metricsAdapter.logMutatorMutationEvent({
|
|
37
39
|
type: mutationType,
|
|
40
|
+
isInTransaction: queryContext.isInTransaction(),
|
|
38
41
|
entityClassName,
|
|
39
42
|
duration: endTime - startTime,
|
|
40
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMetricsUtils.js","sourceRoot":"","sources":["../../src/metrics/EntityMetricsUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"EntityMetricsUtils.js","sourceRoot":"","sources":["../../src/metrics/EntityMetricsUtils.ts"],"names":[],"mappings":";;;AAMA,oDAAsD;AAE/C,MAAM,wBAAwB,GACnC,CACE,cAAqC,EACrC,QAA+B,EAC/B,eAAuB,EACvB,YAAgC,EAChC,EAAE,CACJ,KAAK,EAAW,OAA8C,EAAE,EAAE;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,cAAc,CAAC,uBAAuB,CAAC;QACrC,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE;QAC/C,eAAe;QACf,QAAQ,EAAE,OAAO,GAAG,SAAS;QAC7B,KAAK,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AArBS,QAAA,wBAAwB,4BAqBjC;AAEG,MAAM,2BAA2B,GACtC,CACE,cAAqC,EACrC,QAA+B,EAC/B,eAAuB,EACvB,YAAgC,EAChC,EAAE,CACJ,KAAK,EAKH,OAAuE,EACvE,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE/D,cAAc,CAAC,uBAAuB,CAAC;QACrC,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE;QAC/C,eAAe;QACf,QAAQ,EAAE,OAAO,GAAG,SAAS;QAC7B,KAAK;KACN,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA7BS,QAAA,2BAA2B,+BA6BpC;AAEG,MAAM,4BAA4B,GACvC,CACE,cAAqC,EACrC,YAAuC,EACvC,eAAuB,EACvB,YAAgC,EAChC,EAAE,CACJ,KAAK,EAAK,OAAmB,EAAE,EAAE;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,cAAc,CAAC,uBAAuB,CAAC;QACrC,IAAI,EAAE,YAAY;QAClB,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE;QAC/C,eAAe;QACf,QAAQ,EAAE,OAAO,GAAG,SAAS;KAC9B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AApBS,QAAA,4BAA4B,gCAoBrC"}
|