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