UNPKG

ruddy

Version:

Modularized state-management tools for modern front-end applications. Manage dispatched messages in a clean and predictable way for either small or large scale projects

92 lines (49 loc) 3.28 kB
'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*$/)));