attadux
Version:
Implementation of the redux-modular-ducks, forked from the extensible-duck implementation and extended to include spected validators, state machines, helpers, web workers, effect handling, action multipliers, action enhancers, action throttling/debouncing
92 lines (49 loc) • 3.37 kB
JavaScript
'use strict';
exports.__esModule = true;
exports.makeWorkers = exports.getWorkers = undefined;
var _reject = require('ramda/src/reject');
var _reject2 = _interopRequireDefault(_reject);
var _map = require('ramda/src/map');
var _map2 = _interopRequireDefault(_map);
var _pathOr = require('ramda/src/pathOr');
var _pathOr2 = _interopRequireDefault(_pathOr);
var _compose = require('ramda/src/compose');
var _compose2 = _interopRequireDefault(_compose);
var _call = require('ramda/src/call');
var _call2 = _interopRequireDefault(_call);
var _converge = require('ramda/src/converge');
var _converge2 = _interopRequireDefault(_converge);
var _test = require('ramda/src/test');
var _test2 = _interopRequireDefault(_test);
var _unless = require('ramda/src/unless');
var _unless2 = _interopRequireDefault(_unless);
var _replace = require('ramda/src/replace');
var _replace2 = _interopRequireDefault(_replace);
var _pipe = require('ramda/src/pipe');
var _pipe2 = _interopRequireDefault(_pipe);
var _always = require('ramda/src/always');
var _always2 = _interopRequireDefault(_always);
var _T = require('ramda/src/T');
var _T2 = _interopRequireDefault(_T);
var _identity = require('ramda/src/identity');
var _identity2 = _interopRequireDefault(_identity);
var _invoker = require('ramda/src/invoker');
var _invoker2 = _interopRequireDefault(_invoker);
var _is = require('ramda/src/is');
var _is2 = _interopRequireDefault(_is);
var _cond = require('ramda/src/cond');
var _cond2 = _interopRequireDefault(_cond);
var _workerize = require('workerize');
var _workerize2 = _interopRequireDefault(_workerize);
var _util = require('../util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/* eslint-disable no-undef */
var hasWorkers = typeof Worker !== 'undefined' && Worker !== null && typeof Blob !== 'undefined' && Blob !== null;
/* eslint-enable no-undef */
var makeWorkerString = (0, _cond2['default'])([[(0, _is2['default'])(Function), (0, _invoker2['default'])(0, 'toString')], [(0, _is2['default'])(String), _identity2['default']], [_T2['default'], (0, _always2['default'])('')]]);
var makeExportable = (0, _pipe2['default'])((0, _replace2['default'])(/^(\s*)\(/m, 'export const run = ('), (0, _replace2['default'])(/^(\s*)const/m, 'export const'), (0, _replace2['default'])(/^(\s*)function\s*\(/m, 'export function run('), (0, _replace2['default'])(/^(\s*)function\s+/m, 'export function '), (0, _replace2['default'])(/^(\s*)function\*\s+/m, 'export function* '), (0, _replace2['default'])(/^(\s*)async\s+\(/m, 'export const run = async ('), (0, _replace2['default'])(/^(\s*)async\s+function\s*\(/m, 'export async function run('));
var makeWorker = (0, _pipe2['default'])(makeWorkerString, makeExportable, (0, _unless2['default'])((0, _test2['default'])(/^\s*$/), function (str) {
return (0, _workerize2['default'])('' + str);
}));
var getWorkers = exports.getWorkers = (0, _converge2['default'])(_call2['default'], [(0, _compose2['default'])(_util.coerceToFn, (0, _pathOr2['default'])({}, ['options', 'workers'])), _identity2['default']]);
var makeWorkers = exports.makeWorkers = (0, _pipe2['default'])(getWorkers, (0, _map2['default'])(hasWorkers ? makeWorker : (0, _pipe2['default'])(makeWorkerString, makeExportable)), (0, _reject2['default'])((0, _test2['default'])(/^\s*$/)));