UNPKG

@orbit/coordinator

Version:

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

33 lines 5.85 kB
import { ConnectionStrategy } from './connection-strategy'; export class RequestStrategy extends ConnectionStrategy { constructor(options) { super(options); this.passHints = !!options.passHints; } invokeAction(request) { if (typeof this._action === 'string') { return this.target[this._action](request, { fullResponse: true }); } else { return super.invokeAction(...arguments); } } async handleBlockingResponse(result, request, hints) { const fullResponse = await result; if (this.passHints && hints) { this.assignHints(hints, fullResponse); } return [this.target.name, fullResponse]; } assignHints(hints, fullResponse) { if (fullResponse.data !== undefined) { hints.data = fullResponse.data; } if (fullResponse.details !== undefined) { hints.details = fullResponse.details; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJhdGVnaWVzL3JlcXVlc3Qtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGtCQUFrQixFQUVuQixNQUFNLHVCQUF1QixDQUFDO0FBNEIvQixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxrQkFBa0I7SUFHckQsWUFBWSxPQUErQjtRQUN6QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFUyxZQUFZLENBQ3BCLE9BQXNEO1FBRXRELElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUNwQyxPQUFRLElBQUksQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDakQsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FFckMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVTLEtBQUssQ0FBQyxzQkFBc0IsQ0FDcEMsTUFBMEQsRUFDMUQsT0FBc0QsRUFDdEQsS0FBdUM7UUFFdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRVMsV0FBVyxDQUNuQixLQUFzQyxFQUN0QyxZQUF1RDtRQUV2RCxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ25DLEtBQUssQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztTQUNoQztRQUNELElBQUksWUFBWSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDdEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29ubmVjdGlvblN0cmF0ZWd5LFxuICBDb25uZWN0aW9uU3RyYXRlZ3lPcHRpb25zXG59IGZyb20gJy4vY29ubmVjdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQge1xuICBGdWxsUmVzcG9uc2UsXG4gIE5hbWVkRnVsbFJlc3BvbnNlLFxuICBPcGVyYXRpb24sXG4gIFF1ZXJ5LFxuICBRdWVyeUV4cHJlc3Npb24sXG4gIFJlc3BvbnNlSGludHMsXG4gIFRyYW5zZm9ybVxufSBmcm9tICdAb3JiaXQvZGF0YSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFN0cmF0ZWd5T3B0aW9ucyBleHRlbmRzIENvbm5lY3Rpb25TdHJhdGVneU9wdGlvbnMge1xuICAvKipcbiAgICogU2hvdWxkIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSBjYWxsaW5nIGBhY3Rpb25gIG9uIHRoZSBgdGFyZ2V0YCBzb3VyY2UgYmVcbiAgICogcGFzc2VkIGFzIGhpbnQgZGF0YSBiYWNrIHRvIHRoZSBgc291cmNlYD9cbiAgICpcbiAgICogVGhpcyBjYW4gYWxsb3cgaGludHMgdG8gaW5mb3JtIHRoZSBwcm9jZXNzaW5nIG9mIHN1YnNlcXVlbnQgYWN0aW9ucyBvbiB0aGVcbiAgICogc291cmNlLiBGb3IgaW5zdGFuY2UsIGEgYGJlZm9yZVF1ZXJ5YCBldmVudCBtaWdodCBpbnZva2UgYHF1ZXJ5YCBvbiBhXG4gICAqIHRhcmdldCwgYW5kIHRob3NlIHJlc3VsdHMgY291bGQgaW5mb3JtIGhvdyB0aGUgb3JpZ2luYXRpbmcgc291cmNlIHBlcmZvcm1zXG4gICAqIGBfcXVlcnlgLiBUaGlzIG1pZ2h0IGFsbG93IGEgdGFyZ2V0IHNvdXJjZSdzIHNvcnRpbmcgYW5kIGZpbHRlcmluZyBvZlxuICAgKiByZXN1bHRzIHRvIGFmZmVjdCBob3cgdGhlIG9yaWdpbmF0aW5nIHNvdXJjZSBwcm9jZXNzZXMgdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgaXMgb25seSBlZmZlY3RpdmUgZm9yIGBibG9ja2luZ2Agc3RyYXRlZ2llcywgc2luY2Ugb25seSBpblxuICAgKiB0aG9zZSBzY2VuYXJpb3MgaXMgcHJvY2Vzc2luZyBkZWxheWVkLlxuICAgKi9cbiAgcGFzc0hpbnRzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlcXVlc3RTdHJhdGVneSBleHRlbmRzIENvbm5lY3Rpb25TdHJhdGVneSB7XG4gIHB1YmxpYyBwYXNzSGludHM6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogUmVxdWVzdFN0cmF0ZWd5T3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5wYXNzSGludHMgPSAhIW9wdGlvbnMucGFzc0hpbnRzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGludm9rZUFjdGlvbihcbiAgICByZXF1ZXN0OiBRdWVyeTxRdWVyeUV4cHJlc3Npb24+IHwgVHJhbnNmb3JtPE9wZXJhdGlvbj5cbiAgKTogUHJvbWlzZTxOYW1lZEZ1bGxSZXNwb25zZTx1bmtub3duLCB1bmtub3duLCBPcGVyYXRpb24+PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLl9hY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gKHRoaXMudGFyZ2V0IGFzIGFueSlbdGhpcy5fYWN0aW9uXShyZXF1ZXN0LCB7XG4gICAgICAgIGZ1bGxSZXNwb25zZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdXBlci5pbnZva2VBY3Rpb24oLi4uYXJndW1lbnRzKSBhcyBQcm9taXNlPFxuICAgICAgICBOYW1lZEZ1bGxSZXNwb25zZTx1bmtub3duLCB1bmtub3duLCBPcGVyYXRpb24+XG4gICAgICA+O1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVCbG9ja2luZ1Jlc3BvbnNlKFxuICAgIHJlc3VsdDogUHJvbWlzZTxGdWxsUmVzcG9uc2U8dW5rbm93biwgdW5rbm93biwgT3BlcmF0aW9uPj4sXG4gICAgcmVxdWVzdDogUXVlcnk8UXVlcnlFeHByZXNzaW9uPiB8IFRyYW5zZm9ybTxPcGVyYXRpb24+LFxuICAgIGhpbnRzPzogUmVzcG9uc2VIaW50czx1bmtub3duLCB1bmtub3duPlxuICApOiBQcm9taXNlPE5hbWVkRnVsbFJlc3BvbnNlPHVua25vd24sIHVua25vd24sIE9wZXJhdGlvbj4+IHtcbiAgICBjb25zdCBmdWxsUmVzcG9uc2UgPSBhd2FpdCByZXN1bHQ7XG4gICAgaWYgKHRoaXMucGFzc0hpbnRzICYmIGhpbnRzKSB7XG4gICAgICB0aGlzLmFzc2lnbkhpbnRzKGhpbnRzLCBmdWxsUmVzcG9uc2UpO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMudGFyZ2V0Lm5hbWUgYXMgc3RyaW5nLCBmdWxsUmVzcG9uc2VdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzc2lnbkhpbnRzKFxuICAgIGhpbnRzOiBSZXNwb25zZUhpbnRzPHVua25vd24sIHVua25vd24+LFxuICAgIGZ1bGxSZXNwb25zZTogRnVsbFJlc3BvbnNlPHVua25vd24sIHVua25vd24sIE9wZXJhdGlvbj5cbiAgKTogdm9pZCB7XG4gICAgaWYgKGZ1bGxSZXNwb25zZS5kYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGhpbnRzLmRhdGEgPSBmdWxsUmVzcG9uc2UuZGF0YTtcbiAgICB9XG4gICAgaWYgKGZ1bGxSZXNwb25zZS5kZXRhaWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGhpbnRzLmRldGFpbHMgPSBmdWxsUmVzcG9uc2UuZGV0YWlscztcbiAgICB9XG4gIH1cbn1cbiJdfQ==