@expo/entity 0.19.0 → 0.23.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/EntityCacheAdapter.d.ts +2 -9
- package/build/EntityCacheAdapter.js.map +1 -1
- package/build/EntityMutationInfo.d.ts +26 -0
- package/build/EntityMutationInfo.js +10 -0
- package/build/EntityMutationInfo.js.map +1 -0
- package/build/EntityMutationTriggerConfiguration.d.ts +3 -3
- package/build/EntityMutationValidator.d.ts +2 -2
- package/build/EntityMutationValidator.js.map +1 -1
- package/build/EntityMutator.d.ts +4 -15
- package/build/EntityMutator.js +45 -41
- package/build/EntityMutator.js.map +1 -1
- package/build/EntityQueryContext.d.ts +24 -0
- package/build/EntityQueryContext.js +43 -0
- package/build/EntityQueryContext.js.map +1 -1
- package/build/EntityQueryContextProvider.js +1 -0
- package/build/EntityQueryContextProvider.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +99 -3
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +1 -0
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +81 -0
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -0
- package/build/__tests__/EntityMutator-test.js +9 -7
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityQueryContext-test.d.ts +1 -0
- package/build/__tests__/EntityQueryContext-test.js +56 -0
- package/build/__tests__/EntityQueryContext-test.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.d.ts +2 -3
- package/build/internal/ReadThroughEntityCache.js +2 -6
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -32
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/utils/testing/StubCacheAdapter.d.ts +6 -9
- package/build/utils/testing/StubCacheAdapter.js +0 -6
- package/build/utils/testing/StubCacheAdapter.js.map +1 -1
- package/package.json +1 -1
- package/src/EntityCacheAdapter.ts +2 -10
- package/src/EntityMutationInfo.ts +47 -0
- package/src/EntityMutationTriggerConfiguration.ts +3 -3
- package/src/EntityMutationValidator.ts +8 -2
- package/src/EntityMutator.ts +81 -68
- package/src/EntityQueryContext.ts +54 -0
- package/src/EntityQueryContextProvider.ts +1 -0
- package/src/__tests__/EntityEdges-test.ts +163 -9
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +105 -0
- package/src/__tests__/EntityMutator-test.ts +24 -6
- package/src/__tests__/EntityQueryContext-test.ts +82 -0
- package/src/index.ts +1 -0
- package/src/internal/ReadThroughEntityCache.ts +6 -28
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +0 -44
- package/src/utils/testing/StubCacheAdapter.ts +11 -17
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import EntityConfiguration from './EntityConfiguration';
|
|
2
|
-
import { FieldTransformerMap } from './internal/EntityFieldTransformationUtils';
|
|
3
2
|
import { CacheLoadResult } from './internal/ReadThroughEntityCache';
|
|
4
3
|
/**
|
|
5
4
|
* A cache adapter is an interface by which objects can be
|
|
@@ -8,25 +7,19 @@ import { CacheLoadResult } from './internal/ReadThroughEntityCache';
|
|
|
8
7
|
export default abstract class EntityCacheAdapter<TFields> {
|
|
9
8
|
protected readonly entityConfiguration: EntityConfiguration<TFields>;
|
|
10
9
|
constructor(entityConfiguration: EntityConfiguration<TFields>);
|
|
11
|
-
/**
|
|
12
|
-
* Transformer definitions for field types. Used to modify values as they are read from or written to
|
|
13
|
-
* the cache. Override in concrete subclasses to change transformation behavior.
|
|
14
|
-
* If a field type is not present in the map, then fields of that type will not be transformed.
|
|
15
|
-
*/
|
|
16
|
-
abstract getFieldTransformerMap(): FieldTransformerMap;
|
|
17
10
|
/**
|
|
18
11
|
* Load many objects from cache.
|
|
19
12
|
* @param fieldName - object field being queried
|
|
20
13
|
* @param fieldValues - fieldName field values being queried
|
|
21
14
|
* @returns map from all field values to a CacheLoadResult for each input value
|
|
22
15
|
*/
|
|
23
|
-
abstract loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult
|
|
16
|
+
abstract loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
|
|
24
17
|
/**
|
|
25
18
|
* Cache many objects fetched from the DB.
|
|
26
19
|
* @param fieldName - object field being queried
|
|
27
20
|
* @param objectMap - map from field value to object to cache
|
|
28
21
|
*/
|
|
29
|
-
abstract cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>,
|
|
22
|
+
abstract cacheManyAsync<N extends keyof TFields>(fieldName: N, objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
|
|
30
23
|
/**
|
|
31
24
|
* Negatively cache objects that could not be found in the cache or DB.
|
|
32
25
|
* @param fieldName - object field being queried
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityCacheAdapter.js","sourceRoot":"","sources":["../src/EntityCacheAdapter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"EntityCacheAdapter.js","sourceRoot":"","sources":["../src/EntityCacheAdapter.ts"],"names":[],"mappings":";;AAGA;;;GAGG;AACH,MAA8B,kBAAkB;IAC9C,YAA+B,mBAAiD;QAAjD,wBAAmB,GAAnB,mBAAmB,CAA8B;IAAG,CAAC;CA2CrF;AA5CD,qCA4CC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Entity from './Entity';
|
|
2
|
+
import ViewerContext from './ViewerContext';
|
|
3
|
+
export declare enum EntityMutationType {
|
|
4
|
+
CREATE = 0,
|
|
5
|
+
UPDATE = 1,
|
|
6
|
+
DELETE = 2
|
|
7
|
+
}
|
|
8
|
+
export declare type EntityValidatorMutationInfo<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> = {
|
|
9
|
+
type: EntityMutationType.CREATE;
|
|
10
|
+
} | {
|
|
11
|
+
type: EntityMutationType.UPDATE;
|
|
12
|
+
previousValue: TEntity;
|
|
13
|
+
};
|
|
14
|
+
export declare type EntityMutationTriggerDeleteCascadeInfo = {
|
|
15
|
+
entity: Entity<any, any, any, any>;
|
|
16
|
+
cascadingDeleteCause: EntityMutationTriggerDeleteCascadeInfo | null;
|
|
17
|
+
};
|
|
18
|
+
export declare type EntityTriggerMutationInfo<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> = {
|
|
19
|
+
type: EntityMutationType.CREATE;
|
|
20
|
+
} | {
|
|
21
|
+
type: EntityMutationType.UPDATE;
|
|
22
|
+
previousValue: TEntity;
|
|
23
|
+
} | {
|
|
24
|
+
type: EntityMutationType.DELETE;
|
|
25
|
+
cascadingDeleteCause: EntityMutationTriggerDeleteCascadeInfo | null;
|
|
26
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityMutationType = void 0;
|
|
4
|
+
var EntityMutationType;
|
|
5
|
+
(function (EntityMutationType) {
|
|
6
|
+
EntityMutationType[EntityMutationType["CREATE"] = 0] = "CREATE";
|
|
7
|
+
EntityMutationType[EntityMutationType["UPDATE"] = 1] = "UPDATE";
|
|
8
|
+
EntityMutationType[EntityMutationType["DELETE"] = 2] = "DELETE";
|
|
9
|
+
})(EntityMutationType = exports.EntityMutationType || (exports.EntityMutationType = {}));
|
|
10
|
+
//# sourceMappingURL=EntityMutationInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityMutationInfo.js","sourceRoot":"","sources":["../src/EntityMutationInfo.ts"],"names":[],"mappings":";;;AAGA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,+DAAM,CAAA;IACN,+DAAM,CAAA;IACN,+DAAM,CAAA;AACR,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EntityTriggerMutationInfo } from './EntityMutationInfo';
|
|
2
2
|
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
3
3
|
import ReadonlyEntity from './ReadonlyEntity';
|
|
4
4
|
import ViewerContext from './ViewerContext';
|
|
@@ -52,12 +52,12 @@ export default interface EntityMutationTriggerConfiguration<TFields, TID extends
|
|
|
52
52
|
* the transaction if a transaction is supplied.
|
|
53
53
|
*/
|
|
54
54
|
export declare abstract class EntityMutationTrigger<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
55
|
-
abstract executeAsync(viewerContext: TViewerContext, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo:
|
|
55
|
+
abstract executeAsync(viewerContext: TViewerContext, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityTriggerMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* A non-transactional trigger is like a {@link EntityMutationTrigger} but used for afterCommit triggers
|
|
59
59
|
* since they explicitly occur outside of the transaction.
|
|
60
60
|
*/
|
|
61
61
|
export declare abstract class EntityNonTransactionalMutationTrigger<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
62
|
-
abstract executeAsync(viewerContext: TViewerContext, entity: TEntity, mutationInfo:
|
|
62
|
+
abstract executeAsync(viewerContext: TViewerContext, entity: TEntity, mutationInfo: EntityTriggerMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
63
63
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EntityValidatorMutationInfo } from './EntityMutationInfo';
|
|
2
2
|
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
3
3
|
import ReadonlyEntity from './ReadonlyEntity';
|
|
4
4
|
import ViewerContext from './ViewerContext';
|
|
@@ -7,5 +7,5 @@ import ViewerContext from './ViewerContext';
|
|
|
7
7
|
* same transaction as the mutation itself before creating or updating an entity.
|
|
8
8
|
*/
|
|
9
9
|
export default abstract class EntityMutationValidator<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
10
|
-
abstract executeAsync(viewerContext: TViewerContext, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo:
|
|
10
|
+
abstract executeAsync(viewerContext: TViewerContext, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityValidatorMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMutationValidator.js","sourceRoot":"","sources":["../src/EntityMutationValidator.ts"],"names":[],"mappings":";;AAKA;;;GAGG;AACH,MAA8B,uBAAuB;
|
|
1
|
+
{"version":3,"file":"EntityMutationValidator.js","sourceRoot":"","sources":["../src/EntityMutationValidator.ts"],"names":[],"mappings":";;AAKA;;;GAGG;AACH,MAA8B,uBAAuB;CAmBpD;AAnBD,0CAmBC"}
|
package/build/EntityMutator.d.ts
CHANGED
|
@@ -3,25 +3,13 @@ import Entity, { IEntityClass } from './Entity';
|
|
|
3
3
|
import EntityConfiguration from './EntityConfiguration';
|
|
4
4
|
import EntityDatabaseAdapter from './EntityDatabaseAdapter';
|
|
5
5
|
import EntityLoaderFactory from './EntityLoaderFactory';
|
|
6
|
+
import { EntityValidatorMutationInfo, EntityTriggerMutationInfo } from './EntityMutationInfo';
|
|
6
7
|
import EntityMutationTriggerConfiguration, { EntityMutationTrigger, EntityNonTransactionalMutationTrigger } from './EntityMutationTriggerConfiguration';
|
|
7
8
|
import EntityMutationValidator from './EntityMutationValidator';
|
|
8
9
|
import EntityPrivacyPolicy from './EntityPrivacyPolicy';
|
|
9
10
|
import { EntityQueryContext, EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
10
11
|
import ViewerContext from './ViewerContext';
|
|
11
12
|
import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
12
|
-
export declare enum EntityMutationType {
|
|
13
|
-
CREATE = 0,
|
|
14
|
-
UPDATE = 1,
|
|
15
|
-
DELETE = 2
|
|
16
|
-
}
|
|
17
|
-
export declare type EntityMutationInfo<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> = {
|
|
18
|
-
type: EntityMutationType.CREATE;
|
|
19
|
-
} | {
|
|
20
|
-
type: EntityMutationType.UPDATE;
|
|
21
|
-
previousValue: TEntity;
|
|
22
|
-
} | {
|
|
23
|
-
type: EntityMutationType.DELETE;
|
|
24
|
-
};
|
|
25
13
|
declare abstract class BaseMutator<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TID, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
26
14
|
protected readonly viewerContext: TViewerContext;
|
|
27
15
|
protected readonly queryContext: EntityQueryContext;
|
|
@@ -35,8 +23,9 @@ declare abstract class BaseMutator<TFields, TID extends NonNullable<TFields[TSel
|
|
|
35
23
|
protected readonly metricsAdapter: IEntityMetricsAdapter;
|
|
36
24
|
constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter);
|
|
37
25
|
protected validateFields(fields: Partial<TFields>): void;
|
|
38
|
-
protected
|
|
39
|
-
protected
|
|
26
|
+
protected executeMutationValidatorsAsync(validators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityValidatorMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
27
|
+
protected executeMutationTriggersAsync(triggers: EntityMutationTrigger<TFields, TID, TViewerContext, TEntity, TSelectedFields>[] | undefined, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityTriggerMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
28
|
+
protected executeNonTransactionalMutationTriggersAsync(triggers: EntityNonTransactionalMutationTrigger<TFields, TID, TViewerContext, TEntity, TSelectedFields>[] | undefined, entity: TEntity, mutationInfo: EntityTriggerMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
40
29
|
}
|
|
41
30
|
/**
|
|
42
31
|
* Mutator for creating a new entity.
|
package/build/EntityMutator.js
CHANGED
|
@@ -3,20 +3,15 @@ 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.DeleteMutator = exports.UpdateMutator = exports.CreateMutator =
|
|
6
|
+
exports.DeleteMutator = exports.UpdateMutator = exports.CreateMutator = void 0;
|
|
7
7
|
const results_1 = require("@expo/results");
|
|
8
8
|
const invariant_1 = __importDefault(require("invariant"));
|
|
9
9
|
const EntityFieldDefinition_1 = require("./EntityFieldDefinition");
|
|
10
|
+
const EntityMutationInfo_1 = require("./EntityMutationInfo");
|
|
10
11
|
const EntityInvalidFieldValueError_1 = __importDefault(require("./errors/EntityInvalidFieldValueError"));
|
|
11
12
|
const EntityMetricsUtils_1 = require("./metrics/EntityMetricsUtils");
|
|
12
13
|
const IEntityMetricsAdapter_1 = require("./metrics/IEntityMetricsAdapter");
|
|
13
14
|
const maps_1 = require("./utils/collections/maps");
|
|
14
|
-
var EntityMutationType;
|
|
15
|
-
(function (EntityMutationType) {
|
|
16
|
-
EntityMutationType[EntityMutationType["CREATE"] = 0] = "CREATE";
|
|
17
|
-
EntityMutationType[EntityMutationType["UPDATE"] = 1] = "UPDATE";
|
|
18
|
-
EntityMutationType[EntityMutationType["DELETE"] = 2] = "DELETE";
|
|
19
|
-
})(EntityMutationType = exports.EntityMutationType || (exports.EntityMutationType = {}));
|
|
20
15
|
class BaseMutator {
|
|
21
16
|
constructor(viewerContext, queryContext, entityConfiguration, entityClass, privacyPolicy, mutationValidators, mutationTriggers, entityLoaderFactory, databaseAdapter, metricsAdapter) {
|
|
22
17
|
this.viewerContext = viewerContext;
|
|
@@ -41,13 +36,16 @@ class BaseMutator {
|
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
|
-
async
|
|
45
|
-
|
|
39
|
+
async executeMutationValidatorsAsync(validators, queryContext, entity, mutationInfo) {
|
|
40
|
+
await Promise.all(validators.map((validator) => validator.executeAsync(this.viewerContext, queryContext, entity, mutationInfo)));
|
|
41
|
+
}
|
|
42
|
+
async executeMutationTriggersAsync(triggers, queryContext, entity, mutationInfo) {
|
|
43
|
+
if (!triggers) {
|
|
46
44
|
return;
|
|
47
45
|
}
|
|
48
|
-
await Promise.all(
|
|
46
|
+
await Promise.all(triggers.map((trigger) => trigger.executeAsync(this.viewerContext, queryContext, entity, mutationInfo)));
|
|
49
47
|
}
|
|
50
|
-
async
|
|
48
|
+
async executeNonTransactionalMutationTriggersAsync(triggers, entity, mutationInfo) {
|
|
51
49
|
if (!triggers) {
|
|
52
50
|
return;
|
|
53
51
|
}
|
|
@@ -98,19 +96,19 @@ class CreateMutator extends BaseMutator {
|
|
|
98
96
|
if (!authorizeCreateResult.ok) {
|
|
99
97
|
return authorizeCreateResult;
|
|
100
98
|
}
|
|
101
|
-
await this.
|
|
102
|
-
await this.
|
|
103
|
-
await this.
|
|
99
|
+
await this.executeMutationValidatorsAsync(this.mutationValidators, queryContext, temporaryEntityForPrivacyCheck, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
100
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeAll, queryContext, temporaryEntityForPrivacyCheck, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
101
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeCreate, queryContext, temporaryEntityForPrivacyCheck, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
104
102
|
const insertResult = await this.databaseAdapter.insertAsync(queryContext, this.fieldsForEntity);
|
|
105
103
|
const entityLoader = this.entityLoaderFactory.forLoad(this.viewerContext, queryContext);
|
|
106
|
-
queryContext.
|
|
104
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, insertResult));
|
|
107
105
|
const unauthorizedEntityAfterInsert = new this.entityClass(this.viewerContext, insertResult);
|
|
108
106
|
const newEntity = await entityLoader
|
|
109
107
|
.enforcing()
|
|
110
108
|
.loadByIDAsync(unauthorizedEntityAfterInsert.getID());
|
|
111
|
-
await this.
|
|
112
|
-
await this.
|
|
113
|
-
queryContext.appendPostCommitCallback(this.
|
|
109
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterCreate, queryContext, newEntity, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
110
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterAll, queryContext, newEntity, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
111
|
+
queryContext.appendPostCommitCallback(this.executeNonTransactionalMutationTriggersAsync.bind(this, this.mutationTriggers.afterCommit, newEntity, { type: EntityMutationInfo_1.EntityMutationType.CREATE }));
|
|
114
112
|
return (0, results_1.result)(newEntity);
|
|
115
113
|
}
|
|
116
114
|
}
|
|
@@ -160,20 +158,20 @@ class UpdateMutator extends BaseMutator {
|
|
|
160
158
|
if (!authorizeUpdateResult.ok) {
|
|
161
159
|
return authorizeUpdateResult;
|
|
162
160
|
}
|
|
163
|
-
await this.
|
|
164
|
-
await this.
|
|
165
|
-
await this.
|
|
161
|
+
await this.executeMutationValidatorsAsync(this.mutationValidators, queryContext, entityAboutToBeUpdated, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
162
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeAll, queryContext, entityAboutToBeUpdated, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
163
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeUpdate, queryContext, entityAboutToBeUpdated, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
166
164
|
const updateResult = await this.databaseAdapter.updateAsync(queryContext, this.entityConfiguration.idField, entityAboutToBeUpdated.getID(), this.updatedFields);
|
|
167
165
|
const entityLoader = this.entityLoaderFactory.forLoad(this.viewerContext, queryContext);
|
|
168
|
-
queryContext.
|
|
169
|
-
queryContext.
|
|
166
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, this.originalEntity.getAllDatabaseFields()));
|
|
167
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, this.fieldsForEntity));
|
|
170
168
|
const unauthorizedEntityAfterUpdate = new this.entityClass(this.viewerContext, updateResult);
|
|
171
169
|
const updatedEntity = await entityLoader
|
|
172
170
|
.enforcing()
|
|
173
171
|
.loadByIDAsync(unauthorizedEntityAfterUpdate.getID());
|
|
174
|
-
await this.
|
|
175
|
-
await this.
|
|
176
|
-
queryContext.appendPostCommitCallback(this.
|
|
172
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterUpdate, queryContext, updatedEntity, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
173
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterAll, queryContext, updatedEntity, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
174
|
+
queryContext.appendPostCommitCallback(this.executeNonTransactionalMutationTriggersAsync.bind(this, this.mutationTriggers.afterCommit, updatedEntity, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity }));
|
|
177
175
|
return (0, results_1.result)(updatedEntity);
|
|
178
176
|
}
|
|
179
177
|
}
|
|
@@ -191,7 +189,7 @@ class DeleteMutator extends BaseMutator {
|
|
|
191
189
|
* @returns void result, where result error can be UnauthorizedError
|
|
192
190
|
*/
|
|
193
191
|
async deleteAsync() {
|
|
194
|
-
return await (0, EntityMetricsUtils_1.timeAndLogMutationEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.DELETE, this.entityClass.name)(this.deleteInTransactionAsync());
|
|
192
|
+
return await (0, EntityMetricsUtils_1.timeAndLogMutationEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.DELETE, this.entityClass.name)(this.deleteInTransactionAsync(new Set(), false, null));
|
|
195
193
|
}
|
|
196
194
|
/**
|
|
197
195
|
* Convenience method that throws upon delete failure.
|
|
@@ -199,25 +197,25 @@ class DeleteMutator extends BaseMutator {
|
|
|
199
197
|
async enforceDeleteAsync() {
|
|
200
198
|
return await (0, results_1.enforceAsyncResult)(this.deleteAsync());
|
|
201
199
|
}
|
|
202
|
-
async deleteInTransactionAsync(processedEntityIdentifiersFromTransitiveDeletions
|
|
203
|
-
return await this.queryContext.runInTransactionIfNotInTransactionAsync((innerQueryContext) => this.deleteInternalAsync(innerQueryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion));
|
|
200
|
+
async deleteInTransactionAsync(processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion, cascadingDeleteCause) {
|
|
201
|
+
return await this.queryContext.runInTransactionIfNotInTransactionAsync((innerQueryContext) => this.deleteInternalAsync(innerQueryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion, cascadingDeleteCause));
|
|
204
202
|
}
|
|
205
|
-
async deleteInternalAsync(queryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion) {
|
|
203
|
+
async deleteInternalAsync(queryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion, cascadingDeleteCause) {
|
|
206
204
|
const authorizeDeleteResult = await (0, results_1.asyncResult)(this.privacyPolicy.authorizeDeleteAsync(this.viewerContext, queryContext, this.entity, this.metricsAdapter));
|
|
207
205
|
if (!authorizeDeleteResult.ok) {
|
|
208
206
|
return authorizeDeleteResult;
|
|
209
207
|
}
|
|
210
|
-
await this.processEntityDeletionForInboundEdgesAsync(this.entity, queryContext, processedEntityIdentifiersFromTransitiveDeletions);
|
|
211
|
-
await this.
|
|
212
|
-
await this.
|
|
208
|
+
await this.processEntityDeletionForInboundEdgesAsync(this.entity, queryContext, processedEntityIdentifiersFromTransitiveDeletions, cascadingDeleteCause);
|
|
209
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeAll, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
210
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeDelete, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
213
211
|
if (!skipDatabaseDeletion) {
|
|
214
212
|
await this.databaseAdapter.deleteAsync(queryContext, this.entityConfiguration.idField, this.entity.getID());
|
|
215
213
|
}
|
|
216
214
|
const entityLoader = this.entityLoaderFactory.forLoad(this.viewerContext, queryContext);
|
|
217
|
-
queryContext.
|
|
218
|
-
await this.
|
|
219
|
-
await this.
|
|
220
|
-
queryContext.appendPostCommitCallback(this.
|
|
215
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, this.entity.getAllDatabaseFields()));
|
|
216
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterDelete, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
217
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterAll, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
218
|
+
queryContext.appendPostCommitCallback(this.executeNonTransactionalMutationTriggersAsync.bind(this, this.mutationTriggers.afterCommit, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause }));
|
|
221
219
|
return (0, results_1.result)();
|
|
222
220
|
}
|
|
223
221
|
/**
|
|
@@ -234,7 +232,7 @@ class DeleteMutator extends BaseMutator {
|
|
|
234
232
|
*
|
|
235
233
|
* @param entity - entity to find all references to
|
|
236
234
|
*/
|
|
237
|
-
async processEntityDeletionForInboundEdgesAsync(entity, queryContext, processedEntityIdentifiers) {
|
|
235
|
+
async processEntityDeletionForInboundEdgesAsync(entity, queryContext, processedEntityIdentifiers, cascadingDeleteCause) {
|
|
238
236
|
// prevent infinite reference cycles by keeping track of entities already processed
|
|
239
237
|
if (processedEntityIdentifiers.has(entity.getUniqueIdentifier())) {
|
|
240
238
|
return;
|
|
@@ -283,8 +281,11 @@ class DeleteMutator extends BaseMutator {
|
|
|
283
281
|
await Promise.all(inboundReferenceEntities.map((inboundReferenceEntity) => mutatorFactory
|
|
284
282
|
.forDelete(inboundReferenceEntity, queryContext)
|
|
285
283
|
.deleteInTransactionAsync(processedEntityIdentifiers,
|
|
286
|
-
/* skipDatabaseDeletion */ true // deletion is handled by DB
|
|
287
|
-
|
|
284
|
+
/* skipDatabaseDeletion */ true, // deletion is handled by DB
|
|
285
|
+
{
|
|
286
|
+
entity,
|
|
287
|
+
cascadingDeleteCause,
|
|
288
|
+
})));
|
|
288
289
|
break;
|
|
289
290
|
}
|
|
290
291
|
case EntityFieldDefinition_1.EntityEdgeDeletionBehavior.SET_NULL: {
|
|
@@ -298,7 +299,10 @@ class DeleteMutator extends BaseMutator {
|
|
|
298
299
|
await Promise.all(inboundReferenceEntities.map((inboundReferenceEntity) => mutatorFactory
|
|
299
300
|
.forDelete(inboundReferenceEntity, queryContext)
|
|
300
301
|
.deleteInTransactionAsync(processedEntityIdentifiers,
|
|
301
|
-
/* skipDatabaseDeletion */ false
|
|
302
|
+
/* skipDatabaseDeletion */ false, {
|
|
303
|
+
entity,
|
|
304
|
+
cascadingDeleteCause,
|
|
305
|
+
})));
|
|
302
306
|
}
|
|
303
307
|
}
|
|
304
308
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMutator.js","sourceRoot":"","sources":["../src/EntityMutator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityMutator.js","sourceRoot":"","sources":["../src/EntityMutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import EntityQueryContextProvider from './EntityQueryContextProvider';
|
|
2
2
|
export declare type PostCommitCallback = (...args: any) => Promise<any>;
|
|
3
|
+
export declare type PreCommitCallback = (queryContext: EntityTransactionalQueryContext, ...args: any) => Promise<any>;
|
|
3
4
|
/**
|
|
4
5
|
* Entity framework representation of transactional and non-transactional database
|
|
5
6
|
* query execution units.
|
|
@@ -21,8 +22,31 @@ export declare class EntityNonTransactionalQueryContext extends EntityQueryConte
|
|
|
21
22
|
runInTransactionIfNotInTransactionAsync<T>(transactionScope: (queryContext: EntityTransactionalQueryContext) => Promise<T>): Promise<T>;
|
|
22
23
|
}
|
|
23
24
|
export declare class EntityTransactionalQueryContext extends EntityQueryContext {
|
|
25
|
+
private readonly postCommitInvalidationCallbacks;
|
|
24
26
|
private readonly postCommitCallbacks;
|
|
27
|
+
private readonly preCommitCallbacks;
|
|
28
|
+
/**
|
|
29
|
+
* Schedule a pre-commit callback. These will be run within the transaction right before it is
|
|
30
|
+
* committed, and will be run in the order specified. Ordering of callbacks scheduled with the
|
|
31
|
+
* same value for the order parameter is undefined within that ordering group.
|
|
32
|
+
* @param callback - callback to schedule
|
|
33
|
+
* @param order - order in which this should be run relative to other scheduled pre-commit callbacks,
|
|
34
|
+
* with higher numbers running later than lower numbers.
|
|
35
|
+
*/
|
|
36
|
+
appendPreCommitCallback(callback: PreCommitCallback, order: number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Schedule a post-commit cache invalidation callback. These are run before normal
|
|
39
|
+
* post-commit callbacks in order to have cache consistency in normal post-commit callbacks.
|
|
40
|
+
* @param callback - callback to schedule
|
|
41
|
+
*/
|
|
42
|
+
appendPostCommitInvalidationCallback(callback: PostCommitCallback): void;
|
|
43
|
+
/**
|
|
44
|
+
* Schedule a post-commit callback. These will be run after the transaction has
|
|
45
|
+
* been committed.
|
|
46
|
+
* @param callback - callback to schedule
|
|
47
|
+
*/
|
|
25
48
|
appendPostCommitCallback(callback: PostCommitCallback): void;
|
|
49
|
+
runPreCommitCallbacksAsync(): Promise<void>;
|
|
26
50
|
runPostCommitCallbacksAsync(): Promise<void>;
|
|
27
51
|
isInTransaction(): boolean;
|
|
28
52
|
runInTransactionIfNotInTransactionAsync<T>(transactionScope: (queryContext: EntityTransactionalQueryContext) => Promise<T>): Promise<T>;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.EntityTransactionalQueryContext = exports.EntityNonTransactionalQueryContext = exports.EntityQueryContext = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
4
8
|
/**
|
|
5
9
|
* Entity framework representation of transactional and non-transactional database
|
|
6
10
|
* query execution units.
|
|
@@ -33,12 +37,51 @@ exports.EntityNonTransactionalQueryContext = EntityNonTransactionalQueryContext;
|
|
|
33
37
|
class EntityTransactionalQueryContext extends EntityQueryContext {
|
|
34
38
|
constructor() {
|
|
35
39
|
super(...arguments);
|
|
40
|
+
this.postCommitInvalidationCallbacks = [];
|
|
36
41
|
this.postCommitCallbacks = [];
|
|
42
|
+
this.preCommitCallbacks = [];
|
|
37
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Schedule a pre-commit callback. These will be run within the transaction right before it is
|
|
46
|
+
* committed, and will be run in the order specified. Ordering of callbacks scheduled with the
|
|
47
|
+
* same value for the order parameter is undefined within that ordering group.
|
|
48
|
+
* @param callback - callback to schedule
|
|
49
|
+
* @param order - order in which this should be run relative to other scheduled pre-commit callbacks,
|
|
50
|
+
* with higher numbers running later than lower numbers.
|
|
51
|
+
*/
|
|
52
|
+
appendPreCommitCallback(callback, order) {
|
|
53
|
+
(0, assert_1.default)(order >= Number.MIN_SAFE_INTEGER && order <= Number.MAX_SAFE_INTEGER, `Invalid order specified: ${order}`);
|
|
54
|
+
this.preCommitCallbacks.push({ callback, order });
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Schedule a post-commit cache invalidation callback. These are run before normal
|
|
58
|
+
* post-commit callbacks in order to have cache consistency in normal post-commit callbacks.
|
|
59
|
+
* @param callback - callback to schedule
|
|
60
|
+
*/
|
|
61
|
+
appendPostCommitInvalidationCallback(callback) {
|
|
62
|
+
this.postCommitInvalidationCallbacks.push(callback);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Schedule a post-commit callback. These will be run after the transaction has
|
|
66
|
+
* been committed.
|
|
67
|
+
* @param callback - callback to schedule
|
|
68
|
+
*/
|
|
38
69
|
appendPostCommitCallback(callback) {
|
|
39
70
|
this.postCommitCallbacks.push(callback);
|
|
40
71
|
}
|
|
72
|
+
async runPreCommitCallbacksAsync() {
|
|
73
|
+
const callbacks = [...this.preCommitCallbacks]
|
|
74
|
+
.sort((a, b) => a.order - b.order)
|
|
75
|
+
.map((c) => c.callback);
|
|
76
|
+
this.preCommitCallbacks.length = 0;
|
|
77
|
+
for (const callback of callbacks) {
|
|
78
|
+
await callback(this);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
41
81
|
async runPostCommitCallbacksAsync() {
|
|
82
|
+
const invalidationCallbacks = [...this.postCommitInvalidationCallbacks];
|
|
83
|
+
this.postCommitInvalidationCallbacks.length = 0;
|
|
84
|
+
await Promise.all(invalidationCallbacks.map((callback) => callback()));
|
|
42
85
|
const callbacks = [...this.postCommitCallbacks];
|
|
43
86
|
this.postCommitCallbacks.length = 0;
|
|
44
87
|
await Promise.all(callbacks.map((callback) => callback()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityQueryContext.js","sourceRoot":"","sources":["../src/EntityQueryContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntityQueryContext.js","sourceRoot":"","sources":["../src/EntityQueryContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ class EntityQueryContextProvider {
|
|
|
19
19
|
const [returnedValue, queryContext] = await this.createTransactionRunner()(async (queryInterface) => {
|
|
20
20
|
const queryContext = new EntityQueryContext_1.EntityTransactionalQueryContext(queryInterface);
|
|
21
21
|
const result = await transactionScope(queryContext);
|
|
22
|
+
await queryContext.runPreCommitCallbacksAsync();
|
|
22
23
|
return [result, queryContext];
|
|
23
24
|
});
|
|
24
25
|
await queryContext.runPostCommitCallbacksAsync();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityQueryContextProvider.js","sourceRoot":"","sources":["../src/EntityQueryContextProvider.ts"],"names":[],"mappings":";;AAAA,6DAG8B;AAE9B;;GAEG;AACH,MAA8B,0BAA0B;IACtD;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,uDAAkC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAcD;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CACzB,gBAA+E;QAE/E,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAErE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAI,oDAA+B,CAAC,cAAc,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACpD,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,2BAA2B,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"EntityQueryContextProvider.js","sourceRoot":"","sources":["../src/EntityQueryContextProvider.ts"],"names":[],"mappings":";;AAAA,6DAG8B;AAE9B;;GAEG;AACH,MAA8B,0BAA0B;IACtD;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,uDAAkC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAcD;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CACzB,gBAA+E;QAE/E,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAErE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAI,oDAA+B,CAAC,cAAc,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,YAAY,CAAC,0BAA0B,EAAE,CAAC;YAChD,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,2BAA2B,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAtCD,6CAsCC"}
|