UNPKG

csf

Version:

Generator based flow control with context providing

42 lines (29 loc) 1.25 kB
"use strict"; 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"];