You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

884 lines
24 KiB

1 year ago
  1. /******/ (function() { // webpackBootstrap
  2. /******/ "use strict";
  3. /******/ var __webpack_modules__ = ({
  4. /***/ 9025:
  5. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  6. Object.defineProperty(exports, "__esModule", ({
  7. value: true
  8. }));
  9. exports.race = exports.join = exports.fork = exports.promise = undefined;
  10. var _is = __webpack_require__(9681);
  11. var _is2 = _interopRequireDefault(_is);
  12. var _helpers = __webpack_require__(7783);
  13. var _dispatcher = __webpack_require__(2451);
  14. var _dispatcher2 = _interopRequireDefault(_dispatcher);
  15. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  16. var promise = exports.promise = function promise(value, next, rungen, yieldNext, raiseNext) {
  17. if (!_is2.default.promise(value)) return false;
  18. value.then(next, raiseNext);
  19. return true;
  20. };
  21. var forkedTasks = new Map();
  22. var fork = exports.fork = function fork(value, next, rungen) {
  23. if (!_is2.default.fork(value)) return false;
  24. var task = Symbol('fork');
  25. var dispatcher = (0, _dispatcher2.default)();
  26. forkedTasks.set(task, dispatcher);
  27. rungen(value.iterator.apply(null, value.args), function (result) {
  28. return dispatcher.dispatch(result);
  29. }, function (err) {
  30. return dispatcher.dispatch((0, _helpers.error)(err));
  31. });
  32. var unsubscribe = dispatcher.subscribe(function () {
  33. unsubscribe();
  34. forkedTasks.delete(task);
  35. });
  36. next(task);
  37. return true;
  38. };
  39. var join = exports.join = function join(value, next, rungen, yieldNext, raiseNext) {
  40. if (!_is2.default.join(value)) return false;
  41. var dispatcher = forkedTasks.get(value.task);
  42. if (!dispatcher) {
  43. raiseNext('join error : task not found');
  44. } else {
  45. (function () {
  46. var unsubscribe = dispatcher.subscribe(function (result) {
  47. unsubscribe();
  48. next(result);
  49. });
  50. })();
  51. }
  52. return true;
  53. };
  54. var race = exports.race = function race(value, next, rungen, yieldNext, raiseNext) {
  55. if (!_is2.default.race(value)) return false;
  56. var finished = false;
  57. var success = function success(result, k, v) {
  58. if (finished) return;
  59. finished = true;
  60. result[k] = v;
  61. next(result);
  62. };
  63. var fail = function fail(err) {
  64. if (finished) return;
  65. raiseNext(err);
  66. };
  67. if (_is2.default.array(value.competitors)) {
  68. (function () {
  69. var result = value.competitors.map(function () {
  70. return false;
  71. });
  72. value.competitors.forEach(function (competitor, index) {
  73. rungen(competitor, function (output) {
  74. return success(result, index, output);
  75. }, fail);
  76. });
  77. })();
  78. } else {
  79. (function () {
  80. var result = Object.keys(value.competitors).reduce(function (p, c) {
  81. p[c] = false;
  82. return p;
  83. }, {});
  84. Object.keys(value.competitors).forEach(function (index) {
  85. rungen(value.competitors[index], function (output) {
  86. return success(result, index, output);
  87. }, fail);
  88. });
  89. })();
  90. }
  91. return true;
  92. };
  93. var subscribe = function subscribe(value, next) {
  94. if (!_is2.default.subscribe(value)) return false;
  95. if (!_is2.default.channel(value.channel)) {
  96. throw new Error('the first argument of "subscribe" must be a valid channel');
  97. }
  98. var unsubscribe = value.channel.subscribe(function (ret) {
  99. unsubscribe && unsubscribe();
  100. next(ret);
  101. });
  102. return true;
  103. };
  104. exports["default"] = [promise, fork, join, race, subscribe];
  105. /***/ }),
  106. /***/ 7961:
  107. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  108. Object.defineProperty(exports, "__esModule", ({
  109. value: true
  110. }));
  111. exports.iterator = exports.array = exports.object = exports.error = exports.any = undefined;
  112. var _is = __webpack_require__(9681);
  113. var _is2 = _interopRequireDefault(_is);
  114. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  115. var any = exports.any = function any(value, next, rungen, yieldNext) {
  116. yieldNext(value);
  117. return true;
  118. };
  119. var error = exports.error = function error(value, next, rungen, yieldNext, raiseNext) {
  120. if (!_is2.default.error(value)) return false;
  121. raiseNext(value.error);
  122. return true;
  123. };
  124. var object = exports.object = function object(value, next, rungen, yieldNext, raiseNext) {
  125. if (!_is2.default.all(value) || !_is2.default.obj(value.value)) return false;
  126. var result = {};
  127. var keys = Object.keys(value.value);
  128. var count = 0;
  129. var hasError = false;
  130. var gotResultSuccess = function gotResultSuccess(key, ret) {
  131. if (hasError) return;
  132. result[key] = ret;
  133. count++;
  134. if (count === keys.length) {
  135. yieldNext(result);
  136. }
  137. };
  138. var gotResultError = function gotResultError(key, error) {
  139. if (hasError) return;
  140. hasError = true;
  141. raiseNext(error);
  142. };
  143. keys.map(function (key) {
  144. rungen(value.value[key], function (ret) {
  145. return gotResultSuccess(key, ret);
  146. }, function (err) {
  147. return gotResultError(key, err);
  148. });
  149. });
  150. return true;
  151. };
  152. var array = exports.array = function array(value, next, rungen, yieldNext, raiseNext) {
  153. if (!_is2.default.all(value) || !_is2.default.array(value.value)) return false;
  154. var result = [];
  155. var count = 0;
  156. var hasError = false;
  157. var gotResultSuccess = function gotResultSuccess(key, ret) {
  158. if (hasError) return;
  159. result[key] = ret;
  160. count++;
  161. if (count === value.value.length) {
  162. yieldNext(result);
  163. }
  164. };
  165. var gotResultError = function gotResultError(key, error) {
  166. if (hasError) return;
  167. hasError = true;
  168. raiseNext(error);
  169. };
  170. value.value.map(function (v, key) {
  171. rungen(v, function (ret) {
  172. return gotResultSuccess(key, ret);
  173. }, function (err) {
  174. return gotResultError(key, err);
  175. });
  176. });
  177. return true;
  178. };
  179. var iterator = exports.iterator = function iterator(value, next, rungen, yieldNext, raiseNext) {
  180. if (!_is2.default.iterator(value)) return false;
  181. rungen(value, next, raiseNext);
  182. return true;
  183. };
  184. exports["default"] = [error, iterator, array, object, any];
  185. /***/ }),
  186. /***/ 2165:
  187. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  188. Object.defineProperty(exports, "__esModule", ({
  189. value: true
  190. }));
  191. exports.cps = exports.call = undefined;
  192. var _is = __webpack_require__(9681);
  193. var _is2 = _interopRequireDefault(_is);
  194. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  195. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  196. var call = exports.call = function call(value, next, rungen, yieldNext, raiseNext) {
  197. if (!_is2.default.call(value)) return false;
  198. try {
  199. next(value.func.apply(value.context, value.args));
  200. } catch (err) {
  201. raiseNext(err);
  202. }
  203. return true;
  204. };
  205. var cps = exports.cps = function cps(value, next, rungen, yieldNext, raiseNext) {
  206. var _value$func;
  207. if (!_is2.default.cps(value)) return false;
  208. (_value$func = value.func).call.apply(_value$func, [null].concat(_toConsumableArray(value.args), [function (err, result) {
  209. if (err) raiseNext(err);else next(result);
  210. }]));
  211. return true;
  212. };
  213. exports["default"] = [call, cps];
  214. /***/ }),
  215. /***/ 6288:
  216. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  217. Object.defineProperty(exports, "__esModule", ({
  218. value: true
  219. }));
  220. var _builtin = __webpack_require__(7961);
  221. var _builtin2 = _interopRequireDefault(_builtin);
  222. var _is = __webpack_require__(9681);
  223. var _is2 = _interopRequireDefault(_is);
  224. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  225. function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  226. var create = function create() {
  227. var userControls = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
  228. var controls = [].concat(_toConsumableArray(userControls), _toConsumableArray(_builtin2.default));
  229. var runtime = function runtime(input) {
  230. var success = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];
  231. var error = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];
  232. var iterate = function iterate(gen) {
  233. var yieldValue = function yieldValue(isError) {
  234. return function (ret) {
  235. try {
  236. var _ref = isError ? gen.throw(ret) : gen.next(ret);
  237. var value = _ref.value;
  238. var done = _ref.done;
  239. if (done) return success(value);
  240. next(value);
  241. } catch (e) {
  242. return error(e);
  243. }
  244. };
  245. };
  246. var next = function next(ret) {
  247. controls.some(function (control) {
  248. return control(ret, next, runtime, yieldValue(false), yieldValue(true));
  249. });
  250. };
  251. yieldValue(false)();
  252. };
  253. var iterator = _is2.default.iterator(input) ? input : regeneratorRuntime.mark(function _callee() {
  254. return regeneratorRuntime.wrap(function _callee$(_context) {
  255. while (1) {
  256. switch (_context.prev = _context.next) {
  257. case 0:
  258. _context.next = 2;
  259. return input;
  260. case 2:
  261. return _context.abrupt('return', _context.sent);
  262. case 3:
  263. case 'end':
  264. return _context.stop();
  265. }
  266. }
  267. }, _callee, this);
  268. })();
  269. iterate(iterator, success, error);
  270. };
  271. return runtime;
  272. };
  273. exports["default"] = create;
  274. /***/ }),
  275. /***/ 2290:
  276. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  277. Object.defineProperty(exports, "__esModule", ({
  278. value: true
  279. }));
  280. exports.wrapControls = exports.asyncControls = exports.create = undefined;
  281. var _helpers = __webpack_require__(7783);
  282. Object.keys(_helpers).forEach(function (key) {
  283. if (key === "default") return;
  284. Object.defineProperty(exports, key, {
  285. enumerable: true,
  286. get: function get() {
  287. return _helpers[key];
  288. }
  289. });
  290. });
  291. var _create = __webpack_require__(6288);
  292. var _create2 = _interopRequireDefault(_create);
  293. var _async = __webpack_require__(9025);
  294. var _async2 = _interopRequireDefault(_async);
  295. var _wrap = __webpack_require__(2165);
  296. var _wrap2 = _interopRequireDefault(_wrap);
  297. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  298. exports.create = _create2.default;
  299. exports.asyncControls = _async2.default;
  300. exports.wrapControls = _wrap2.default;
  301. /***/ }),
  302. /***/ 2451:
  303. /***/ (function(__unused_webpack_module, exports) {
  304. Object.defineProperty(exports, "__esModule", ({
  305. value: true
  306. }));
  307. var createDispatcher = function createDispatcher() {
  308. var listeners = [];
  309. return {
  310. subscribe: function subscribe(listener) {
  311. listeners.push(listener);
  312. return function () {
  313. listeners = listeners.filter(function (l) {
  314. return l !== listener;
  315. });
  316. };
  317. },
  318. dispatch: function dispatch(action) {
  319. listeners.slice().forEach(function (listener) {
  320. return listener(action);
  321. });
  322. }
  323. };
  324. };
  325. exports["default"] = createDispatcher;
  326. /***/ }),
  327. /***/ 7783:
  328. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  329. Object.defineProperty(exports, "__esModule", ({
  330. value: true
  331. }));
  332. exports.createChannel = exports.subscribe = exports.cps = exports.apply = exports.call = exports.invoke = exports.delay = exports.race = exports.join = exports.fork = exports.error = exports.all = undefined;
  333. var _keys = __webpack_require__(9851);
  334. var _keys2 = _interopRequireDefault(_keys);
  335. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  336. var all = exports.all = function all(value) {
  337. return {
  338. type: _keys2.default.all,
  339. value: value
  340. };
  341. };
  342. var error = exports.error = function error(err) {
  343. return {
  344. type: _keys2.default.error,
  345. error: err
  346. };
  347. };
  348. var fork = exports.fork = function fork(iterator) {
  349. for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  350. args[_key - 1] = arguments[_key];
  351. }
  352. return {
  353. type: _keys2.default.fork,
  354. iterator: iterator,
  355. args: args
  356. };
  357. };
  358. var join = exports.join = function join(task) {
  359. return {
  360. type: _keys2.default.join,
  361. task: task
  362. };
  363. };
  364. var race = exports.race = function race(competitors) {
  365. return {
  366. type: _keys2.default.race,
  367. competitors: competitors
  368. };
  369. };
  370. var delay = exports.delay = function delay(timeout) {
  371. return new Promise(function (resolve) {
  372. setTimeout(function () {
  373. return resolve(true);
  374. }, timeout);
  375. });
  376. };
  377. var invoke = exports.invoke = function invoke(func) {
  378. for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
  379. args[_key2 - 1] = arguments[_key2];
  380. }
  381. return {
  382. type: _keys2.default.call,
  383. func: func,
  384. context: null,
  385. args: args
  386. };
  387. };
  388. var call = exports.call = function call(func, context) {
  389. for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
  390. args[_key3 - 2] = arguments[_key3];
  391. }
  392. return {
  393. type: _keys2.default.call,
  394. func: func,
  395. context: context,
  396. args: args
  397. };
  398. };
  399. var apply = exports.apply = function apply(func, context, args) {
  400. return {
  401. type: _keys2.default.call,
  402. func: func,
  403. context: context,
  404. args: args
  405. };
  406. };
  407. var cps = exports.cps = function cps(func) {
  408. for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
  409. args[_key4 - 1] = arguments[_key4];
  410. }
  411. return {
  412. type: _keys2.default.cps,
  413. func: func,
  414. args: args
  415. };
  416. };
  417. var subscribe = exports.subscribe = function subscribe(channel) {
  418. return {
  419. type: _keys2.default.subscribe,
  420. channel: channel
  421. };
  422. };
  423. var createChannel = exports.createChannel = function createChannel(callback) {
  424. var listeners = [];
  425. var subscribe = function subscribe(l) {
  426. listeners.push(l);
  427. return function () {
  428. return listeners.splice(listeners.indexOf(l), 1);
  429. };
  430. };
  431. var next = function next(val) {
  432. return listeners.forEach(function (l) {
  433. return l(val);
  434. });
  435. };
  436. callback(next);
  437. return {
  438. subscribe: subscribe
  439. };
  440. };
  441. /***/ }),
  442. /***/ 9681:
  443. /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
  444. Object.defineProperty(exports, "__esModule", ({
  445. value: true
  446. }));
  447. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
  448. var _keys = __webpack_require__(9851);
  449. var _keys2 = _interopRequireDefault(_keys);
  450. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  451. var is = {
  452. obj: function obj(value) {
  453. return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !!value;
  454. },
  455. all: function all(value) {
  456. return is.obj(value) && value.type === _keys2.default.all;
  457. },
  458. error: function error(value) {
  459. return is.obj(value) && value.type === _keys2.default.error;
  460. },
  461. array: Array.isArray,
  462. func: function func(value) {
  463. return typeof value === 'function';
  464. },
  465. promise: function promise(value) {
  466. return value && is.func(value.then);
  467. },
  468. iterator: function iterator(value) {
  469. return value && is.func(value.next) && is.func(value.throw);
  470. },
  471. fork: function fork(value) {
  472. return is.obj(value) && value.type === _keys2.default.fork;
  473. },
  474. join: function join(value) {
  475. return is.obj(value) && value.type === _keys2.default.join;
  476. },
  477. race: function race(value) {
  478. return is.obj(value) && value.type === _keys2.default.race;
  479. },
  480. call: function call(value) {
  481. return is.obj(value) && value.type === _keys2.default.call;
  482. },
  483. cps: function cps(value) {
  484. return is.obj(value) && value.type === _keys2.default.cps;
  485. },
  486. subscribe: function subscribe(value) {
  487. return is.obj(value) && value.type === _keys2.default.subscribe;
  488. },
  489. channel: function channel(value) {
  490. return is.obj(value) && is.func(value.subscribe);
  491. }
  492. };
  493. exports["default"] = is;
  494. /***/ }),
  495. /***/ 9851:
  496. /***/ (function(__unused_webpack_module, exports) {
  497. Object.defineProperty(exports, "__esModule", ({
  498. value: true
  499. }));
  500. var keys = {
  501. all: Symbol('all'),
  502. error: Symbol('error'),
  503. fork: Symbol('fork'),
  504. join: Symbol('join'),
  505. race: Symbol('race'),
  506. call: Symbol('call'),
  507. cps: Symbol('cps'),
  508. subscribe: Symbol('subscribe')
  509. };
  510. exports["default"] = keys;
  511. /***/ })
  512. /******/ });
  513. /************************************************************************/
  514. /******/ // The module cache
  515. /******/ var __webpack_module_cache__ = {};
  516. /******/
  517. /******/ // The require function
  518. /******/ function __webpack_require__(moduleId) {
  519. /******/ // Check if module is in cache
  520. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  521. /******/ if (cachedModule !== undefined) {
  522. /******/ return cachedModule.exports;
  523. /******/ }
  524. /******/ // Create a new module (and put it into the cache)
  525. /******/ var module = __webpack_module_cache__[moduleId] = {
  526. /******/ // no module.id needed
  527. /******/ // no module.loaded needed
  528. /******/ exports: {}
  529. /******/ };
  530. /******/
  531. /******/ // Execute the module function
  532. /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
  533. /******/
  534. /******/ // Return the exports of the module
  535. /******/ return module.exports;
  536. /******/ }
  537. /******/
  538. /************************************************************************/
  539. /******/ /* webpack/runtime/define property getters */
  540. /******/ !function() {
  541. /******/ // define getter functions for harmony exports
  542. /******/ __webpack_require__.d = function(exports, definition) {
  543. /******/ for(var key in definition) {
  544. /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  545. /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  546. /******/ }
  547. /******/ }
  548. /******/ };
  549. /******/ }();
  550. /******/
  551. /******/ /* webpack/runtime/hasOwnProperty shorthand */
  552. /******/ !function() {
  553. /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
  554. /******/ }();
  555. /******/
  556. /************************************************************************/
  557. var __webpack_exports__ = {};
  558. // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
  559. !function() {
  560. // EXPORTS
  561. __webpack_require__.d(__webpack_exports__, {
  562. "default": function() { return /* binding */ createMiddleware; }
  563. });
  564. ;// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/is-generator.js
  565. /* eslint-disable jsdoc/valid-types */
  566. /**
  567. * Returns true if the given object is a generator, or false otherwise.
  568. *
  569. * @see https://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects
  570. *
  571. * @param {any} object Object to test.
  572. *
  573. * @return {object is Generator} Whether object is a generator.
  574. */
  575. function isGenerator(object) {
  576. /* eslint-enable jsdoc/valid-types */
  577. // Check that iterator (next) and iterable (Symbol.iterator) interfaces are satisfied.
  578. // These checks seem to be compatible with several generator helpers as well as the native implementation.
  579. return !!object && typeof object[Symbol.iterator] === 'function' && typeof object.next === 'function';
  580. }
  581. // EXTERNAL MODULE: ./node_modules/rungen/dist/index.js
  582. var dist = __webpack_require__(2290);
  583. ;// CONCATENATED MODULE: ./node_modules/is-promise/index.mjs
  584. function isPromise(obj) {
  585. return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
  586. }
  587. ;// CONCATENATED MODULE: ./node_modules/is-plain-object/dist/is-plain-object.mjs
  588. /*!
  589. * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
  590. *
  591. * Copyright (c) 2014-2017, Jon Schlinkert.
  592. * Released under the MIT License.
  593. */
  594. function isObject(o) {
  595. return Object.prototype.toString.call(o) === '[object Object]';
  596. }
  597. function isPlainObject(o) {
  598. var ctor,prot;
  599. if (isObject(o) === false) return false;
  600. // If has modified constructor
  601. ctor = o.constructor;
  602. if (ctor === undefined) return true;
  603. // If has modified prototype
  604. prot = ctor.prototype;
  605. if (isObject(prot) === false) return false;
  606. // If constructor does not have an Object-specific method
  607. if (prot.hasOwnProperty('isPrototypeOf') === false) {
  608. return false;
  609. }
  610. // Most likely a plain Object
  611. return true;
  612. }
  613. ;// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/is-action.js
  614. /**
  615. * External dependencies
  616. */
  617. /* eslint-disable jsdoc/valid-types */
  618. /**
  619. * Returns true if the given object quacks like an action.
  620. *
  621. * @param {any} object Object to test
  622. *
  623. * @return {object is import('redux').AnyAction} Whether object is an action.
  624. */
  625. function isAction(object) {
  626. return isPlainObject(object) && typeof object.type === 'string';
  627. }
  628. /**
  629. * Returns true if the given object quacks like an action and has a specific
  630. * action type
  631. *
  632. * @param {unknown} object Object to test
  633. * @param {string} expectedType The expected type for the action.
  634. *
  635. * @return {object is import('redux').AnyAction} Whether object is an action and is of specific type.
  636. */
  637. function isActionOfType(object, expectedType) {
  638. /* eslint-enable jsdoc/valid-types */
  639. return isAction(object) && object.type === expectedType;
  640. }
  641. ;// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/runtime.js
  642. /**
  643. * External dependencies
  644. */
  645. /**
  646. * Internal dependencies
  647. */
  648. /**
  649. * Create a co-routine runtime.
  650. *
  651. * @param controls Object of control handlers.
  652. * @param dispatch Unhandled action dispatch.
  653. */
  654. function createRuntime(controls = {}, dispatch) {
  655. const rungenControls = Object.entries(controls).map(([actionType, control]) => (value, next, iterate, yieldNext, yieldError) => {
  656. if (!isActionOfType(value, actionType)) {
  657. return false;
  658. }
  659. const routine = control(value);
  660. if (isPromise(routine)) {
  661. // Async control routine awaits resolution.
  662. routine.then(yieldNext, yieldError);
  663. } else {
  664. yieldNext(routine);
  665. }
  666. return true;
  667. });
  668. const unhandledActionControl = (value, next) => {
  669. if (!isAction(value)) {
  670. return false;
  671. }
  672. dispatch(value);
  673. next();
  674. return true;
  675. };
  676. rungenControls.push(unhandledActionControl);
  677. const rungenRuntime = (0,dist.create)(rungenControls);
  678. return action => new Promise((resolve, reject) => rungenRuntime(action, result => {
  679. if (isAction(result)) {
  680. dispatch(result);
  681. }
  682. resolve(result);
  683. }, reject));
  684. }
  685. ;// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/index.js
  686. /**
  687. * Internal dependencies
  688. */
  689. /**
  690. * Creates a Redux middleware, given an object of controls where each key is an
  691. * action type for which to act upon, the value a function which returns either
  692. * a promise which is to resolve when evaluation of the action should continue,
  693. * or a value. The value or resolved promise value is assigned on the return
  694. * value of the yield assignment. If the control handler returns undefined, the
  695. * execution is not continued.
  696. *
  697. * @param {Record<string, (value: import('redux').AnyAction) => Promise<boolean> | boolean>} controls Object of control handlers.
  698. *
  699. * @return {import('redux').Middleware} Co-routine runtime
  700. */
  701. function createMiddleware(controls = {}) {
  702. return store => {
  703. const runtime = createRuntime(controls, store.dispatch);
  704. return next => action => {
  705. if (!isGenerator(action)) {
  706. return next(action);
  707. }
  708. return runtime(action);
  709. };
  710. };
  711. }
  712. }();
  713. (window.wp = window.wp || {}).reduxRoutine = __webpack_exports__["default"];
  714. /******/ })()
  715. ;