@orbit/coordinator
Version:
A coordinator and set of coordination strategies for managing data flow and keeping @orbit/data sources in sync.
37 lines • 5.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequestStrategy = void 0;
const connection_strategy_1 = require("./connection-strategy");
class RequestStrategy extends connection_strategy_1.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;
}
}
}
exports.RequestStrategy = RequestStrategy;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJhdGVnaWVzL3JlcXVlc3Qtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBRytCO0FBNEIvQixNQUFhLGVBQWdCLFNBQVEsd0NBQWtCO0lBR3JELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsWUFBWSxDQUNwQixPQUFzRDtRQUV0RCxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDcEMsT0FBUSxJQUFJLENBQUMsTUFBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pELFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBRXJDLENBQUM7U0FDSDtJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsc0JBQXNCLENBQ3BDLE1BQTBELEVBQzFELE9BQXNELEVBQ3RELEtBQXVDO1FBRXZDLE1BQU0sWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVTLFdBQVcsQ0FDbkIsS0FBc0MsRUFDdEMsWUFBdUQ7UUFFdkQsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNuQyxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDaEM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3RDLEtBQUssQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztTQUN0QztJQUNILENBQUM7Q0FDRjtBQTlDRCwwQ0E4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25uZWN0aW9uU3RyYXRlZ3ksXG4gIENvbm5lY3Rpb25TdHJhdGVneU9wdGlvbnNcbn0gZnJvbSAnLi9jb25uZWN0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7XG4gIEZ1bGxSZXNwb25zZSxcbiAgTmFtZWRGdWxsUmVzcG9uc2UsXG4gIE9wZXJhdGlvbixcbiAgUXVlcnksXG4gIFF1ZXJ5RXhwcmVzc2lvbixcbiAgUmVzcG9uc2VIaW50cyxcbiAgVHJhbnNmb3JtXG59IGZyb20gJ0BvcmJpdC9kYXRhJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0U3RyYXRlZ3lPcHRpb25zIGV4dGVuZHMgQ29ubmVjdGlvblN0cmF0ZWd5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTaG91bGQgcmVzdWx0cyByZXR1cm5lZCBmcm9tIGNhbGxpbmcgYGFjdGlvbmAgb24gdGhlIGB0YXJnZXRgIHNvdXJjZSBiZVxuICAgKiBwYXNzZWQgYXMgaGludCBkYXRhIGJhY2sgdG8gdGhlIGBzb3VyY2VgP1xuICAgKlxuICAgKiBUaGlzIGNhbiBhbGxvdyBoaW50cyB0byBpbmZvcm0gdGhlIHByb2Nlc3Npbmcgb2Ygc3Vic2VxdWVudCBhY3Rpb25zIG9uIHRoZVxuICAgKiBzb3VyY2UuIEZvciBpbnN0YW5jZSwgYSBgYmVmb3JlUXVlcnlgIGV2ZW50IG1pZ2h0IGludm9rZSBgcXVlcnlgIG9uIGFcbiAgICogdGFyZ2V0LCBhbmQgdGhvc2UgcmVzdWx0cyBjb3VsZCBpbmZvcm0gaG93IHRoZSBvcmlnaW5hdGluZyBzb3VyY2UgcGVyZm9ybXNcbiAgICogYF9xdWVyeWAuIFRoaXMgbWlnaHQgYWxsb3cgYSB0YXJnZXQgc291cmNlJ3Mgc29ydGluZyBhbmQgZmlsdGVyaW5nIG9mXG4gICAqIHJlc3VsdHMgdG8gYWZmZWN0IGhvdyB0aGUgb3JpZ2luYXRpbmcgc291cmNlIHByb2Nlc3NlcyB0aGUgcXVlcnkuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBpcyBvbmx5IGVmZmVjdGl2ZSBmb3IgYGJsb2NraW5nYCBzdHJhdGVnaWVzLCBzaW5jZSBvbmx5IGluXG4gICAqIHRob3NlIHNjZW5hcmlvcyBpcyBwcm9jZXNzaW5nIGRlbGF5ZWQuXG4gICAqL1xuICBwYXNzSGludHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUmVxdWVzdFN0cmF0ZWd5IGV4dGVuZHMgQ29ubmVjdGlvblN0cmF0ZWd5IHtcbiAgcHVibGljIHBhc3NIaW50czogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBSZXF1ZXN0U3RyYXRlZ3lPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICB0aGlzLnBhc3NIaW50cyA9ICEhb3B0aW9ucy5wYXNzSGludHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW52b2tlQWN0aW9uKFxuICAgIHJlcXVlc3Q6IFF1ZXJ5PFF1ZXJ5RXhwcmVzc2lvbj4gfCBUcmFuc2Zvcm08T3BlcmF0aW9uPlxuICApOiBQcm9taXNlPE5hbWVkRnVsbFJlc3BvbnNlPHVua25vd24sIHVua25vd24sIE9wZXJhdGlvbj4+IHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX2FjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiAodGhpcy50YXJnZXQgYXMgYW55KVt0aGlzLl9hY3Rpb25dKHJlcXVlc3QsIHtcbiAgICAgICAgZnVsbFJlc3BvbnNlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1cGVyLmludm9rZUFjdGlvbiguLi5hcmd1bWVudHMpIGFzIFByb21pc2U8XG4gICAgICAgIE5hbWVkRnVsbFJlc3BvbnNlPHVua25vd24sIHVua25vd24sIE9wZXJhdGlvbj5cbiAgICAgID47XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUJsb2NraW5nUmVzcG9uc2UoXG4gICAgcmVzdWx0OiBQcm9taXNlPEZ1bGxSZXNwb25zZTx1bmtub3duLCB1bmtub3duLCBPcGVyYXRpb24+PixcbiAgICByZXF1ZXN0OiBRdWVyeTxRdWVyeUV4cHJlc3Npb24+IHwgVHJhbnNmb3JtPE9wZXJhdGlvbj4sXG4gICAgaGludHM/OiBSZXNwb25zZUhpbnRzPHVua25vd24sIHVua25vd24+XG4gICk6IFByb21pc2U8TmFtZWRGdWxsUmVzcG9uc2U8dW5rbm93biwgdW5rbm93biwgT3BlcmF0aW9uPj4ge1xuICAgIGNvbnN0IGZ1bGxSZXNwb25zZSA9IGF3YWl0IHJlc3VsdDtcbiAgICBpZiAodGhpcy5wYXNzSGludHMgJiYgaGludHMpIHtcbiAgICAgIHRoaXMuYXNzaWduSGludHMoaGludHMsIGZ1bGxSZXNwb25zZSk7XG4gICAgfVxuICAgIHJldHVybiBbdGhpcy50YXJnZXQubmFtZSBhcyBzdHJpbmcsIGZ1bGxSZXNwb25zZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgYXNzaWduSGludHMoXG4gICAgaGludHM6IFJlc3BvbnNlSGludHM8dW5rbm93biwgdW5rbm93bj4sXG4gICAgZnVsbFJlc3BvbnNlOiBGdWxsUmVzcG9uc2U8dW5rbm93biwgdW5rbm93biwgT3BlcmF0aW9uPlxuICApOiB2b2lkIHtcbiAgICBpZiAoZnVsbFJlc3BvbnNlLmRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaGludHMuZGF0YSA9IGZ1bGxSZXNwb25zZS5kYXRhO1xuICAgIH1cbiAgICBpZiAoZnVsbFJlc3BvbnNlLmRldGFpbHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaGludHMuZGV0YWlscyA9IGZ1bGxSZXNwb25zZS5kZXRhaWxzO1xuICAgIH1cbiAgfVxufVxuIl19