typed-patterns
Version:
Basic design patterns
27 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("../../util");
/**
* Creates synchronous processor based on chain-of-responsibility
* @param processors Chain of single-responsible processors
*/
function buildSyncProcessor(processors) {
return function (context) {
for (const operator of processors) {
try {
return operator(context);
}
catch (e) {
if (e instanceof util_1.Unexpected) {
continue;
}
else {
throw e;
}
}
}
throw new util_1.Unexpected('Unexpected context');
};
}
exports.buildSyncProcessor = buildSyncProcessor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuc3luYy5wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvYmVoYXZpb3JhbC9jaGFpbi1vZi1yZXNwb25zaWJpbGl0eS9idWlsZC5zeW5jLnByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFDQUF1RDtBQUV2RDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsVUFBc0Q7SUFFdEQsT0FBTyxVQUFTLE9BQU87UUFDckIsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLEVBQUU7WUFDakMsSUFBSTtnQkFDRixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMxQjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxZQUFZLGlCQUFVLEVBQUU7b0JBQzNCLFNBQVM7aUJBQ1Y7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLENBQUM7aUJBQ1Q7YUFDRjtTQUNGO1FBQ0QsTUFBTSxJQUFJLGlCQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBakJELGdEQWlCQyJ9