@orbit/record-cache
Version:
Orbit base classes used to access and maintain a set of records.
81 lines • 7.37 kB
JavaScript
;
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