UNPKG

@orbit/record-cache

Version:

Orbit base classes used to access and maintain a set of records.

34 lines 7.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AsyncSchemaConsistencyProcessor = void 0; const async_operation_processor_1 = require("../async-operation-processor"); const schema_consistency_utils_1 = require("./utils/schema-consistency-utils"); /** * An operation processor that ensures that a cache's data is consistent with * its associated schema. This includes maintenance of inverse and dependent * relationships. */ class AsyncSchemaConsistencyProcessor extends async_operation_processor_1.AsyncOperationProcessor { async after(operation) { switch (operation.op) { case 'addRecord': return (0, schema_consistency_utils_1.recordAdded)(this.accessor.schema, operation.record); case 'addToRelatedRecords': return (0, schema_consistency_utils_1.relatedRecordAdded)(this.accessor.schema, operation.record, operation.relationship, operation.relatedRecord); case 'replaceRelatedRecord': return (0, schema_consistency_utils_1.relatedRecordReplaced)(this.accessor.schema, operation.record, operation.relationship, operation.relatedRecord, await this.accessor.getRelatedRecordAsync(operation.record, operation.relationship)); case 'replaceRelatedRecords': return (0, schema_consistency_utils_1.relatedRecordsReplaced)(this.accessor.schema, operation.record, operation.relationship, operation.relatedRecords, await this.accessor.getRelatedRecordsAsync(operation.record, operation.relationship)); case 'removeFromRelatedRecords': return (0, schema_consistency_utils_1.relatedRecordRemoved)(this.accessor.schema, operation.record, operation.relationship, operation.relatedRecord, await this.accessor.getRecordAsync(operation.relatedRecord)); case 'removeRecord': return (0, schema_consistency_utils_1.recordRemoved)(this.accessor.schema, await this.accessor.getRecordAsync(operation.record)); case 'updateRecord': return (0, schema_consistency_utils_1.recordUpdated)(this.accessor.schema, operation.record, await this.accessor.getRecordAsync(operation.record)); default: return []; } } } exports.AsyncSchemaConsistencyProcessor = AsyncSchemaConsistencyProcessor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc2NoZW1hLWNvbnNpc3RlbmN5LXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVyYXRpb24tcHJvY2Vzc29ycy9hc3luYy1zY2hlbWEtY29uc2lzdGVuY3ktcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDRFQUF1RTtBQUN2RSwrRUFRMEM7QUFFMUM7Ozs7R0FJRztBQUNILE1BQWEsK0JBQWdDLFNBQVEsbURBQXVCO0lBQzFFLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBMEI7UUFDcEMsUUFBUSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQ3BCLEtBQUssV0FBVztnQkFDZCxPQUFPLElBQUEsc0NBQVcsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFN0QsS0FBSyxxQkFBcUI7Z0JBQ3hCLE9BQU8sSUFBQSw2Q0FBa0IsRUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQ3BCLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLFNBQVMsQ0FBQyxhQUFhLENBQ3hCLENBQUM7WUFFSixLQUFLLHNCQUFzQjtnQkFDekIsT0FBTyxJQUFBLGdEQUFxQixFQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsU0FBUyxDQUFDLE1BQU0sRUFDaEIsU0FBUyxDQUFDLFlBQVksRUFDdEIsU0FBUyxDQUFDLGFBQWEsRUFDdkIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUN2QyxTQUFTLENBQUMsTUFBTSxFQUNoQixTQUFTLENBQUMsWUFBWSxDQUN2QixDQUNGLENBQUM7WUFFSixLQUFLLHVCQUF1QjtnQkFDMUIsT0FBTyxJQUFBLGlEQUFzQixFQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsU0FBUyxDQUFDLE1BQU0sRUFDaEIsU0FBUyxDQUFDLFlBQVksRUFDdEIsU0FBUyxDQUFDLGNBQWMsRUFDeEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUN4QyxTQUFTLENBQUMsTUFBTSxFQUNoQixTQUFTLENBQUMsWUFBWSxDQUN2QixDQUNGLENBQUM7WUFFSixLQUFLLDBCQUEwQjtnQkFDN0IsT0FBTyxJQUFBLCtDQUFvQixFQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsU0FBUyxDQUFDLE1BQU0sRUFDaEIsU0FBUyxDQUFDLFlBQVksRUFDdEIsU0FBUyxDQUFDLGFBQWEsRUFDdkIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQzVELENBQUM7WUFFSixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sSUFBQSx3Q0FBYSxFQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQ3JELENBQUM7WUFFSixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sSUFBQSx3Q0FBYSxFQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDcEIsU0FBUyxDQUFDLE1BQU0sRUFDaEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQ3JELENBQUM7WUFFSjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUNGO0FBaEVELDBFQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY29yZE9wZXJhdGlvbiB9IGZyb20gJ0BvcmJpdC9yZWNvcmRzJztcbmltcG9ydCB7IEFzeW5jT3BlcmF0aW9uUHJvY2Vzc29yIH0gZnJvbSAnLi4vYXN5bmMtb3BlcmF0aW9uLXByb2Nlc3Nvcic7XG5pbXBvcnQge1xuICByZWNvcmRBZGRlZCxcbiAgcmVsYXRlZFJlY29yZEFkZGVkLFxuICByZWxhdGVkUmVjb3JkUmVtb3ZlZCxcbiAgcmVsYXRlZFJlY29yZFJlcGxhY2VkLFxuICByZWxhdGVkUmVjb3Jkc1JlcGxhY2VkLFxuICByZWNvcmRSZW1vdmVkLFxuICByZWNvcmRVcGRhdGVkXG59IGZyb20gJy4vdXRpbHMvc2NoZW1hLWNvbnNpc3RlbmN5LXV0aWxzJztcblxuLyoqXG4gKiBBbiBvcGVyYXRpb24gcHJvY2Vzc29yIHRoYXQgZW5zdXJlcyB0aGF0IGEgY2FjaGUncyBkYXRhIGlzIGNvbnNpc3RlbnQgd2l0aFxuICogaXRzIGFzc29jaWF0ZWQgc2NoZW1hLiBUaGlzIGluY2x1ZGVzIG1haW50ZW5hbmNlIG9mIGludmVyc2UgYW5kIGRlcGVuZGVudFxuICogcmVsYXRpb25zaGlwcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzeW5jU2NoZW1hQ29uc2lzdGVuY3lQcm9jZXNzb3IgZXh0ZW5kcyBBc3luY09wZXJhdGlvblByb2Nlc3NvciB7XG4gIGFzeW5jIGFmdGVyKG9wZXJhdGlvbjogUmVjb3JkT3BlcmF0aW9uKTogUHJvbWlzZTxSZWNvcmRPcGVyYXRpb25bXT4ge1xuICAgIHN3aXRjaCAob3BlcmF0aW9uLm9wKSB7XG4gICAgICBjYXNlICdhZGRSZWNvcmQnOlxuICAgICAgICByZXR1cm4gcmVjb3JkQWRkZWQodGhpcy5hY2Nlc3Nvci5zY2hlbWEsIG9wZXJhdGlvbi5yZWNvcmQpO1xuXG4gICAgICBjYXNlICdhZGRUb1JlbGF0ZWRSZWNvcmRzJzpcbiAgICAgICAgcmV0dXJuIHJlbGF0ZWRSZWNvcmRBZGRlZChcbiAgICAgICAgICB0aGlzLmFjY2Vzc29yLnNjaGVtYSxcbiAgICAgICAgICBvcGVyYXRpb24ucmVjb3JkLFxuICAgICAgICAgIG9wZXJhdGlvbi5yZWxhdGlvbnNoaXAsXG4gICAgICAgICAgb3BlcmF0aW9uLnJlbGF0ZWRSZWNvcmRcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSAncmVwbGFjZVJlbGF0ZWRSZWNvcmQnOlxuICAgICAgICByZXR1cm4gcmVsYXRlZFJlY29yZFJlcGxhY2VkKFxuICAgICAgICAgIHRoaXMuYWNjZXNzb3Iuc2NoZW1hLFxuICAgICAgICAgIG9wZXJhdGlvbi5yZWNvcmQsXG4gICAgICAgICAgb3BlcmF0aW9uLnJlbGF0aW9uc2hpcCxcbiAgICAgICAgICBvcGVyYXRpb24ucmVsYXRlZFJlY29yZCxcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjY2Vzc29yLmdldFJlbGF0ZWRSZWNvcmRBc3luYyhcbiAgICAgICAgICAgIG9wZXJhdGlvbi5yZWNvcmQsXG4gICAgICAgICAgICBvcGVyYXRpb24ucmVsYXRpb25zaGlwXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICBjYXNlICdyZXBsYWNlUmVsYXRlZFJlY29yZHMnOlxuICAgICAgICByZXR1cm4gcmVsYXRlZFJlY29yZHNSZXBsYWNlZChcbiAgICAgICAgICB0aGlzLmFjY2Vzc29yLnNjaGVtYSxcbiAgICAgICAgICBvcGVyYXRpb24ucmVjb3JkLFxuICAgICAgICAgIG9wZXJhdGlvbi5yZWxhdGlvbnNoaXAsXG4gICAgICAgICAgb3BlcmF0aW9uLnJlbGF0ZWRSZWNvcmRzLFxuICAgICAgICAgIGF3YWl0IHRoaXMuYWNjZXNzb3IuZ2V0UmVsYXRlZFJlY29yZHNBc3luYyhcbiAgICAgICAgICAgIG9wZXJhdGlvbi5yZWNvcmQsXG4gICAgICAgICAgICBvcGVyYXRpb24ucmVsYXRpb25zaGlwXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICBjYXNlICdyZW1vdmVGcm9tUmVsYXRlZFJlY29yZHMnOlxuICAgICAgICByZXR1cm4gcmVsYXRlZFJlY29yZFJlbW92ZWQoXG4gICAgICAgICAgdGhpcy5hY2Nlc3Nvci5zY2hlbWEsXG4gICAgICAgICAgb3BlcmF0aW9uLnJlY29yZCxcbiAgICAgICAgICBvcGVyYXRpb24ucmVsYXRpb25zaGlwLFxuICAgICAgICAgIG9wZXJhdGlvbi5yZWxhdGVkUmVjb3JkLFxuICAgICAgICAgIGF3YWl0IHRoaXMuYWNjZXNzb3IuZ2V0UmVjb3JkQXN5bmMob3BlcmF0aW9uLnJlbGF0ZWRSZWNvcmQpXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgJ3JlbW92ZVJlY29yZCc6XG4gICAgICAgIHJldHVybiByZWNvcmRSZW1vdmVkKFxuICAgICAgICAgIHRoaXMuYWNjZXNzb3Iuc2NoZW1hLFxuICAgICAgICAgIGF3YWl0IHRoaXMuYWNjZXNzb3IuZ2V0UmVjb3JkQXN5bmMob3BlcmF0aW9uLnJlY29yZClcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSAndXBkYXRlUmVjb3JkJzpcbiAgICAgICAgcmV0dXJuIHJlY29yZFVwZGF0ZWQoXG4gICAgICAgICAgdGhpcy5hY2Nlc3Nvci5zY2hlbWEsXG4gICAgICAgICAgb3BlcmF0aW9uLnJlY29yZCxcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjY2Vzc29yLmdldFJlY29yZEFzeW5jKG9wZXJhdGlvbi5yZWNvcmQpXG4gICAgICAgICk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==