@orbit/coordinator
Version:
A coordinator and set of coordination strategies for managing data flow and keeping @orbit/data sources in sync.
20 lines • 4.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SyncStrategy = void 0;
const core_1 = require("@orbit/core");
const connection_strategy_1 = require("./connection-strategy");
const { assert } = core_1.Orbit;
class SyncStrategy extends connection_strategy_1.ConnectionStrategy {
constructor(options) {
let opts = options;
assert('A `source` must be specified for a SyncStrategy', !!opts.source);
assert('A `target` must be specified for a SyncStrategy', !!opts.target);
assert('`source` should be a Source name specified as a string', typeof opts.source === 'string');
assert('`target` should be a Source name specified as a string', typeof opts.target === 'string');
opts.on = opts.on || 'transform';
opts.action = opts.action || 'sync';
super(opts);
}
}
exports.SyncStrategy = SyncStrategy;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJhdGVnaWVzL3N5bmMtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBQW9DO0FBRXBDLCtEQUcrQjtBQUUvQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsWUFBSyxDQUFDO0FBbUN6QixNQUFhLFlBQWEsU0FBUSx3Q0FBa0I7SUFDbEQsWUFBWSxPQUE0QjtRQUN0QyxJQUFJLElBQUksR0FBRyxPQUFvQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxpREFBaUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxpREFBaUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FDSix3REFBd0QsRUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztRQUNGLE1BQU0sQ0FDSix3REFBd0QsRUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztRQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFqQkQsb0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JiaXQgfSBmcm9tICdAb3JiaXQvY29yZSc7XG5pbXBvcnQgeyBTdHJhdGVneU9wdGlvbnMgfSBmcm9tICcuLi9zdHJhdGVneSc7XG5pbXBvcnQge1xuICBDb25uZWN0aW9uU3RyYXRlZ3ksXG4gIENvbm5lY3Rpb25TdHJhdGVneU9wdGlvbnNcbn0gZnJvbSAnLi9jb25uZWN0aW9uLXN0cmF0ZWd5JztcblxuY29uc3QgeyBhc3NlcnQgfSA9IE9yYml0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN5bmNTdHJhdGVneU9wdGlvbnMgZXh0ZW5kcyBTdHJhdGVneU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNvdXJjZSB0byBiZSBvYnNlcnZlZC5cbiAgICovXG4gIHNvdXJjZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc291cmNlIHdoaWNoIHdpbGwgYmUgYWN0ZWQgdXBvbi5cbiAgICovXG4gIHRhcmdldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGhhbmRsZXIgZm9yIGFueSBlcnJvcnMgdGhyb3duIGFzIGEgcmVzdWx0IG9mIHRoZSBzeW5jIG9wZXJhdGlvbi5cbiAgICovXG4gIGNhdGNoPzogKGVycm9yOiBFcnJvciwgLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEEgZmlsdGVyIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHN5bmMgc2hvdWxkIGJlIHBlcmZvcm1lZC5cbiAgICpcbiAgICogYGZpbHRlcmAgd2lsbCBiZSBpbnZva2VkIGluIHRoZSBjb250ZXh0IG9mIHRoaXMgc3RyYXRlZ3kgKGFuZCB0aHVzIHdpbGxcbiAgICogaGF2ZSBhY2Nlc3MgdG8gYm90aCBgdGhpcy5zb3VyY2VgIGFuZCBgdGhpcy50YXJnZXRgKS5cbiAgICovXG4gIGZpbHRlcj86ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIHJlc29sdXRpb24gb2YgdGhlIHRhcmdldCdzIGBzeW5jYCBibG9jayB0aGUgY29tcGxldGlvbiBvZiB0aGVcbiAgICogc291cmNlJ3MgYHRyYW5zZm9ybWA/XG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGBibG9ja2luZ2AgaXMgZmFsc2UuXG4gICAqL1xuICBibG9ja2luZz86IGJvb2xlYW4gfCAoKC4uLmFyZ3M6IGFueVtdKSA9PiBib29sZWFuKTtcbn1cblxuZXhwb3J0IGNsYXNzIFN5bmNTdHJhdGVneSBleHRlbmRzIENvbm5lY3Rpb25TdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFN5bmNTdHJhdGVneU9wdGlvbnMpIHtcbiAgICBsZXQgb3B0cyA9IG9wdGlvbnMgYXMgQ29ubmVjdGlvblN0cmF0ZWd5T3B0aW9ucztcbiAgICBhc3NlcnQoJ0EgYHNvdXJjZWAgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGEgU3luY1N0cmF0ZWd5JywgISFvcHRzLnNvdXJjZSk7XG4gICAgYXNzZXJ0KCdBIGB0YXJnZXRgIG11c3QgYmUgc3BlY2lmaWVkIGZvciBhIFN5bmNTdHJhdGVneScsICEhb3B0cy50YXJnZXQpO1xuICAgIGFzc2VydChcbiAgICAgICdgc291cmNlYCBzaG91bGQgYmUgYSBTb3VyY2UgbmFtZSBzcGVjaWZpZWQgYXMgYSBzdHJpbmcnLFxuICAgICAgdHlwZW9mIG9wdHMuc291cmNlID09PSAnc3RyaW5nJ1xuICAgICk7XG4gICAgYXNzZXJ0KFxuICAgICAgJ2B0YXJnZXRgIHNob3VsZCBiZSBhIFNvdXJjZSBuYW1lIHNwZWNpZmllZCBhcyBhIHN0cmluZycsXG4gICAgICB0eXBlb2Ygb3B0cy50YXJnZXQgPT09ICdzdHJpbmcnXG4gICAgKTtcbiAgICBvcHRzLm9uID0gb3B0cy5vbiB8fCAndHJhbnNmb3JtJztcbiAgICBvcHRzLmFjdGlvbiA9IG9wdHMuYWN0aW9uIHx8ICdzeW5jJztcbiAgICBzdXBlcihvcHRzKTtcbiAgfVxufVxuIl19