UNPKG

@orbit/record-cache

Version:

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

81 lines 7.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AsyncOperationProcessor = 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 AsyncOperationProcessor { constructor(accessor) { this._accessor = accessor; } /** * The `AsyncRecordAccessor` 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) { return Promise.resolve(); } /** * Allow the processor to perform an upgrade as part of a cache upgrade. */ upgrade() { return Promise.resolve(); } /** * Validates an operation before processing it. */ validate(operation) { return Promise.resolve(); } /** * Called before an `operation` has been applied. * * Returns an array of operations to be applied **BEFORE** the `operation` * itself is applied. */ before(operation) { return Promise.resolve([]); } /** * 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 Promise.resolve([]); } /** * 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) { return Promise.resolve(); } /** * 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 Promise.resolve([]); } } exports.AsyncOperationProcessor = AsyncOperationProcessor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtb3BlcmF0aW9uLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3luYy1vcGVyYXRpb24tcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFzQix1QkFBdUI7SUFVM0MsWUFBWSxRQUE2QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBVEQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQU1EOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsSUFBMEI7UUFDOUIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxTQUEwQjtRQUNqQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsU0FBMEI7UUFDL0IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxTQUEwQjtRQUM5QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxTQUEwQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsU0FBMEI7UUFDaEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQTdFRCwwREE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IEFzeW5jUmVjb3JkQWNjZXNzb3IgfSBmcm9tICcuL3JlY29yZC1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBSZWNvcmRPcGVyYXRpb24gfSBmcm9tICdAb3JiaXQvcmVjb3Jkcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNPcGVyYXRpb25Qcm9jZXNzb3JDbGFzcyB7XG4gIG5ldyAoY2FjaGU6IEFzeW5jUmVjb3JkQWNjZXNzb3IpOiBBc3luY09wZXJhdGlvblByb2Nlc3Nvcjtcbn1cblxuLyoqXG4gKiBPcGVyYXRpb24gcHJvY2Vzc29ycyBhcmUgdXNlZCB0byBpZGVudGlmeSBvcGVyYXRpb25zIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZFxuICogdG9nZXRoZXIgdG8gZW5zdXJlIHRoYXQgYSBgQ2FjaGVgIG9yIG90aGVyIGNvbnRhaW5lciBvZiBkYXRhIHJlbWFpbnNcbiAqIGNvbnNpc3RlbnQgYW5kIGNvcnJlY3QuXG4gKlxuICogYE9wZXJhdGlvblByb2Nlc3NvcmAgaXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcyB0byBiZSBleHRlbmRlZCBieSBzcGVjaWZpY1xuICogb3BlcmF0aW9uIHByb2Nlc3NvcnMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBc3luY09wZXJhdGlvblByb2Nlc3NvciB7XG4gIHByaXZhdGUgX2FjY2Vzc29yOiBBc3luY1JlY29yZEFjY2Vzc29yO1xuXG4gIC8qKlxuICAgKiBUaGUgYEFzeW5jUmVjb3JkQWNjZXNzb3JgIHRoYXQgaXMgbW9uaXRvcmVkLlxuICAgKi9cbiAgZ2V0IGFjY2Vzc29yKCk6IEFzeW5jUmVjb3JkQWNjZXNzb3Ige1xuICAgIHJldHVybiB0aGlzLl9hY2Nlc3NvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGFjY2Vzc29yOiBBc3luY1JlY29yZEFjY2Vzc29yKSB7XG4gICAgdGhpcy5fYWNjZXNzb3IgPSBhY2Nlc3NvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbGwgdGhlIGRhdGEgaW4gYSBjYWNoZSBoYXMgYmVlbiByZXNldC5cbiAgICpcbiAgICogSWYgYGJhc2VgIGlzIGluY2x1ZGVkLCB0aGUgY2FjaGUgaXMgYmVpbmcgcmVzZXQgdG8gbWF0Y2ggYSBiYXNlIGNhY2hlLlxuICAgKi9cbiAgcmVzZXQoYmFzZT86IEFzeW5jUmVjb3JkQWNjZXNzb3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdGhlIHByb2Nlc3NvciB0byBwZXJmb3JtIGFuIHVwZ3JhZGUgYXMgcGFydCBvZiBhIGNhY2hlIHVwZ3JhZGUuXG4gICAqL1xuICB1cGdyYWRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW4gb3BlcmF0aW9uIGJlZm9yZSBwcm9jZXNzaW5nIGl0LlxuICAgKi9cbiAgdmFsaWRhdGUob3BlcmF0aW9uOiBSZWNvcmRPcGVyYXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJlZm9yZSBhbiBgb3BlcmF0aW9uYCBoYXMgYmVlbiBhcHBsaWVkLlxuICAgKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIG9wZXJhdGlvbnMgdG8gYmUgYXBwbGllZCAqKkJFRk9SRSoqIHRoZSBgb3BlcmF0aW9uYFxuICAgKiBpdHNlbGYgaXMgYXBwbGllZC5cbiAgICovXG4gIGJlZm9yZShvcGVyYXRpb246IFJlY29yZE9wZXJhdGlvbik6IFByb21pc2U8UmVjb3JkT3BlcmF0aW9uW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIGFuIGBvcGVyYXRpb25gIGhhcyBiZWVuIGFwcGxpZWQuXG4gICAqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2Ygb3BlcmF0aW9ucyB0byBiZSBhcHBsaWVkICoqQUZURVIqKiB0aGUgYG9wZXJhdGlvbmBcbiAgICogaGFzIGJlZW4gYXBwbGllZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBhZnRlcihvcGVyYXRpb246IFJlY29yZE9wZXJhdGlvbik6IFByb21pc2U8UmVjb3JkT3BlcmF0aW9uW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYW4gYG9wZXJhdGlvbmAgaGFzIGJlZW4gYXBwbGllZCBhbmQgYmVmb3JlIHRoZVxuICAgKiBgcGF0Y2hgIGV2ZW50IGhhcyBiZWVuIGVtaXR0ZWQgKGkuZS4gYmVmb3JlIGFueSBsaXN0ZW5lcnMgaGF2ZSBiZWVuXG4gICAqIG5vdGlmaWVkIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXMgYXBwbGllZCkuXG4gICAqXG4gICAqIE5vIG9wZXJhdGlvbnMgbWF5IGJlIHJldHVybmVkLlxuICAgKi9cbiAgaW1tZWRpYXRlKG9wZXJhdGlvbjogUmVjb3JkT3BlcmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBhZnRlciBhbiBgb3BlcmF0aW9uYCBfYW5kXyBhbnkgcmVsYXRlZCBvcGVyYXRpb25zIGhhdmUgYmVlbiBhcHBsaWVkLlxuICAgKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIG9wZXJhdGlvbnMgdG8gYmUgYXBwbGllZCAqKkFGVEVSKiogdGhlIGBvcGVyYXRpb25gXG4gICAqIGl0c2VsZiBhbmQgYW55IG9wZXJhdGlvbnMgcmV0dXJuZWQgZnJvbSB0aGUgYGFmdGVyYCBob29rIGhhdmUgYmVlbiBhcHBsaWVkLlxuICAgKi9cbiAgZmluYWxseShvcGVyYXRpb246IFJlY29yZE9wZXJhdGlvbik6IFByb21pc2U8UmVjb3JkT3BlcmF0aW9uW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxufVxuIl19