csf
Version:
Generator based flow control with context providing
42 lines (29 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createChild;
var _run = require("./run");
var _run2 = _interopRequireDefault(_run);
var _resolveContext = require("./resolve-context");
var _resolveContext2 = _interopRequireDefault(_resolveContext);
var _resolveArgs = require("./resolve-args");
var _resolveArgs2 = _interopRequireDefault(_resolveArgs);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* Create fyped function with prototypically inherit context */
function createChild(task, contextProperties, ownArgs) {
return function withBoundedChildContext() {
var childContext = Object.create(this || null);
Object.assign(childContext, Reflect.apply(_resolveContext2.default,
/*
* When child context build by function, by default should use empty
* object, not null as other cases does
*/
this || {}, [contextProperties]));
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return Reflect.apply(_run2.default, childContext, [task, (0, _resolveArgs2.default)(ownArgs, args)]);
};
}
module.exports = exports["default"];