UNPKG

@orbit/coordinator

Version:

A coordinator and set of coordination strategies for managing data flow and keeping @orbit/data sources in sync.

16 lines 4.17 kB
import { Orbit } from '@orbit/core'; import { ConnectionStrategy } from './connection-strategy'; const { assert } = Orbit; export class SyncStrategy extends 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); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJhdGVnaWVzL3N5bmMtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBRW5CLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztBQW1DekIsTUFBTSxPQUFPLFlBQWEsU0FBUSxrQkFBa0I7SUFDbEQsWUFBWSxPQUE0QjtRQUN0QyxJQUFJLElBQUksR0FBRyxPQUFvQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxpREFBaUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FBQyxpREFBaUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sQ0FDSix3REFBd0QsRUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztRQUNGLE1BQU0sQ0FDSix3REFBd0QsRUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztRQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmJpdCB9IGZyb20gJ0BvcmJpdC9jb3JlJztcbmltcG9ydCB7IFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJy4uL3N0cmF0ZWd5JztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25TdHJhdGVneSxcbiAgQ29ubmVjdGlvblN0cmF0ZWd5T3B0aW9uc1xufSBmcm9tICcuL2Nvbm5lY3Rpb24tc3RyYXRlZ3knO1xuXG5jb25zdCB7IGFzc2VydCB9ID0gT3JiaXQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3luY1N0cmF0ZWd5T3B0aW9ucyBleHRlbmRzIFN0cmF0ZWd5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc291cmNlIHRvIGJlIG9ic2VydmVkLlxuICAgKi9cbiAgc291cmNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzb3VyY2Ugd2hpY2ggd2lsbCBiZSBhY3RlZCB1cG9uLlxuICAgKi9cbiAgdGFyZ2V0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgaGFuZGxlciBmb3IgYW55IGVycm9ycyB0aHJvd24gYXMgYSByZXN1bHQgb2YgdGhlIHN5bmMgb3BlcmF0aW9uLlxuICAgKi9cbiAgY2F0Y2g/OiAoZXJyb3I6IEVycm9yLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcblxuICAvKipcbiAgICogQSBmaWx0ZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB0cnVlYCBpZiB0aGUgc3luYyBzaG91bGQgYmUgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBgZmlsdGVyYCB3aWxsIGJlIGludm9rZWQgaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBzdHJhdGVneSAoYW5kIHRodXMgd2lsbFxuICAgKiBoYXZlIGFjY2VzcyB0byBib3RoIGB0aGlzLnNvdXJjZWAgYW5kIGB0aGlzLnRhcmdldGApLlxuICAgKi9cbiAgZmlsdGVyPzogKC4uLmFyZ3M6IGFueVtdKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgcmVzb2x1dGlvbiBvZiB0aGUgdGFyZ2V0J3MgYHN5bmNgIGJsb2NrIHRoZSBjb21wbGV0aW9uIG9mIHRoZVxuICAgKiBzb3VyY2UncyBgdHJhbnNmb3JtYD9cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgYGJsb2NraW5nYCBpcyBmYWxzZS5cbiAgICovXG4gIGJsb2NraW5nPzogYm9vbGVhbiB8ICgoLi4uYXJnczogYW55W10pID0+IGJvb2xlYW4pO1xufVxuXG5leHBvcnQgY2xhc3MgU3luY1N0cmF0ZWd5IGV4dGVuZHMgQ29ubmVjdGlvblN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogU3luY1N0cmF0ZWd5T3B0aW9ucykge1xuICAgIGxldCBvcHRzID0gb3B0aW9ucyBhcyBDb25uZWN0aW9uU3RyYXRlZ3lPcHRpb25zO1xuICAgIGFzc2VydCgnQSBgc291cmNlYCBtdXN0IGJlIHNwZWNpZmllZCBmb3IgYSBTeW5jU3RyYXRlZ3knLCAhIW9wdHMuc291cmNlKTtcbiAgICBhc3NlcnQoJ0EgYHRhcmdldGAgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIGEgU3luY1N0cmF0ZWd5JywgISFvcHRzLnRhcmdldCk7XG4gICAgYXNzZXJ0KFxuICAgICAgJ2Bzb3VyY2VgIHNob3VsZCBiZSBhIFNvdXJjZSBuYW1lIHNwZWNpZmllZCBhcyBhIHN0cmluZycsXG4gICAgICB0eXBlb2Ygb3B0cy5zb3VyY2UgPT09ICdzdHJpbmcnXG4gICAgKTtcbiAgICBhc3NlcnQoXG4gICAgICAnYHRhcmdldGAgc2hvdWxkIGJlIGEgU291cmNlIG5hbWUgc3BlY2lmaWVkIGFzIGEgc3RyaW5nJyxcbiAgICAgIHR5cGVvZiBvcHRzLnRhcmdldCA9PT0gJ3N0cmluZydcbiAgICApO1xuICAgIG9wdHMub24gPSBvcHRzLm9uIHx8ICd0cmFuc2Zvcm0nO1xuICAgIG9wdHMuYWN0aW9uID0gb3B0cy5hY3Rpb24gfHwgJ3N5bmMnO1xuICAgIHN1cGVyKG9wdHMpO1xuICB9XG59XG4iXX0=