UNPKG

@orbit/record-cache

Version:

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

73 lines 6.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SyncOperationProcessor = void 0; /** * Operation processors are used to identify operations that should be performed * together to ensure that a `Cache` or other container of data remains * consistent and correct. * * `OperationProcessor` is an abstract base class to be extended by specific * operation processors. */ class SyncOperationProcessor { constructor(accessor) { this._accessor = accessor; } /** * The `SyncRecordAccessor` that is monitored. */ get accessor() { return this._accessor; } /** * Called when all the data in a cache has been reset. * * If `base` is included, the cache is being reset to match a base cache. */ reset(base) { } /** * Allow the processor to perform an upgrade as part of a cache upgrade. */ upgrade() { } /** * Validates an operation before processing it. */ validate(operation) { } /** * Called before an `operation` has been applied. * * Returns an array of operations to be applied **BEFORE** the `operation` * itself is applied. */ before(operation) { return []; } /** * Called before an `operation` has been applied. * * Returns an array of operations to be applied **AFTER** the `operation` * has been applied successfully. */ after(operation) { return []; } /** * Called immediately after an `operation` has been applied and before the * `patch` event has been emitted (i.e. before any listeners have been * notified that the operation was applied). * * No operations may be returned. */ immediate(operation) { } /** * Called after an `operation` _and_ any related operations have been applied. * * Returns an array of operations to be applied **AFTER** the `operation` * itself and any operations returned from the `after` hook have been applied. */ finally(operation) { return []; } } exports.SyncOperationProcessor = SyncOperationProcessor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1vcGVyYXRpb24tcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmMtb3BlcmF0aW9uLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQTs7Ozs7OztHQU9HO0FBQ0gsTUFBc0Isc0JBQXNCO0lBVTFDLFlBQVksUUFBNEI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQVREOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFNRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLElBQXlCLElBQVMsQ0FBQztJQUV6Qzs7T0FFRztJQUNILE9BQU8sS0FBVSxDQUFDO0lBRWxCOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFNBQTBCLElBQVMsQ0FBQztJQUU3Qzs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxTQUEwQjtRQUMvQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxTQUEwQjtRQUM5QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsU0FBMEIsSUFBUyxDQUFDO0lBRTlDOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLFNBQTBCO1FBQ2hDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBckVELHdEQXFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHsgU3luY1JlY29yZEFjY2Vzc29yIH0gZnJvbSAnLi9yZWNvcmQtYWNjZXNzb3InO1xuaW1wb3J0IHsgUmVjb3JkT3BlcmF0aW9uIH0gZnJvbSAnQG9yYml0L3JlY29yZHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN5bmNPcGVyYXRpb25Qcm9jZXNzb3JDbGFzcyB7XG4gIG5ldyAoY2FjaGU6IFN5bmNSZWNvcmRBY2Nlc3Nvcik6IFN5bmNPcGVyYXRpb25Qcm9jZXNzb3I7XG59XG5cbi8qKlxuICogT3BlcmF0aW9uIHByb2Nlc3NvcnMgYXJlIHVzZWQgdG8gaWRlbnRpZnkgb3BlcmF0aW9ucyB0aGF0IHNob3VsZCBiZSBwZXJmb3JtZWRcbiAqIHRvZ2V0aGVyIHRvIGVuc3VyZSB0aGF0IGEgYENhY2hlYCBvciBvdGhlciBjb250YWluZXIgb2YgZGF0YSByZW1haW5zXG4gKiBjb25zaXN0ZW50IGFuZCBjb3JyZWN0LlxuICpcbiAqIGBPcGVyYXRpb25Qcm9jZXNzb3JgIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgdG8gYmUgZXh0ZW5kZWQgYnkgc3BlY2lmaWNcbiAqIG9wZXJhdGlvbiBwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3luY09wZXJhdGlvblByb2Nlc3NvciB7XG4gIHByaXZhdGUgX2FjY2Vzc29yOiBTeW5jUmVjb3JkQWNjZXNzb3I7XG5cbiAgLyoqXG4gICAqIFRoZSBgU3luY1JlY29yZEFjY2Vzc29yYCB0aGF0IGlzIG1vbml0b3JlZC5cbiAgICovXG4gIGdldCBhY2Nlc3NvcigpOiBTeW5jUmVjb3JkQWNjZXNzb3Ige1xuICAgIHJldHVybiB0aGlzLl9hY2Nlc3NvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGFjY2Vzc29yOiBTeW5jUmVjb3JkQWNjZXNzb3IpIHtcbiAgICB0aGlzLl9hY2Nlc3NvciA9IGFjY2Vzc29yO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFsbCB0aGUgZGF0YSBpbiBhIGNhY2hlIGhhcyBiZWVuIHJlc2V0LlxuICAgKlxuICAgKiBJZiBgYmFzZWAgaXMgaW5jbHVkZWQsIHRoZSBjYWNoZSBpcyBiZWluZyByZXNldCB0byBtYXRjaCBhIGJhc2UgY2FjaGUuXG4gICAqL1xuICByZXNldChiYXNlPzogU3luY1JlY29yZEFjY2Vzc29yKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGUgcHJvY2Vzc29yIHRvIHBlcmZvcm0gYW4gdXBncmFkZSBhcyBwYXJ0IG9mIGEgY2FjaGUgdXBncmFkZS5cbiAgICovXG4gIHVwZ3JhZGUoKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW4gb3BlcmF0aW9uIGJlZm9yZSBwcm9jZXNzaW5nIGl0LlxuICAgKi9cbiAgdmFsaWRhdGUob3BlcmF0aW9uOiBSZWNvcmRPcGVyYXRpb24pOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBiZWZvcmUgYW4gYG9wZXJhdGlvbmAgaGFzIGJlZW4gYXBwbGllZC5cbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBvcGVyYXRpb25zIHRvIGJlIGFwcGxpZWQgKipCRUZPUkUqKiB0aGUgYG9wZXJhdGlvbmBcbiAgICogaXRzZWxmIGlzIGFwcGxpZWQuXG4gICAqL1xuICBiZWZvcmUob3BlcmF0aW9uOiBSZWNvcmRPcGVyYXRpb24pOiBSZWNvcmRPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBiZWZvcmUgYW4gYG9wZXJhdGlvbmAgaGFzIGJlZW4gYXBwbGllZC5cbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBvcGVyYXRpb25zIHRvIGJlIGFwcGxpZWQgKipBRlRFUioqIHRoZSBgb3BlcmF0aW9uYFxuICAgKiBoYXMgYmVlbiBhcHBsaWVkIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIGFmdGVyKG9wZXJhdGlvbjogUmVjb3JkT3BlcmF0aW9uKTogUmVjb3JkT3BlcmF0aW9uW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYW4gYG9wZXJhdGlvbmAgaGFzIGJlZW4gYXBwbGllZCBhbmQgYmVmb3JlIHRoZVxuICAgKiBgcGF0Y2hgIGV2ZW50IGhhcyBiZWVuIGVtaXR0ZWQgKGkuZS4gYmVmb3JlIGFueSBsaXN0ZW5lcnMgaGF2ZSBiZWVuXG4gICAqIG5vdGlmaWVkIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXMgYXBwbGllZCkuXG4gICAqXG4gICAqIE5vIG9wZXJhdGlvbnMgbWF5IGJlIHJldHVybmVkLlxuICAgKi9cbiAgaW1tZWRpYXRlKG9wZXJhdGlvbjogUmVjb3JkT3BlcmF0aW9uKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgYW4gYG9wZXJhdGlvbmAgX2FuZF8gYW55IHJlbGF0ZWQgb3BlcmF0aW9ucyBoYXZlIGJlZW4gYXBwbGllZC5cbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBvcGVyYXRpb25zIHRvIGJlIGFwcGxpZWQgKipBRlRFUioqIHRoZSBgb3BlcmF0aW9uYFxuICAgKiBpdHNlbGYgYW5kIGFueSBvcGVyYXRpb25zIHJldHVybmVkIGZyb20gdGhlIGBhZnRlcmAgaG9vayBoYXZlIGJlZW4gYXBwbGllZC5cbiAgICovXG4gIGZpbmFsbHkob3BlcmF0aW9uOiBSZWNvcmRPcGVyYXRpb24pOiBSZWNvcmRPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=