@vve/redux-saga 8.4.0 → 9.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/effects.js +3 -2
- package/es/effects.js.map +1 -0
- package/es/index.js +11 -10
- package/es/index.js.map +1 -0
- package/es/internal/buffers.js +21 -45
- package/es/internal/buffers.js.map +1 -0
- package/es/internal/channel.js +36 -87
- package/es/internal/channel.js.map +1 -0
- package/es/internal/channels-trans-table.png +0 -0
- package/es/internal/convenient-io.js +6 -19
- package/es/internal/convenient-io.js.map +1 -0
- package/es/internal/io-helpers.js +7 -9
- package/es/internal/io-helpers.js.map +1 -0
- package/es/internal/io.js +70 -113
- package/es/internal/io.js.map +1 -0
- package/es/internal/middleware.js +42 -45
- package/es/internal/middleware.js.map +1 -0
- package/es/internal/proc.js +188 -358
- package/es/internal/proc.js.map +1 -0
- package/es/internal/runSaga.js +20 -27
- package/es/internal/runSaga.js.map +1 -0
- package/es/internal/sagaHelpers/fsmIterator.js +13 -22
- package/es/internal/sagaHelpers/fsmIterator.js.map +1 -0
- package/es/internal/sagaHelpers/index.js +12 -13
- package/es/internal/sagaHelpers/index.js.map +1 -0
- package/es/internal/sagaHelpers/takeEvery.js +13 -20
- package/es/internal/sagaHelpers/takeEvery.js.map +1 -0
- package/es/internal/sagaHelpers/takeLatest.js +19 -33
- package/es/internal/sagaHelpers/takeLatest.js.map +1 -0
- package/es/internal/sagaHelpers/throttle.js +22 -36
- package/es/internal/sagaHelpers/throttle.js.map +1 -0
- package/es/internal/scheduler.js +7 -11
- package/es/internal/scheduler.js.map +1 -0
- package/es/internal/utils.js +101 -205
- package/es/internal/utils.js.map +1 -0
- package/es/utils.js +5 -4
- package/es/utils.js.map +1 -0
- package/lib/effects.js +138 -30
- package/lib/effects.js.map +1 -0
- package/lib/index.js +86 -48
- package/lib/index.js.map +1 -0
- package/lib/internal/buffers.js +24 -48
- package/lib/internal/buffers.js.map +1 -0
- package/lib/internal/channel.js +43 -100
- package/lib/internal/channel.js.map +1 -0
- package/lib/internal/channels-trans-table.png +0 -0
- package/lib/internal/convenient-io.js +10 -23
- package/lib/internal/convenient-io.js.map +1 -0
- package/lib/internal/io-helpers.js +10 -15
- package/lib/internal/io-helpers.js.map +1 -0
- package/lib/internal/io.js +89 -149
- package/lib/internal/io.js.map +1 -0
- package/lib/internal/middleware.js +46 -51
- package/lib/internal/middleware.js.map +1 -0
- package/lib/internal/proc.js +194 -372
- package/lib/internal/proc.js.map +1 -0
- package/lib/internal/runSaga.js +25 -35
- package/lib/internal/runSaga.js.map +1 -0
- package/lib/internal/sagaHelpers/fsmIterator.js +19 -29
- package/lib/internal/sagaHelpers/fsmIterator.js.map +1 -0
- package/lib/internal/sagaHelpers/index.js +37 -27
- package/lib/internal/sagaHelpers/index.js.map +1 -0
- package/lib/internal/sagaHelpers/takeEvery.js +19 -31
- package/lib/internal/sagaHelpers/takeEvery.js.map +1 -0
- package/lib/internal/sagaHelpers/takeLatest.js +25 -44
- package/lib/internal/sagaHelpers/takeLatest.js.map +1 -0
- package/lib/internal/sagaHelpers/throttle.js +28 -49
- package/lib/internal/sagaHelpers/throttle.js.map +1 -0
- package/lib/internal/scheduler.js +11 -15
- package/lib/internal/scheduler.js.map +1 -0
- package/lib/internal/utils.js +119 -247
- package/lib/internal/utils.js.map +1 -0
- package/lib/utils.js +69 -22
- package/lib/utils.js.map +1 -0
- package/package.json +19 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proc.js","names":["noop","kTrue","is","log","_log","check","deferred","uid","nextEffectId","array","remove","object","TASK","CANCEL","SELF_CANCELLATION","makeIterator","createSetContextWarning","deprecate","updateIncentive","asap","suspend","flush","asEffect","stdChannel","_stdChannel","eventChannel","isEnd","buffers","pageKey","reducerKey","completeIOType","NOT_ITERATOR_ERROR","CHANNEL_END","toString","TASK_CANCEL","matchers","wildcard","default","pattern","input","type","String","patterns","some","p","matcher","predicate","stringableFunc","func","forkQueue","name","mainTask","cb","tasks","result","completed","addTask","abort","err","cancelAll","task","push","cont","res","isErr","length","forEach","t","cancel","getTasks","taskNames","map","createTaskIterator","_ref","context","fn","args","iterator","error","apply","pc","eff","done","value","ret","arg","wrapHelper","helper","proc","subscribe","arguments","undefined","dispatch","getState","parentContext","options","parentEffectId","effectsString","runParallelEffect","runAllEffect","sagaMonitor","logger","onError","logError","message","sagaStack","stack","split","indexOf","taskContext","Object","create","next","newTask","cancelMain","isRunning","taskQueue","end","isCancelled","_isRunning","_isCancelled","Error","throw","return","runEffect","isMainRunning","close","_result","_deferredEnd","resolve","defineProperty","configurable","_error","_isAborted","reject","joiners","j","effect","label","getContext","effectId","effectTriggered","effectSettled","currCb","effectRejected","effectResolved","effectCancelled","data","promise","resolvePromise","runForkEffect","resolveIterator","take","runTakeEffect","put","runPutEffect","all","race","runRaceEffect","call","runCallEffect","cps","runCPSEffect","fork","join","runJoinEffect","runCancelEffect","select","runSelectEffect","selectSelf","runSelectSelfEffect","putMutation","runPutMutationEffect","putAsyncAction","runPutAsyncEffect","actionChannel","runChannelEffect","runFlushEffect","cancelled","runCancelledEffect","runGetContextEffect","setContext","runSetContextEffect","cancelPromise","then","_ref2","channel","maybe","takeCb","inp","namespaceFilter","_ref3","action","namespaceDecorate","_ref4","_ref5","cpsCb","undef","concat","_ref6","detached","taskIterator","joiner","isAborted","taskToCancel","effects","keys","completedCount","results","childCbs","checkEffectEnd","from","_objectSpread","key","chCbAtKey","response","slice","_ref7","selector","state","getReducerKey","_","_ref8","page","_ref9","_ref10","buffer","match","fixed","prop","props","assign","enumerable","writable","nxt","id","def"],"sources":["../../proc.js"],"sourcesContent":["import {\n noop,\n kTrue,\n is,\n log as _log,\n check,\n deferred,\n uid as nextEffectId,\n array,\n remove,\n object,\n TASK,\n CANCEL,\n SELF_CANCELLATION,\n makeIterator,\n createSetContextWarning,\n deprecate,\n updateIncentive,\n} from './utils'\nimport { asap, suspend, flush } from './scheduler'\nimport { asEffect } from './io'\nimport { stdChannel as _stdChannel, eventChannel, isEnd } from './channel'\nimport { buffers } from './buffers'\nimport { pageKey, reducerKey } from '../utils';\nimport completeIOType from './convenient-io';\n\nexport const NOT_ITERATOR_ERROR = 'proc first argument (Saga function result) must be an iterator'\n\nexport const CHANNEL_END = {\n toString() {\n return '@@redux-saga/CHANNEL_END'\n },\n}\nexport const TASK_CANCEL = {\n toString() {\n return '@@redux-saga/TASK_CANCEL'\n },\n}\n\nconst matchers = {\n wildcard: () => kTrue,\n default: pattern =>\n typeof pattern === 'symbol' ? input => input.type === pattern : input => input.type === String(pattern),\n array: patterns => input => patterns.some(p => matcher(p)(input)),\n predicate: predicate => input => predicate(input),\n}\n\nfunction matcher(pattern) {\n // prettier-ignore\n return (\n pattern === '*' ? matchers.wildcard\n : is.array(pattern) ? matchers.array\n : is.stringableFunc(pattern) ? matchers.default\n : is.func(pattern) ? matchers.predicate\n : matchers.default\n )(pattern)\n}\n\n/**\n Used to track a parent task and its forks\n In the new fork model, forked tasks are attached by default to their parent\n We model this using the concept of Parent task && main Task\n main task is the main flow of the current Generator, the parent tasks is the\n aggregation of the main tasks + all its forked tasks.\n Thus the whole model represents an execution tree with multiple branches (vs the\n linear execution tree in sequential (non parallel) programming)\n\n A parent tasks has the following semantics\n - It completes if all its forks either complete or all cancelled\n - If it's cancelled, all forks are cancelled as well\n - It aborts if any uncaught error bubbles up from forks\n - If it completes, the return value is the one returned by the main task\n**/\nfunction forkQueue(name, mainTask, cb) {\n let tasks = [],\n result,\n completed = false\n addTask(mainTask)\n\n function abort(err) {\n cancelAll()\n cb(err, true)\n }\n\n function addTask(task) {\n tasks.push(task)\n task.cont = (res, isErr) => {\n if (completed) {\n return\n }\n\n remove(tasks, task)\n task.cont = noop\n if (isErr) {\n abort(res)\n } else {\n if (task === mainTask) {\n result = res\n }\n if (!tasks.length) {\n completed = true\n cb(result)\n }\n }\n }\n // task.cont.cancel = task.cancel\n }\n\n function cancelAll() {\n if (completed) {\n return\n }\n completed = true\n tasks.forEach(t => {\n t.cont = noop\n t.cancel()\n })\n tasks = []\n }\n\n return {\n addTask,\n cancelAll,\n abort,\n getTasks: () => tasks,\n taskNames: () => tasks.map(t => t.name),\n }\n}\n\nfunction createTaskIterator({ context, fn, args }) {\n if (is.iterator(fn)) {\n return fn\n }\n\n // catch synchronous failures; see #152 and #441\n let result, error\n try {\n result = fn.apply(context, args)\n } catch (err) {\n error = err\n }\n\n // i.e. a generator function returns an iterator\n if (is.iterator(result)) {\n return result\n }\n\n // do not bubble up synchronous failures for detached forks\n // instead create a failed task. See #152 and #441\n return error\n ? makeIterator(() => {\n throw error\n })\n : makeIterator(\n (function() {\n let pc\n const eff = { done: false, value: result }\n const ret = value => ({ done: true, value })\n return arg => {\n if (!pc) {\n pc = true\n return eff\n } else {\n return ret(arg)\n }\n }\n })(),\n )\n}\n\nconst wrapHelper = helper => ({ fn: helper })\n\nexport default function proc(\n iterator,\n subscribe = () => noop,\n dispatch = noop,\n getState = noop,\n parentContext = {},\n options = {},\n parentEffectId = 0,\n name = 'anonymous',\n cont,\n) {\n check(iterator, is.iterator, NOT_ITERATOR_ERROR)\n\n const effectsString = '[...effects]'\n const runParallelEffect = deprecate(runAllEffect, updateIncentive(effectsString, `all(${effectsString})`))\n\n const { sagaMonitor, logger, onError } = options\n const log = logger || _log\n const logError = err => {\n let message = err.sagaStack\n\n if (!message && err.stack) {\n message = err.stack.split('\\n')[0].indexOf(err.message) !== -1 ? err.stack : `Error: ${err.message}\\n${err.stack}`\n }\n\n log('error', `uncaught at ${name}`, message || err.message || err)\n }\n const stdChannel = _stdChannel(subscribe)\n const taskContext = Object.create(parentContext)\n /**\n Tracks the current effect cancellation\n Each time the generator progresses. calling runEffect will set a new value\n on it. It allows propagating cancellation to child effects\n **/\n next.cancel = noop\n\n /**\n Creates a new task descriptor for this generator, We'll also create a main task\n to track the main flow (besides other forked tasks)\n **/\n const task = newTask(parentEffectId, name, iterator, cont)\n const mainTask = { name, cancel: cancelMain, isRunning: true }\n const taskQueue = forkQueue(name, mainTask, end)\n\n /**\n cancellation of the main task. We'll simply resume the Generator with a Cancel\n **/\n function cancelMain() {\n if (mainTask.isRunning && !mainTask.isCancelled) {\n mainTask.isCancelled = true\n next(TASK_CANCEL)\n }\n }\n\n /**\n This may be called by a parent generator to trigger/propagate cancellation\n cancel all pending tasks (including the main task), then end the current task.\n\n Cancellation propagates down to the whole execution tree holded by this Parent task\n It's also propagated to all joiners of this task and their execution tree/joiners\n\n Cancellation is noop for terminated/Cancelled tasks tasks\n **/\n function cancel() {\n /**\n We need to check both Running and Cancelled status\n Tasks can be Cancelled but still Running\n **/\n if (iterator._isRunning && !iterator._isCancelled) {\n iterator._isCancelled = true\n taskQueue.cancelAll()\n /**\n Ending with a Never result will propagate the Cancellation to all joiners\n **/\n end(TASK_CANCEL)\n }\n }\n /**\n attaches cancellation logic to this task's continuation\n this will permit cancellation to propagate down the call chain\n **/\n cont && (cont.cancel = cancel)\n\n // tracks the running status\n iterator._isRunning = true\n\n // kicks up the generator\n next()\n\n // then return the task descriptor to the caller\n return task\n\n /**\n This is the generator driver\n It's a recursive async/continuation function which calls itself\n until the generator terminates or throws\n **/\n function next(arg, isErr) {\n // Preventive measure. If we end up here, then there is really something wrong\n if (!mainTask.isRunning) {\n throw new Error('Trying to resume an already finished generator')\n }\n\n try {\n let result\n if (isErr) {\n result = iterator.throw(arg)\n } else if (arg === TASK_CANCEL) {\n /**\n getting TASK_CANCEL automatically cancels the main task\n We can get this value here\n\n - By cancelling the parent task manually\n - By joining a Cancelled task\n **/\n mainTask.isCancelled = true\n /**\n Cancels the current effect; this will propagate the cancellation down to any called tasks\n **/\n next.cancel()\n /**\n If this Generator has a `return` method then invokes it\n This will jump to the finally block\n **/\n result = is.func(iterator.return) ? iterator.return(TASK_CANCEL) : { done: true, value: TASK_CANCEL }\n } else if (arg === CHANNEL_END) {\n // We get CHANNEL_END by taking from a channel that ended using `take` (and not `takem` used to trap End of channels)\n result = is.func(iterator.return) ? iterator.return() : { done: true }\n } else {\n result = iterator.next(arg)\n }\n\n if (!result.done) {\n runEffect(result.value, parentEffectId, '', next)\n } else {\n /**\n This Generator has ended, terminate the main task and notify the fork queue\n **/\n mainTask.isMainRunning = false\n mainTask.cont && mainTask.cont(result.value)\n }\n } catch (error) {\n if (mainTask.isCancelled) {\n logError(error)\n }\n mainTask.isMainRunning = false\n mainTask.cont(error, true)\n }\n }\n\n function end(result, isErr) {\n iterator._isRunning = false\n stdChannel.close()\n if (!isErr) {\n iterator._result = result\n iterator._deferredEnd && iterator._deferredEnd.resolve(result)\n } else {\n if (result instanceof Error) {\n Object.defineProperty(result, 'sagaStack', {\n value: `at ${name} \\n ${result.sagaStack || result.stack}`,\n configurable: true,\n })\n }\n if (!task.cont) {\n if (result instanceof Error && onError) {\n onError(result)\n } else {\n logError(result)\n }\n }\n iterator._error = result\n iterator._isAborted = true\n iterator._deferredEnd && iterator._deferredEnd.reject(result)\n }\n task.cont && task.cont(result, isErr)\n task.joiners.forEach(j => j.cb(result, isErr))\n task.joiners = null\n }\n\n function runEffect(effect, parentEffectId, label = '', cb) {\n if (getContext('mobxStyle')) {\n effect = completeIOType(effect);\n }\n\n const effectId = nextEffectId()\n sagaMonitor && sagaMonitor.effectTriggered({ effectId, parentEffectId, label, effect })\n\n /**\n completion callback and cancel callback are mutually exclusive\n We can't cancel an already completed effect\n And We can't complete an already cancelled effectId\n **/\n let effectSettled\n\n // Completion callback passed to the appropriate effect runner\n function currCb(res, isErr) {\n if (effectSettled) {\n return\n }\n\n effectSettled = true\n cb.cancel = noop // defensive measure\n if (sagaMonitor) {\n isErr ? sagaMonitor.effectRejected(effectId, res) : sagaMonitor.effectResolved(effectId, res)\n }\n cb(res, isErr)\n }\n // tracks down the current cancel\n currCb.cancel = noop\n\n // setup cancellation logic on the parent cb\n cb.cancel = () => {\n // prevents cancelling an already completed effect\n if (effectSettled) {\n return\n }\n\n effectSettled = true\n /**\n propagates cancel downward\n catch uncaught cancellations errors; since we can no longer call the completion\n callback, log errors raised during cancellations into the console\n **/\n try {\n currCb.cancel()\n } catch (err) {\n logError(err)\n }\n currCb.cancel = noop // defensive measure\n\n sagaMonitor && sagaMonitor.effectCancelled(effectId)\n }\n\n /**\n each effect runner must attach its own logic of cancellation to the provided callback\n it allows this generator to propagate cancellation downward.\n\n ATTENTION! effect runners must setup the cancel logic by setting cb.cancel = [cancelMethod]\n And the setup must occur before calling the callback\n\n This is a sort of inversion of control: called async functions are responsible\n for completing the flow by calling the provided continuation; while caller functions\n are responsible for aborting the current flow by calling the attached cancel function\n\n Library users can attach their own cancellation logic to promises by defining a\n promise[CANCEL] method in their returned promises\n ATTENTION! calling cancel must have no effect on an already completed or cancelled effect\n **/\n let data\n // prettier-ignore\n return (\n // Non declarative effect\n is.promise(effect) ? resolvePromise(effect, currCb)\n : is.helper(effect) ? runForkEffect(wrapHelper(effect), effectId, currCb)\n : is.iterator(effect) ? resolveIterator(effect, effectId, name, currCb)\n\n // declarative effects\n : is.array(effect) ? runParallelEffect(effect, effectId, currCb)\n : (data = asEffect.take(effect)) ? runTakeEffect(data, currCb)\n : (data = asEffect.put(effect)) ? runPutEffect(data, currCb)\n : (data = asEffect.all(effect)) ? runAllEffect(data, effectId, currCb)\n : (data = asEffect.race(effect)) ? runRaceEffect(data, effectId, currCb)\n : (data = asEffect.call(effect)) ? runCallEffect(data, effectId, currCb)\n : (data = asEffect.cps(effect)) ? runCPSEffect(data, currCb)\n : (data = asEffect.fork(effect)) ? runForkEffect(data, effectId, currCb)\n : (data = asEffect.join(effect)) ? runJoinEffect(data, currCb)\n : (data = asEffect.cancel(effect)) ? runCancelEffect(data, currCb)\n : (data = asEffect.select(effect)) ? runSelectEffect(data, currCb)\n : (data = asEffect.selectSelf(effect)) ? runSelectSelfEffect(data, currCb)\n : (data = asEffect.putMutation(effect)) ? runPutMutationEffect(data, currCb)\n : (data = asEffect.putAsyncAction(effect))? runPutAsyncEffect(data, currCb)\n : (data = asEffect.actionChannel(effect)) ? runChannelEffect(data, currCb)\n : (data = asEffect.flush(effect)) ? runFlushEffect(data, currCb)\n : (data = asEffect.cancelled(effect)) ? runCancelledEffect(data, currCb)\n : (data = asEffect.getContext(effect)) ? runGetContextEffect(data, currCb)\n : (data = asEffect.setContext(effect)) ? runSetContextEffect(data, currCb)\n : /* anything else returned as is */ currCb(effect)\n )\n }\n\n function resolvePromise(promise, cb) {\n const cancelPromise = promise[CANCEL]\n if (is.func(cancelPromise)) {\n cb.cancel = cancelPromise\n } else if (is.func(promise.abort)) {\n cb.cancel = () => promise.abort()\n // TODO: add support for the fetch API, whenever they get around to\n // adding cancel support\n }\n promise.then(cb, error => cb(error, true))\n }\n\n function resolveIterator(iterator, effectId, name, cb) {\n proc(iterator, subscribe, dispatch, getState, taskContext, options, effectId, name, cb)\n }\n\n function runTakeEffect({ channel, pattern, maybe }, cb) {\n channel = channel || stdChannel\n const takeCb = inp => (inp instanceof Error ? cb(inp, true) : isEnd(inp) && !maybe ? cb(CHANNEL_END) : cb(inp))\n try {\n channel.take(takeCb, namespaceFilter(pattern, matcher))\n } catch (err) {\n return cb(err, true)\n }\n cb.cancel = takeCb.cancel\n }\n\n function runPutEffect({ channel, action, resolve }, cb) {\n /**\n Schedule the put in case another saga is holding a lock.\n The put will be executed atomically. ie nested puts will execute after\n this put has terminated.\n **/\n asap(() => {\n let result\n try {\n result = (channel ? channel.put : dispatch)(namespaceDecorate(action))\n } catch (error) {\n // If we have a channel or `put.resolve` was used then bubble up the error.\n if (channel || resolve) return cb(error, true)\n logError(error)\n }\n\n if (resolve && is.promise(result)) {\n resolvePromise(result, cb)\n } else {\n return cb(result)\n }\n })\n // Put effects are non cancellables\n }\n\n function runCallEffect({ context, fn, args }, effectId, cb) {\n let result\n // catch synchronous failures; see #152\n try {\n result = fn.apply(context, args)\n } catch (error) {\n return cb(error, true)\n }\n return is.promise(result)\n ? resolvePromise(result, cb)\n : is.iterator(result)\n ? resolveIterator(result, effectId, fn.name, cb)\n : cb(result)\n }\n\n function runCPSEffect({ context, fn, args }, cb) {\n // CPS (ie node style functions) can define their own cancellation logic\n // by setting cancel field on the cb\n\n // catch synchronous failures; see #152\n try {\n const cpsCb = (err, res) => (is.undef(err) ? cb(res) : cb(err, true))\n fn.apply(context, args.concat(cpsCb))\n if (cpsCb.cancel) {\n cb.cancel = () => cpsCb.cancel()\n }\n } catch (error) {\n return cb(error, true)\n }\n }\n\n function runForkEffect({ context, fn, args, detached }, effectId, cb) {\n const taskIterator = createTaskIterator({ context, fn, args })\n\n try {\n suspend()\n const task = proc(\n taskIterator,\n subscribe,\n dispatch,\n getState,\n taskContext,\n options,\n effectId,\n fn.name,\n detached ? null : noop,\n )\n\n if (detached) {\n cb(task)\n } else {\n if (taskIterator._isRunning) {\n taskQueue.addTask(task)\n cb(task)\n } else if (taskIterator._error) {\n taskQueue.abort(taskIterator._error)\n } else {\n cb(task)\n }\n }\n } finally {\n flush()\n }\n // Fork effects are non cancellables\n }\n\n function runJoinEffect(t, cb) {\n if (t.isRunning()) {\n const joiner = { task, cb }\n cb.cancel = () => remove(t.joiners, joiner)\n t.joiners.push(joiner)\n } else {\n t.isAborted() ? cb(t.error(), true) : cb(t.result())\n }\n }\n\n function runCancelEffect(taskToCancel, cb) {\n if (taskToCancel === SELF_CANCELLATION) {\n taskToCancel = task\n }\n if (taskToCancel.isRunning()) {\n taskToCancel.cancel()\n }\n cb()\n // cancel effects are non cancellables\n }\n\n function runAllEffect(effects, effectId, cb) {\n const keys = Object.keys(effects)\n\n if (!keys.length) {\n return cb(is.array(effects) ? [] : {})\n }\n\n let completedCount = 0\n let completed\n const results = {}\n const childCbs = {}\n\n function checkEffectEnd() {\n if (completedCount === keys.length) {\n completed = true\n cb(is.array(effects) ? array.from({ ...results, length: keys.length }) : results)\n }\n }\n\n keys.forEach(key => {\n const chCbAtKey = (res, isErr) => {\n if (completed) {\n return\n }\n if (isErr || isEnd(res) || res === CHANNEL_END || res === TASK_CANCEL) {\n cb.cancel()\n cb(res, isErr)\n } else {\n results[key] = res\n completedCount++\n checkEffectEnd()\n }\n }\n chCbAtKey.cancel = noop\n childCbs[key] = chCbAtKey\n })\n\n cb.cancel = () => {\n if (!completed) {\n completed = true\n keys.forEach(key => childCbs[key].cancel())\n }\n }\n\n keys.forEach(key => runEffect(effects[key], effectId, key, childCbs[key]))\n }\n\n function runRaceEffect(effects, effectId, cb) {\n let completed\n const keys = Object.keys(effects)\n const childCbs = {}\n\n keys.forEach(key => {\n const chCbAtKey = (res, isErr) => {\n if (completed) {\n return\n }\n\n if (isErr) {\n // Race Auto cancellation\n cb.cancel()\n cb(res, true)\n } else if (!isEnd(res) && res !== CHANNEL_END && res !== TASK_CANCEL) {\n cb.cancel()\n completed = true\n const response = { [key]: res }\n cb(is.array(effects) ? [].slice.call({ ...response, length: keys.length }) : response)\n }\n }\n chCbAtKey.cancel = noop\n childCbs[key] = chCbAtKey\n })\n\n cb.cancel = () => {\n // prevents unnecessary cancellation\n if (!completed) {\n completed = true\n keys.forEach(key => childCbs[key].cancel())\n }\n }\n keys.forEach(key => {\n if (completed) {\n return\n }\n runEffect(effects[key], effectId, key, childCbs[key])\n })\n }\n\n function runSelectEffect({ selector, args }, cb) {\n try {\n // compat\n const state = { ...getState() };\n state[getContext(pageKey)] = state[getReducerKey()];\n cb(selector(state, ...args))\n } catch (error) {\n cb(error, true)\n }\n }\n\n function runSelectSelfEffect(_, cb) {\n try {\n const state = getState()[getReducerKey()];\n cb(state)\n } catch (error) {\n cb(error, true)\n }\n }\n\n function runPutMutationEffect({ fn }, cb) {\n const action = {\n type: '@@INNER/SAGA_EDIT',\n page: getReducerKey(),\n fn,\n };\n\n return runPutEffect({\n action,\n }, cb);\n }\n\n function runPutAsyncEffect({ action }, cb) {\n return runPutEffect({\n action: action,\n }, function (res, err) {\n if (err) {\n return cb(res, err)\n }\n resolvePromise(action['@@INNER/DONE_MARK'], cb);\n })\n }\n\n function runChannelEffect({ pattern, buffer }, cb) {\n const match = matcher(pattern)\n match.pattern = pattern\n cb(eventChannel(subscribe, buffer || buffers.fixed(), match))\n }\n\n function runCancelledEffect(data, cb) {\n cb(!!mainTask.isCancelled)\n }\n\n function runFlushEffect(channel, cb) {\n channel.flush(cb)\n }\n\n function runGetContextEffect(prop, cb) {\n cb(prop === ' ' ? taskContext : taskContext[prop])\n }\n\n function runSetContextEffect(props, cb) {\n object.assign(taskContext, props)\n cb()\n }\n\n function getContext(prop) {\n return taskContext[prop]\n }\n\n function getReducerKey() {\n return getContext(reducerKey) || getContext(pageKey);\n }\n\n function namespaceDecorate(action) {\n if (getContext(pageKey)) {\n Object.defineProperty(action, pageKey, {\n value: getContext(reducerKey) || getContext(pageKey),\n enumerable: false,\n configurable: false,\n writable: false,\n })\n }\n return action\n }\n\n // todo remove\n function namespaceFilter(pattern, next) {\n const nxt = next(pattern)\n return action => {\n return nxt(action)\n }\n }\n\n function newTask(id, name, iterator, cont) {\n iterator._deferredEnd = null\n return {\n [TASK]: true,\n id,\n name,\n get done() {\n if (iterator._deferredEnd) {\n return iterator._deferredEnd.promise\n } else {\n const def = deferred()\n iterator._deferredEnd = def\n if (!iterator._isRunning) {\n iterator._error ? def.reject(iterator._error) : def.resolve(iterator._result)\n }\n return def.promise\n }\n },\n cont,\n joiners: [],\n cancel,\n isRunning: () => iterator._isRunning,\n isCancelled: () => iterator._isCancelled,\n isAborted: () => iterator._isAborted,\n result: () => iterator._result,\n error: () => iterator._error,\n setContext(props) {\n check(props, is.object, createSetContextWarning('task', props))\n object.assign(taskContext, props)\n },\n }\n }\n}\n"],"mappings":";AAAA,SACEA,IAAI,EACJC,KAAK,EACLC,EAAE,EACFC,GAAG,IAAIC,IAAI,EACXC,KAAK,EACLC,QAAQ,EACRC,GAAG,IAAIC,YAAY,EACnBC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,YAAY,EACZC,uBAAuB,EACvBC,SAAS,EACTC,eAAe;AAEjB,SAASC,IAAI,EAAEC,OAAO,EAAEC,KAAK;AAC7B,SAASC,QAAQ;AACjB,SAASC,UAAU,IAAIC,WAAW,EAAEC,YAAY,EAAEC,KAAK;AACvD,SAASC,OAAO;AAChB,SAASC,OAAO,EAAEC,UAAU;AAC5B,OAAOC,cAAc;AAErB,OAAO,IAAMC,kBAAkB,GAAG,gEAAgE;AAElG,OAAO,IAAMC,WAAW,GAAG;EACzBC,QAAQA,CAAA,EAAG;IACT,OAAO,0BAA0B;EACnC;AACF,CAAC;AACD,OAAO,IAAMC,WAAW,GAAG;EACzBD,QAAQA,CAAA,EAAG;IACT,OAAO,0BAA0B;EACnC;AACF,CAAC;AAED,IAAME,QAAQ,GAAG;EACfC,QAAQ,EAAEA,CAAA,KAAMnC,KAAK;EACrBoC,OAAO,EAAEC,OAAO,IACd,OAAOA,OAAO,KAAK,QAAQ,GAAGC,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAKF,OAAO,GAAGC,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAKC,MAAM,CAACH,OAAO,CAAC;EACzG7B,KAAK,EAAEiC,QAAQ,IAAIH,KAAK,IAAIG,QAAQ,CAACC,IAAI,CAACC,CAAC,IAAIC,OAAO,CAACD,CAAC,CAAC,CAACL,KAAK,CAAC,CAAC;EACjEO,SAAS,EAAEA,UAAS,IAAIP,KAAK,IAAIO,UAAS,CAACP,KAAK;AAClD,CAAC;AAED,SAASM,OAAOA,CAACP,OAAO,EAAE;EACxB;EACA,OAAO,CACHA,OAAO,KAAK,GAAG,GAAcH,QAAQ,CAACC,QAAQ,GAC9ClC,EAAE,CAACO,KAAK,CAAC6B,OAAO,CAAC,GAAYH,QAAQ,CAAC1B,KAAK,GAC3CP,EAAE,CAAC6C,cAAc,CAACT,OAAO,CAAC,GAAGH,QAAQ,CAACE,OAAO,GAC7CnC,EAAE,CAAC8C,IAAI,CAACV,OAAO,CAAC,GAAaH,QAAQ,CAACW,SAAS,GAC/CX,QAAQ,CAACE,OAAO,EAClBC,OAAO,CAAC;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,SAASA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,EAAE,EAAE;EACrC,IAAIC,KAAK,GAAG,EAAE;IACZC,MAAM;IACNC,SAAS,GAAG,KAAK;EACnBC,OAAO,CAACL,QAAQ,CAAC;EAEjB,SAASM,KAAKA,CAACC,GAAG,EAAE;IAClBC,SAAS,EAAE;IACXP,EAAE,CAACM,GAAG,EAAE,IAAI,CAAC;EACf;EAEA,SAASF,OAAOA,CAACI,IAAI,EAAE;IACrBP,KAAK,CAACQ,IAAI,CAACD,IAAI,CAAC;IAChBA,IAAI,CAACE,IAAI,GAAG,CAACC,GAAG,EAAEC,KAAK,KAAK;MAC1B,IAAIT,SAAS,EAAE;QACb;MACF;MAEA7C,MAAM,CAAC2C,KAAK,EAAEO,IAAI,CAAC;MACnBA,IAAI,CAACE,IAAI,GAAG9D,IAAI;MAChB,IAAIgE,KAAK,EAAE;QACTP,KAAK,CAACM,GAAG,CAAC;MACZ,CAAC,MAAM;QACL,IAAIH,IAAI,KAAKT,QAAQ,EAAE;UACrBG,MAAM,GAAGS,GAAG;QACd;QACA,IAAI,CAACV,KAAK,CAACY,MAAM,EAAE;UACjBV,SAAS,GAAG,IAAI;UAChBH,EAAE,CAACE,MAAM,CAAC;QACZ;MACF;IACF,CAAC;IACD;EACF;;EAEA,SAASK,SAASA,CAAA,EAAG;IACnB,IAAIJ,SAAS,EAAE;MACb;IACF;IACAA,SAAS,GAAG,IAAI;IAChBF,KAAK,CAACa,OAAO,CAACC,CAAC,IAAI;MACjBA,CAAC,CAACL,IAAI,GAAG9D,IAAI;MACbmE,CAAC,CAACC,MAAM,EAAE;IACZ,CAAC,CAAC;IACFf,KAAK,GAAG,EAAE;EACZ;EAEA,OAAO;IACLG,OAAO;IACPG,SAAS;IACTF,KAAK;IACLY,QAAQ,EAAEA,CAAA,KAAMhB,KAAK;IACrBiB,SAAS,EAAEA,CAAA,KAAMjB,KAAK,CAACkB,GAAG,CAACJ,CAAC,IAAIA,CAAC,CAACjB,IAAI;EACxC,CAAC;AACH;AAEA,SAASsB,kBAAkBA,CAAAC,IAAA,EAAwB;EAAA,IAArBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;EAC7C,IAAI1E,EAAE,CAAC2E,QAAQ,CAACF,EAAE,CAAC,EAAE;IACnB,OAAOA,EAAE;EACX;;EAEA;EACA,IAAIrB,MAAM,EAAEwB,KAAK;EACjB,IAAI;IACFxB,MAAM,GAAGqB,EAAE,CAACI,KAAK,CAACL,OAAO,EAAEE,IAAI,CAAC;EAClC,CAAC,CAAC,OAAOlB,GAAG,EAAE;IACZoB,KAAK,GAAGpB,GAAG;EACb;;EAEA;EACA,IAAIxD,EAAE,CAAC2E,QAAQ,CAACvB,MAAM,CAAC,EAAE;IACvB,OAAOA,MAAM;EACf;;EAEA;EACA;EACA,OAAOwB,KAAK,GACR/D,YAAY,CAAC,MAAM;IACjB,MAAM+D,KAAK;EACb,CAAC,CAAC,GACF/D,YAAY,CACT,YAAW;IACV,IAAIiE,EAAE;IACN,IAAMC,GAAG,GAAG;MAAEC,IAAI,EAAE,KAAK;MAAEC,KAAK,EAAE7B;IAAO,CAAC;IAC1C,IAAM8B,GAAG,GAAGD,KAAK,KAAK;MAAED,IAAI,EAAE,IAAI;MAAEC;IAAM,CAAC,CAAC;IAC5C,OAAOE,GAAG,IAAI;MACZ,IAAI,CAACL,EAAE,EAAE;QACPA,EAAE,GAAG,IAAI;QACT,OAAOC,GAAG;MACZ,CAAC,MAAM;QACL,OAAOG,GAAG,CAACC,GAAG,CAAC;MACjB;IACF,CAAC;EACH,CAAC,EAAG,CACL;AACP;AAEA,IAAMC,UAAU,GAAGC,MAAM,KAAK;EAAEZ,EAAE,EAAEY;AAAO,CAAC,CAAC;AAE7C,eAAe,SAASC,IAAIA,CAC1BX,QAAQ,EASR;EAAA,IARAY,SAAS,GAAAC,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,MAAM1F,IAAI;EAAA,IACtB4F,QAAQ,GAAAF,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG1F,IAAI;EAAA,IACf6F,QAAQ,GAAAH,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG1F,IAAI;EAAA,IACf8F,aAAa,GAAAJ,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;EAAA,IAClBK,OAAO,GAAAL,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;EAAA,IACZM,cAAc,GAAAN,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC;EAAA,IAClBxC,IAAI,GAAAwC,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,WAAW;EAAA,IAClB5B,IAAI,GAAA4B,SAAA,CAAAzB,MAAA,OAAAyB,SAAA,MAAAC,SAAA;EAEJtF,KAAK,CAACwE,QAAQ,EAAE3E,EAAE,CAAC2E,QAAQ,EAAE9C,kBAAkB,CAAC;EAEhD,IAAMkE,aAAa,GAAG,cAAc;EACpC,IAAMC,iBAAiB,GAAGjF,SAAS,CAACkF,YAAY,EAAEjF,eAAe,CAAC+E,aAAa,EAAG,OAAMA,aAAc,GAAE,CAAC,CAAC;EAE1G,IAAQG,WAAW,GAAsBL,OAAO,CAAxCK,WAAW;IAAEC,MAAM,GAAcN,OAAO,CAA3BM,MAAM;IAAEC,OAAO,GAAKP,OAAO,CAAnBO,OAAO;EACpC,IAAMnG,GAAG,GAAGkG,MAAM,IAAIjG,IAAI;EAC1B,IAAMmG,QAAQ,GAAG7C,GAAG,IAAI;IACtB,IAAI8C,OAAO,GAAG9C,GAAG,CAAC+C,SAAS;IAE3B,IAAI,CAACD,OAAO,IAAI9C,GAAG,CAACgD,KAAK,EAAE;MACzBF,OAAO,GAAG9C,GAAG,CAACgD,KAAK,CAACC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO,CAAClD,GAAG,CAAC8C,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG9C,GAAG,CAACgD,KAAK,GAAI,UAAShD,GAAG,CAAC8C,OAAQ,KAAI9C,GAAG,CAACgD,KAAM,EAAC;IACpH;IAEAvG,GAAG,CAAC,OAAO,EAAG,eAAc+C,IAAK,EAAC,EAAEsD,OAAO,IAAI9C,GAAG,CAAC8C,OAAO,IAAI9C,GAAG,CAAC;EACpE,CAAC;EACD,IAAMnC,UAAU,GAAGC,WAAW,CAACiE,SAAS,CAAC;EACzC,IAAMoB,WAAW,GAAGC,MAAM,CAACC,MAAM,CAACjB,aAAa,CAAC;EAChD;AACF;AACA;AACA;AACA;EACEkB,IAAI,CAAC5C,MAAM,GAAGpE,IAAI;;EAElB;AACF;AACA;AACA;EACE,IAAM4D,IAAI,GAAGqD,OAAO,CAACjB,cAAc,EAAE9C,IAAI,EAAE2B,QAAQ,EAAEf,IAAI,CAAC;EAC1D,IAAMX,QAAQ,GAAG;IAAED,IAAI;IAAEkB,MAAM,EAAE8C,UAAU;IAAEC,SAAS,EAAE;EAAK,CAAC;EAC9D,IAAMC,SAAS,GAAGnE,SAAS,CAACC,IAAI,EAAEC,QAAQ,EAAEkE,GAAG,CAAC;;EAEhD;AACF;AACA;EACE,SAASH,UAAUA,CAAA,EAAG;IACpB,IAAI/D,QAAQ,CAACgE,SAAS,IAAI,CAAChE,QAAQ,CAACmE,WAAW,EAAE;MAC/CnE,QAAQ,CAACmE,WAAW,GAAG,IAAI;MAC3BN,IAAI,CAAC9E,WAAW,CAAC;IACnB;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EAGE,SAASkC,MAAMA,CAAA,EAAG;IAChB;AACJ;AACA;AACA;IACI,IAAIS,QAAQ,CAAC0C,UAAU,IAAI,CAAC1C,QAAQ,CAAC2C,YAAY,EAAE;MACjD3C,QAAQ,CAAC2C,YAAY,GAAG,IAAI;MAC5BJ,SAAS,CAACzD,SAAS,EAAE;MACrB;AACN;AACA;MACM0D,GAAG,CAACnF,WAAW,CAAC;IAClB;EACF;EACA;AACF;AACA;AACA;EACE4B,IAAI,KAAKA,IAAI,CAACM,MAAM,GAAGA,MAAM,CAAC;;EAE9B;EACAS,QAAQ,CAAC0C,UAAU,GAAG,IAAI;;EAE1B;EACAP,IAAI,EAAE;;EAEN;EACA,OAAOpD,IAAI;;EAEX;AACF;AACA;AACA;AACA;EACE,SAASoD,IAAIA,CAAC3B,GAAG,EAAErB,KAAK,EAAE;IACxB;IACA,IAAI,CAACb,QAAQ,CAACgE,SAAS,EAAE;MACvB,MAAM,IAAIM,KAAK,CAAC,gDAAgD,CAAC;IACnE;IAEA,IAAI;MACF,IAAInE,MAAM;MACV,IAAIU,KAAK,EAAE;QACTV,MAAM,GAAGuB,QAAQ,CAAC6C,KAAK,CAACrC,GAAG,CAAC;MAC9B,CAAC,MAAM,IAAIA,GAAG,KAAKnD,WAAW,EAAE;QAC9B;AACR;AACA;AACA;AACA;AACA;QAEQiB,QAAQ,CAACmE,WAAW,GAAG,IAAI;QAC3B;AACR;AACA;QACQN,IAAI,CAAC5C,MAAM,EAAE;QACb;AACR;AACA;AACA;QACQd,MAAM,GAAGpD,EAAE,CAAC8C,IAAI,CAAC6B,QAAQ,CAAC8C,MAAM,CAAC,GAAG9C,QAAQ,CAAC8C,MAAM,CAACzF,WAAW,CAAC,GAAG;UAAEgD,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAEjD;QAAY,CAAC;MACvG,CAAC,MAAM,IAAImD,GAAG,KAAKrD,WAAW,EAAE;QAC9B;QACAsB,MAAM,GAAGpD,EAAE,CAAC8C,IAAI,CAAC6B,QAAQ,CAAC8C,MAAM,CAAC,GAAG9C,QAAQ,CAAC8C,MAAM,EAAE,GAAG;UAAEzC,IAAI,EAAE;QAAK,CAAC;MACxE,CAAC,MAAM;QACL5B,MAAM,GAAGuB,QAAQ,CAACmC,IAAI,CAAC3B,GAAG,CAAC;MAC7B;MAEA,IAAI,CAAC/B,MAAM,CAAC4B,IAAI,EAAE;QAChB0C,SAAS,CAACtE,MAAM,CAAC6B,KAAK,EAAEa,cAAc,EAAE,EAAE,EAAEgB,IAAI,CAAC;MACnD,CAAC,MAAM;QACL;AACR;AACA;QACQ7D,QAAQ,CAAC0E,aAAa,GAAG,KAAK;QAC9B1E,QAAQ,CAACW,IAAI,IAAIX,QAAQ,CAACW,IAAI,CAACR,MAAM,CAAC6B,KAAK,CAAC;MAC9C;IACF,CAAC,CAAC,OAAOL,KAAK,EAAE;MACd,IAAI3B,QAAQ,CAACmE,WAAW,EAAE;QACxBf,QAAQ,CAACzB,KAAK,CAAC;MACjB;MACA3B,QAAQ,CAAC0E,aAAa,GAAG,KAAK;MAC9B1E,QAAQ,CAACW,IAAI,CAACgB,KAAK,EAAE,IAAI,CAAC;IAC5B;EACF;EAEA,SAASuC,GAAGA,CAAC/D,MAAM,EAAEU,KAAK,EAAE;IAC1Ba,QAAQ,CAAC0C,UAAU,GAAG,KAAK;IAC3BhG,UAAU,CAACuG,KAAK,EAAE;IAClB,IAAI,CAAC9D,KAAK,EAAE;MACVa,QAAQ,CAACkD,OAAO,GAAGzE,MAAM;MACzBuB,QAAQ,CAACmD,YAAY,IAAInD,QAAQ,CAACmD,YAAY,CAACC,OAAO,CAAC3E,MAAM,CAAC;IAChE,CAAC,MAAM;MACL,IAAIA,MAAM,YAAYmE,KAAK,EAAE;QAC3BX,MAAM,CAACoB,cAAc,CAAC5E,MAAM,EAAE,WAAW,EAAE;UACzC6B,KAAK,EAAG,MAAKjC,IAAK,OAAMI,MAAM,CAACmD,SAAS,IAAInD,MAAM,CAACoD,KAAM,EAAC;UAC1DyB,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ;MACA,IAAI,CAACvE,IAAI,CAACE,IAAI,EAAE;QACd,IAAIR,MAAM,YAAYmE,KAAK,IAAInB,OAAO,EAAE;UACtCA,OAAO,CAAChD,MAAM,CAAC;QACjB,CAAC,MAAM;UACLiD,QAAQ,CAACjD,MAAM,CAAC;QAClB;MACF;MACAuB,QAAQ,CAACuD,MAAM,GAAG9E,MAAM;MACxBuB,QAAQ,CAACwD,UAAU,GAAG,IAAI;MAC1BxD,QAAQ,CAACmD,YAAY,IAAInD,QAAQ,CAACmD,YAAY,CAACM,MAAM,CAAChF,MAAM,CAAC;IAC/D;IACAM,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACE,IAAI,CAACR,MAAM,EAAEU,KAAK,CAAC;IACrCJ,IAAI,CAAC2E,OAAO,CAACrE,OAAO,CAACsE,CAAC,IAAIA,CAAC,CAACpF,EAAE,CAACE,MAAM,EAAEU,KAAK,CAAC,CAAC;IAC9CJ,IAAI,CAAC2E,OAAO,GAAG,IAAI;EACrB;EAEA,SAASX,SAASA,CAACa,MAAM,EAAEzC,cAAc,EAAkB;IAAA,IAAhB0C,KAAK,GAAAhD,SAAA,CAAAzB,MAAA,QAAAyB,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,EAAE;IAAA,IAAEtC,EAAE,GAAAsC,SAAA,CAAAzB,MAAA,OAAAyB,SAAA,MAAAC,SAAA;IACvD,IAAIgD,UAAU,CAAC,WAAW,CAAC,EAAE;MAC3BF,MAAM,GAAG3G,cAAc,CAAC2G,MAAM,CAAC;IACjC;IAEA,IAAMG,QAAQ,GAAGpI,YAAY,EAAE;IAC/B4F,WAAW,IAAIA,WAAW,CAACyC,eAAe,CAAC;MAAED,QAAQ;MAAE5C,cAAc;MAAE0C,KAAK;MAAED;IAAO,CAAC,CAAC;;IAEvF;AACJ;AACA;AACA;AACA;IACI,IAAIK,aAAa;;IAEjB;IACA,SAASC,MAAMA,CAAChF,GAAG,EAAEC,KAAK,EAAE;MAC1B,IAAI8E,aAAa,EAAE;QACjB;MACF;MAEAA,aAAa,GAAG,IAAI;MACpB1F,EAAE,CAACgB,MAAM,GAAGpE,IAAI,EAAC;MACjB,IAAIoG,WAAW,EAAE;QACfpC,KAAK,GAAGoC,WAAW,CAAC4C,cAAc,CAACJ,QAAQ,EAAE7E,GAAG,CAAC,GAAGqC,WAAW,CAAC6C,cAAc,CAACL,QAAQ,EAAE7E,GAAG,CAAC;MAC/F;MACAX,EAAE,CAACW,GAAG,EAAEC,KAAK,CAAC;IAChB;IACA;IACA+E,MAAM,CAAC3E,MAAM,GAAGpE,IAAI;;IAEpB;IACAoD,EAAE,CAACgB,MAAM,GAAG,MAAM;MAChB;MACA,IAAI0E,aAAa,EAAE;QACjB;MACF;MAEAA,aAAa,GAAG,IAAI;MACpB;AACN;AACA;AACA;AACA;MACM,IAAI;QACFC,MAAM,CAAC3E,MAAM,EAAE;MACjB,CAAC,CAAC,OAAOV,GAAG,EAAE;QACZ6C,QAAQ,CAAC7C,GAAG,CAAC;MACf;MACAqF,MAAM,CAAC3E,MAAM,GAAGpE,IAAI,EAAC;;MAErBoG,WAAW,IAAIA,WAAW,CAAC8C,eAAe,CAACN,QAAQ,CAAC;IACtD,CAAC;;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAII,IAAIO,IAAI;IACR;IACA;MACE;MACEjJ,EAAE,CAACkJ,OAAO,CAACX,MAAM,CAAC,GAAwBY,cAAc,CAACZ,MAAM,EAAEM,MAAM,CAAC,GACxE7I,EAAE,CAACqF,MAAM,CAACkD,MAAM,CAAC,GAAyBa,aAAa,CAAChE,UAAU,CAACmD,MAAM,CAAC,EAAEG,QAAQ,EAAEG,MAAM,CAAC,GAC7F7I,EAAE,CAAC2E,QAAQ,CAAC4D,MAAM,CAAC,GAAuBc,eAAe,CAACd,MAAM,EAAEG,QAAQ,EAAE1F,IAAI,EAAE6F,MAAM;;MAE1F;MAAA,EACE7I,EAAE,CAACO,KAAK,CAACgI,MAAM,CAAC,GAA0BvC,iBAAiB,CAACuC,MAAM,EAAEG,QAAQ,EAAEG,MAAM,CAAC,GACrF,CAACI,IAAI,GAAG7H,QAAQ,CAACkI,IAAI,CAACf,MAAM,CAAC,IAAagB,aAAa,CAACN,IAAI,EAAEJ,MAAM,CAAC,GACrE,CAACI,IAAI,GAAG7H,QAAQ,CAACoI,GAAG,CAACjB,MAAM,CAAC,IAAckB,YAAY,CAACR,IAAI,EAAEJ,MAAM,CAAC,GACpE,CAACI,IAAI,GAAG7H,QAAQ,CAACsI,GAAG,CAACnB,MAAM,CAAC,IAActC,YAAY,CAACgD,IAAI,EAAEP,QAAQ,EAAEG,MAAM,CAAC,GAC9E,CAACI,IAAI,GAAG7H,QAAQ,CAACuI,IAAI,CAACpB,MAAM,CAAC,IAAaqB,aAAa,CAACX,IAAI,EAAEP,QAAQ,EAAEG,MAAM,CAAC,GAC/E,CAACI,IAAI,GAAG7H,QAAQ,CAACyI,IAAI,CAACtB,MAAM,CAAC,IAAauB,aAAa,CAACb,IAAI,EAAEP,QAAQ,EAAEG,MAAM,CAAC,GAC/E,CAACI,IAAI,GAAG7H,QAAQ,CAAC2I,GAAG,CAACxB,MAAM,CAAC,IAAcyB,YAAY,CAACf,IAAI,EAAEJ,MAAM,CAAC,GACpE,CAACI,IAAI,GAAG7H,QAAQ,CAAC6I,IAAI,CAAC1B,MAAM,CAAC,IAAaa,aAAa,CAACH,IAAI,EAAEP,QAAQ,EAAEG,MAAM,CAAC,GAC/E,CAACI,IAAI,GAAG7H,QAAQ,CAAC8I,IAAI,CAAC3B,MAAM,CAAC,IAAa4B,aAAa,CAAClB,IAAI,EAAEJ,MAAM,CAAC,GACrE,CAACI,IAAI,GAAG7H,QAAQ,CAAC8C,MAAM,CAACqE,MAAM,CAAC,IAAW6B,eAAe,CAACnB,IAAI,EAAEJ,MAAM,CAAC,GACvE,CAACI,IAAI,GAAG7H,QAAQ,CAACiJ,MAAM,CAAC9B,MAAM,CAAC,IAAW+B,eAAe,CAACrB,IAAI,EAAEJ,MAAM,CAAC,GACvE,CAACI,IAAI,GAAG7H,QAAQ,CAACmJ,UAAU,CAAChC,MAAM,CAAC,IAAOiC,mBAAmB,CAACvB,IAAI,EAAEJ,MAAM,CAAC,GAC3E,CAACI,IAAI,GAAG7H,QAAQ,CAACqJ,WAAW,CAAClC,MAAM,CAAC,IAAMmC,oBAAoB,CAACzB,IAAI,EAAEJ,MAAM,CAAC,GAC5E,CAACI,IAAI,GAAG7H,QAAQ,CAACuJ,cAAc,CAACpC,MAAM,CAAC,IAAGqC,iBAAiB,CAAC3B,IAAI,EAAEJ,MAAM,CAAC,GACzE,CAACI,IAAI,GAAG7H,QAAQ,CAACyJ,aAAa,CAACtC,MAAM,CAAC,IAAIuC,gBAAgB,CAAC7B,IAAI,EAAEJ,MAAM,CAAC,GACxE,CAACI,IAAI,GAAG7H,QAAQ,CAACD,KAAK,CAACoH,MAAM,CAAC,IAAYwC,cAAc,CAAC9B,IAAI,EAAEJ,MAAM,CAAC,GACtE,CAACI,IAAI,GAAG7H,QAAQ,CAAC4J,SAAS,CAACzC,MAAM,CAAC,IAAQ0C,kBAAkB,CAAChC,IAAI,EAAEJ,MAAM,CAAC,GAC1E,CAACI,IAAI,GAAG7H,QAAQ,CAACqH,UAAU,CAACF,MAAM,CAAC,IAAO2C,mBAAmB,CAACjC,IAAI,EAAEJ,MAAM,CAAC,GAC3E,CAACI,IAAI,GAAG7H,QAAQ,CAAC+J,UAAU,CAAC5C,MAAM,CAAC,IAAO6C,mBAAmB,CAACnC,IAAI,EAAEJ,MAAM,CAAC,GAC3E,kCAA0CA,MAAM,CAACN,MAAM;IAAC;EAE9D;EAEA,SAASY,cAAcA,CAACD,OAAO,EAAEhG,EAAE,EAAE;IACnC,IAAMmI,aAAa,GAAGnC,OAAO,CAACvI,MAAM,CAAC;IACrC,IAAIX,EAAE,CAAC8C,IAAI,CAACuI,aAAa,CAAC,EAAE;MAC1BnI,EAAE,CAACgB,MAAM,GAAGmH,aAAa;IAC3B,CAAC,MAAM,IAAIrL,EAAE,CAAC8C,IAAI,CAACoG,OAAO,CAAC3F,KAAK,CAAC,EAAE;MACjCL,EAAE,CAACgB,MAAM,GAAG,MAAMgF,OAAO,CAAC3F,KAAK,EAAE;MACjC;MACA;IACF;;IACA2F,OAAO,CAACoC,IAAI,CAACpI,EAAE,EAAE0B,KAAK,IAAI1B,EAAE,CAAC0B,KAAK,EAAE,IAAI,CAAC,CAAC;EAC5C;EAEA,SAASyE,eAAeA,CAAC1E,QAAQ,EAAE+D,QAAQ,EAAE1F,IAAI,EAAEE,EAAE,EAAE;IACrDoC,IAAI,CAACX,QAAQ,EAAEY,SAAS,EAAEG,QAAQ,EAAEC,QAAQ,EAAEgB,WAAW,EAAEd,OAAO,EAAE6C,QAAQ,EAAE1F,IAAI,EAAEE,EAAE,CAAC;EACzF;EAEA,SAASqG,aAAaA,CAAAgC,KAAA,EAA8BrI,EAAE,EAAE;IAAA,IAA/BsI,OAAO,GAAAD,KAAA,CAAPC,OAAO;MAAEpJ,OAAO,GAAAmJ,KAAA,CAAPnJ,OAAO;MAAEqJ,KAAK,GAAAF,KAAA,CAALE,KAAK;IAC9CD,OAAO,GAAGA,OAAO,IAAInK,UAAU;IAC/B,IAAMqK,MAAM,GAAGC,GAAG,IAAKA,GAAG,YAAYpE,KAAK,GAAGrE,EAAE,CAACyI,GAAG,EAAE,IAAI,CAAC,GAAGnK,KAAK,CAACmK,GAAG,CAAC,IAAI,CAACF,KAAK,GAAGvI,EAAE,CAACpB,WAAW,CAAC,GAAGoB,EAAE,CAACyI,GAAG,CAAE;IAC/G,IAAI;MACFH,OAAO,CAAClC,IAAI,CAACoC,MAAM,EAAEE,eAAe,CAACxJ,OAAO,EAAEO,OAAO,CAAC,CAAC;IACzD,CAAC,CAAC,OAAOa,GAAG,EAAE;MACZ,OAAON,EAAE,CAACM,GAAG,EAAE,IAAI,CAAC;IACtB;IACAN,EAAE,CAACgB,MAAM,GAAGwH,MAAM,CAACxH,MAAM;EAC3B;EAEA,SAASuF,YAAYA,CAAAoC,KAAA,EAA+B3I,EAAE,EAAE;IAAA,IAAhCsI,OAAO,GAAAK,KAAA,CAAPL,OAAO;MAAEM,MAAM,GAAAD,KAAA,CAANC,MAAM;MAAE/D,OAAO,GAAA8D,KAAA,CAAP9D,OAAO;IAC9C;AACJ;AACA;AACA;AACA;IACI9G,IAAI,CAAC,MAAM;MACT,IAAImC,MAAM;MACV,IAAI;QACFA,MAAM,GAAG,CAACoI,OAAO,GAAGA,OAAO,CAAChC,GAAG,GAAG9D,QAAQ,EAAEqG,iBAAiB,CAACD,MAAM,CAAC,CAAC;MACxE,CAAC,CAAC,OAAOlH,KAAK,EAAE;QACd;QACA,IAAI4G,OAAO,IAAIzD,OAAO,EAAE,OAAO7E,EAAE,CAAC0B,KAAK,EAAE,IAAI,CAAC;QAC9CyB,QAAQ,CAACzB,KAAK,CAAC;MACjB;MAEA,IAAImD,OAAO,IAAI/H,EAAE,CAACkJ,OAAO,CAAC9F,MAAM,CAAC,EAAE;QACjC+F,cAAc,CAAC/F,MAAM,EAAEF,EAAE,CAAC;MAC5B,CAAC,MAAM;QACL,OAAOA,EAAE,CAACE,MAAM,CAAC;MACnB;IACF,CAAC,CAAC;IACF;EACF;;EAEA,SAAS0G,aAAaA,CAAAkC,KAAA,EAAwBtD,QAAQ,EAAExF,EAAE,EAAE;IAAA,IAAnCsB,OAAO,GAAAwH,KAAA,CAAPxH,OAAO;MAAEC,EAAE,GAAAuH,KAAA,CAAFvH,EAAE;MAAEC,IAAI,GAAAsH,KAAA,CAAJtH,IAAI;IACxC,IAAItB,MAAM;IACV;IACA,IAAI;MACFA,MAAM,GAAGqB,EAAE,CAACI,KAAK,CAACL,OAAO,EAAEE,IAAI,CAAC;IAClC,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,OAAO1B,EAAE,CAAC0B,KAAK,EAAE,IAAI,CAAC;IACxB;IACA,OAAO5E,EAAE,CAACkJ,OAAO,CAAC9F,MAAM,CAAC,GACrB+F,cAAc,CAAC/F,MAAM,EAAEF,EAAE,CAAC,GAC1BlD,EAAE,CAAC2E,QAAQ,CAACvB,MAAM,CAAC,GACnBiG,eAAe,CAACjG,MAAM,EAAEsF,QAAQ,EAAEjE,EAAE,CAACzB,IAAI,EAAEE,EAAE,CAAC,GAC9CA,EAAE,CAACE,MAAM,CAAC;EAChB;EAEA,SAAS4G,YAAYA,CAAAiC,KAAA,EAAwB/I,EAAE,EAAE;IAAA,IAAzBsB,OAAO,GAAAyH,KAAA,CAAPzH,OAAO;MAAEC,EAAE,GAAAwH,KAAA,CAAFxH,EAAE;MAAEC,IAAI,GAAAuH,KAAA,CAAJvH,IAAI;IACvC;IACA;;IAEA;IACA,IAAI;MACF,IAAMwH,KAAK,GAAGA,CAAC1I,GAAG,EAAEK,GAAG,KAAM7D,EAAE,CAACmM,KAAK,CAAC3I,GAAG,CAAC,GAAGN,EAAE,CAACW,GAAG,CAAC,GAAGX,EAAE,CAACM,GAAG,EAAE,IAAI,CAAE;MACrEiB,EAAE,CAACI,KAAK,CAACL,OAAO,EAAEE,IAAI,CAAC0H,MAAM,CAACF,KAAK,CAAC,CAAC;MACrC,IAAIA,KAAK,CAAChI,MAAM,EAAE;QAChBhB,EAAE,CAACgB,MAAM,GAAG,MAAMgI,KAAK,CAAChI,MAAM,EAAE;MAClC;IACF,CAAC,CAAC,OAAOU,KAAK,EAAE;MACd,OAAO1B,EAAE,CAAC0B,KAAK,EAAE,IAAI,CAAC;IACxB;EACF;EAEA,SAASwE,aAAaA,CAAAiD,KAAA,EAAkC3D,QAAQ,EAAExF,EAAE,EAAE;IAAA,IAA7CsB,OAAO,GAAA6H,KAAA,CAAP7H,OAAO;MAAEC,EAAE,GAAA4H,KAAA,CAAF5H,EAAE;MAAEC,IAAI,GAAA2H,KAAA,CAAJ3H,IAAI;MAAE4H,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAClD,IAAMC,YAAY,GAAGjI,kBAAkB,CAAC;MAAEE,OAAO;MAAEC,EAAE;MAAEC;IAAK,CAAC,CAAC;IAE9D,IAAI;MACFxD,OAAO,EAAE;MACT,IAAMwC,KAAI,GAAG4B,IAAI,CACfiH,YAAY,EACZhH,SAAS,EACTG,QAAQ,EACRC,QAAQ,EACRgB,WAAW,EACXd,OAAO,EACP6C,QAAQ,EACRjE,EAAE,CAACzB,IAAI,EACPsJ,QAAQ,GAAG,IAAI,GAAGxM,IAAI,CACvB;MAED,IAAIwM,QAAQ,EAAE;QACZpJ,EAAE,CAACQ,KAAI,CAAC;MACV,CAAC,MAAM;QACL,IAAI6I,YAAY,CAAClF,UAAU,EAAE;UAC3BH,SAAS,CAAC5D,OAAO,CAACI,KAAI,CAAC;UACvBR,EAAE,CAACQ,KAAI,CAAC;QACV,CAAC,MAAM,IAAI6I,YAAY,CAACrE,MAAM,EAAE;UAC9BhB,SAAS,CAAC3D,KAAK,CAACgJ,YAAY,CAACrE,MAAM,CAAC;QACtC,CAAC,MAAM;UACLhF,EAAE,CAACQ,KAAI,CAAC;QACV;MACF;IACF,CAAC,SAAS;MACRvC,KAAK,EAAE;IACT;IACA;EACF;;EAEA,SAASgJ,aAAaA,CAAClG,CAAC,EAAEf,EAAE,EAAE;IAC5B,IAAIe,CAAC,CAACgD,SAAS,EAAE,EAAE;MACjB,IAAMuF,MAAM,GAAG;QAAE9I,IAAI;QAAER;MAAG,CAAC;MAC3BA,EAAE,CAACgB,MAAM,GAAG,MAAM1D,MAAM,CAACyD,CAAC,CAACoE,OAAO,EAAEmE,MAAM,CAAC;MAC3CvI,CAAC,CAACoE,OAAO,CAAC1E,IAAI,CAAC6I,MAAM,CAAC;IACxB,CAAC,MAAM;MACLvI,CAAC,CAACwI,SAAS,EAAE,GAAGvJ,EAAE,CAACe,CAAC,CAACW,KAAK,EAAE,EAAE,IAAI,CAAC,GAAG1B,EAAE,CAACe,CAAC,CAACb,MAAM,EAAE,CAAC;IACtD;EACF;EAEA,SAASgH,eAAeA,CAACsC,YAAY,EAAExJ,EAAE,EAAE;IACzC,IAAIwJ,YAAY,KAAK9L,iBAAiB,EAAE;MACtC8L,YAAY,GAAGhJ,IAAI;IACrB;IACA,IAAIgJ,YAAY,CAACzF,SAAS,EAAE,EAAE;MAC5ByF,YAAY,CAACxI,MAAM,EAAE;IACvB;IACAhB,EAAE,EAAE;IACJ;EACF;;EAEA,SAAS+C,YAAYA,CAAC0G,OAAO,EAAEjE,QAAQ,EAAExF,EAAE,EAAE;IAC3C,IAAM0J,IAAI,GAAGhG,MAAM,CAACgG,IAAI,CAACD,OAAO,CAAC;IAEjC,IAAI,CAACC,IAAI,CAAC7I,MAAM,EAAE;MAChB,OAAOb,EAAE,CAAClD,EAAE,CAACO,KAAK,CAACoM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACxC;IAEA,IAAIE,cAAc,GAAG,CAAC;IACtB,IAAIxJ,SAAS;IACb,IAAMyJ,OAAO,GAAG,CAAC,CAAC;IAClB,IAAMC,QAAQ,GAAG,CAAC,CAAC;IAEnB,SAASC,cAAcA,CAAA,EAAG;MACxB,IAAIH,cAAc,KAAKD,IAAI,CAAC7I,MAAM,EAAE;QAClCV,SAAS,GAAG,IAAI;QAChBH,EAAE,CAAClD,EAAE,CAACO,KAAK,CAACoM,OAAO,CAAC,GAAGpM,KAAK,CAAC0M,IAAI,CAAAC,aAAA,CAAAA,aAAA,KAAMJ,OAAO;UAAE/I,MAAM,EAAE6I,IAAI,CAAC7I;QAAM,GAAG,GAAG+I,OAAO,CAAC;MACnF;IACF;IAEAF,IAAI,CAAC5I,OAAO,CAACmJ,GAAG,IAAI;MAClB,IAAMC,SAAS,GAAGA,CAACvJ,GAAG,EAAEC,KAAK,KAAK;QAChC,IAAIT,SAAS,EAAE;UACb;QACF;QACA,IAAIS,KAAK,IAAItC,KAAK,CAACqC,GAAG,CAAC,IAAIA,GAAG,KAAK/B,WAAW,IAAI+B,GAAG,KAAK7B,WAAW,EAAE;UACrEkB,EAAE,CAACgB,MAAM,EAAE;UACXhB,EAAE,CAACW,GAAG,EAAEC,KAAK,CAAC;QAChB,CAAC,MAAM;UACLgJ,OAAO,CAACK,GAAG,CAAC,GAAGtJ,GAAG;UAClBgJ,cAAc,EAAE;UAChBG,cAAc,EAAE;QAClB;MACF,CAAC;MACDI,SAAS,CAAClJ,MAAM,GAAGpE,IAAI;MACvBiN,QAAQ,CAACI,GAAG,CAAC,GAAGC,SAAS;IAC3B,CAAC,CAAC;IAEFlK,EAAE,CAACgB,MAAM,GAAG,MAAM;MAChB,IAAI,CAACb,SAAS,EAAE;QACdA,SAAS,GAAG,IAAI;QAChBuJ,IAAI,CAAC5I,OAAO,CAACmJ,GAAG,IAAIJ,QAAQ,CAACI,GAAG,CAAC,CAACjJ,MAAM,EAAE,CAAC;MAC7C;IACF,CAAC;IAED0I,IAAI,CAAC5I,OAAO,CAACmJ,GAAG,IAAIzF,SAAS,CAACiF,OAAO,CAACQ,GAAG,CAAC,EAAEzE,QAAQ,EAAEyE,GAAG,EAAEJ,QAAQ,CAACI,GAAG,CAAC,CAAC,CAAC;EAC5E;EAEA,SAASvD,aAAaA,CAAC+C,OAAO,EAAEjE,QAAQ,EAAExF,EAAE,EAAE;IAC5C,IAAIG,SAAS;IACb,IAAMuJ,IAAI,GAAGhG,MAAM,CAACgG,IAAI,CAACD,OAAO,CAAC;IACjC,IAAMI,QAAQ,GAAG,CAAC,CAAC;IAEnBH,IAAI,CAAC5I,OAAO,CAACmJ,GAAG,IAAI;MAClB,IAAMC,SAAS,GAAGA,CAACvJ,GAAG,EAAEC,KAAK,KAAK;QAChC,IAAIT,SAAS,EAAE;UACb;QACF;QAEA,IAAIS,KAAK,EAAE;UACT;UACAZ,EAAE,CAACgB,MAAM,EAAE;UACXhB,EAAE,CAACW,GAAG,EAAE,IAAI,CAAC;QACf,CAAC,MAAM,IAAI,CAACrC,KAAK,CAACqC,GAAG,CAAC,IAAIA,GAAG,KAAK/B,WAAW,IAAI+B,GAAG,KAAK7B,WAAW,EAAE;UACpEkB,EAAE,CAACgB,MAAM,EAAE;UACXb,SAAS,GAAG,IAAI;UAChB,IAAMgK,QAAQ,GAAG;YAAE,CAACF,GAAG,GAAGtJ;UAAI,CAAC;UAC/BX,EAAE,CAAClD,EAAE,CAACO,KAAK,CAACoM,OAAO,CAAC,GAAG,EAAE,CAACW,KAAK,CAACzD,IAAI,CAAAqD,aAAA,CAAAA,aAAA,KAAMG,QAAQ;YAAEtJ,MAAM,EAAE6I,IAAI,CAAC7I;UAAM,GAAG,GAAGsJ,QAAQ,CAAC;QACxF;MACF,CAAC;MACDD,SAAS,CAAClJ,MAAM,GAAGpE,IAAI;MACvBiN,QAAQ,CAACI,GAAG,CAAC,GAAGC,SAAS;IAC3B,CAAC,CAAC;IAEFlK,EAAE,CAACgB,MAAM,GAAG,MAAM;MAChB;MACA,IAAI,CAACb,SAAS,EAAE;QACdA,SAAS,GAAG,IAAI;QAChBuJ,IAAI,CAAC5I,OAAO,CAACmJ,GAAG,IAAIJ,QAAQ,CAACI,GAAG,CAAC,CAACjJ,MAAM,EAAE,CAAC;MAC7C;IACF,CAAC;IACD0I,IAAI,CAAC5I,OAAO,CAACmJ,GAAG,IAAI;MAClB,IAAI9J,SAAS,EAAE;QACb;MACF;MACAqE,SAAS,CAACiF,OAAO,CAACQ,GAAG,CAAC,EAAEzE,QAAQ,EAAEyE,GAAG,EAAEJ,QAAQ,CAACI,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC;EACJ;EAEA,SAAS7C,eAAeA,CAAAiD,KAAA,EAAqBrK,EAAE,EAAE;IAAA,IAAtBsK,QAAQ,GAAAD,KAAA,CAARC,QAAQ;MAAE9I,IAAI,GAAA6I,KAAA,CAAJ7I,IAAI;IACvC,IAAI;MACF;MACA,IAAM+I,KAAK,GAAAP,aAAA,KAAQvH,QAAQ,EAAE,CAAE;MAC/B8H,KAAK,CAAChF,UAAU,CAAC/G,OAAO,CAAC,CAAC,GAAG+L,KAAK,CAACC,aAAa,EAAE,CAAC;MACnDxK,EAAE,CAACsK,QAAQ,CAACC,KAAK,EAAE,GAAG/I,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd1B,EAAE,CAAC0B,KAAK,EAAE,IAAI,CAAC;IACjB;EACF;EAEA,SAAS4F,mBAAmBA,CAACmD,CAAC,EAAEzK,EAAE,EAAE;IAClC,IAAI;MACF,IAAMuK,KAAK,GAAG9H,QAAQ,EAAE,CAAC+H,aAAa,EAAE,CAAC;MACzCxK,EAAE,CAACuK,KAAK,CAAC;IACX,CAAC,CAAC,OAAO7I,KAAK,EAAE;MACd1B,EAAE,CAAC0B,KAAK,EAAE,IAAI,CAAC;IACjB;EACF;EAEA,SAAS8F,oBAAoBA,CAAAkD,KAAA,EAAS1K,EAAE,EAAE;IAAA,IAAVuB,EAAE,GAAAmJ,KAAA,CAAFnJ,EAAE;IAChC,IAAMqH,MAAM,GAAG;MACbxJ,IAAI,EAAE,mBAAmB;MACzBuL,IAAI,EAAEH,aAAa,EAAE;MACrBjJ;IACF,CAAC;IAED,OAAOgF,YAAY,CAAC;MAClBqC;IACF,CAAC,EAAE5I,EAAE,CAAC;EACR;EAEA,SAAS0H,iBAAiBA,CAAAkD,KAAA,EAAa5K,EAAE,EAAE;IAAA,IAAd4I,MAAM,GAAAgC,KAAA,CAANhC,MAAM;IACjC,OAAOrC,YAAY,CAAC;MAClBqC,MAAM,EAAEA;IACV,CAAC,EAAE,UAAUjI,GAAG,EAAEL,GAAG,EAAE;MACrB,IAAIA,GAAG,EAAE;QACP,OAAON,EAAE,CAACW,GAAG,EAAEL,GAAG,CAAC;MACrB;MACA2F,cAAc,CAAC2C,MAAM,CAAC,mBAAmB,CAAC,EAAE5I,EAAE,CAAC;IACjD,CAAC,CAAC;EACJ;EAEA,SAAS4H,gBAAgBA,CAAAiD,MAAA,EAAsB7K,EAAE,EAAE;IAAA,IAAvBd,OAAO,GAAA2L,MAAA,CAAP3L,OAAO;MAAE4L,MAAM,GAAAD,MAAA,CAANC,MAAM;IACzC,IAAMC,KAAK,GAAGtL,OAAO,CAACP,OAAO,CAAC;IAC9B6L,KAAK,CAAC7L,OAAO,GAAGA,OAAO;IACvBc,EAAE,CAAC3B,YAAY,CAACgE,SAAS,EAAEyI,MAAM,IAAIvM,OAAO,CAACyM,KAAK,EAAE,EAAED,KAAK,CAAC,CAAC;EAC/D;EAEA,SAAShD,kBAAkBA,CAAChC,IAAI,EAAE/F,EAAE,EAAE;IACpCA,EAAE,CAAC,CAAC,CAACD,QAAQ,CAACmE,WAAW,CAAC;EAC5B;EAEA,SAAS2D,cAAcA,CAACS,OAAO,EAAEtI,EAAE,EAAE;IACnCsI,OAAO,CAACrK,KAAK,CAAC+B,EAAE,CAAC;EACnB;EAEA,SAASgI,mBAAmBA,CAACiD,IAAI,EAAEjL,EAAE,EAAE;IACrCA,EAAE,CAACiL,IAAI,KAAK,GAAG,GAAGxH,WAAW,GAAGA,WAAW,CAACwH,IAAI,CAAC,CAAC;EACpD;EAEA,SAAS/C,mBAAmBA,CAACgD,KAAK,EAAElL,EAAE,EAAE;IACtCzC,MAAM,CAAC4N,MAAM,CAAC1H,WAAW,EAAEyH,KAAK,CAAC;IACjClL,EAAE,EAAE;EACN;EAEA,SAASuF,UAAUA,CAAC0F,IAAI,EAAE;IACxB,OAAOxH,WAAW,CAACwH,IAAI,CAAC;EAC1B;EAEA,SAAST,aAAaA,CAAA,EAAG;IACvB,OAAOjF,UAAU,CAAC9G,UAAU,CAAC,IAAI8G,UAAU,CAAC/G,OAAO,CAAC;EACtD;EAEA,SAASqK,iBAAiBA,CAACD,MAAM,EAAE;IACjC,IAAIrD,UAAU,CAAC/G,OAAO,CAAC,EAAE;MACvBkF,MAAM,CAACoB,cAAc,CAAC8D,MAAM,EAAEpK,OAAO,EAAE;QACrCuD,KAAK,EAAEwD,UAAU,CAAC9G,UAAU,CAAC,IAAI8G,UAAU,CAAC/G,OAAO,CAAC;QACpD4M,UAAU,EAAE,KAAK;QACjBrG,YAAY,EAAE,KAAK;QACnBsG,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ;IACA,OAAOzC,MAAM;EACf;;EAEA;EACA,SAASF,eAAeA,CAACxJ,OAAO,EAAE0E,IAAI,EAAE;IACtC,IAAM0H,GAAG,GAAG1H,IAAI,CAAC1E,OAAO,CAAC;IACzB,OAAO0J,MAAM,IAAI;MACf,OAAO0C,GAAG,CAAC1C,MAAM,CAAC;IACpB,CAAC;EACH;EAEA,SAAS/E,OAAOA,CAAC0H,EAAE,EAAEzL,IAAI,EAAE2B,QAAQ,EAAEf,IAAI,EAAE;IACzCe,QAAQ,CAACmD,YAAY,GAAG,IAAI;IAC5B,OAAO;MACL,CAACpH,IAAI,GAAG,IAAI;MACZ+N,EAAE;MACFzL,IAAI;MACJ,IAAIgC,IAAIA,CAAA,EAAG;QACT,IAAIL,QAAQ,CAACmD,YAAY,EAAE;UACzB,OAAOnD,QAAQ,CAACmD,YAAY,CAACoB,OAAO;QACtC,CAAC,MAAM;UACL,IAAMwF,GAAG,GAAGtO,QAAQ,EAAE;UACtBuE,QAAQ,CAACmD,YAAY,GAAG4G,GAAG;UAC3B,IAAI,CAAC/J,QAAQ,CAAC0C,UAAU,EAAE;YACxB1C,QAAQ,CAACuD,MAAM,GAAGwG,GAAG,CAACtG,MAAM,CAACzD,QAAQ,CAACuD,MAAM,CAAC,GAAGwG,GAAG,CAAC3G,OAAO,CAACpD,QAAQ,CAACkD,OAAO,CAAC;UAC/E;UACA,OAAO6G,GAAG,CAACxF,OAAO;QACpB;MACF,CAAC;MACDtF,IAAI;MACJyE,OAAO,EAAE,EAAE;MACXnE,MAAM;MACN+C,SAAS,EAAEA,CAAA,KAAMtC,QAAQ,CAAC0C,UAAU;MACpCD,WAAW,EAAEA,CAAA,KAAMzC,QAAQ,CAAC2C,YAAY;MACxCmF,SAAS,EAAEA,CAAA,KAAM9H,QAAQ,CAACwD,UAAU;MACpC/E,MAAM,EAAEA,CAAA,KAAMuB,QAAQ,CAACkD,OAAO;MAC9BjD,KAAK,EAAEA,CAAA,KAAMD,QAAQ,CAACuD,MAAM;MAC5BiD,UAAUA,CAACiD,KAAK,EAAE;QAChBjO,KAAK,CAACiO,KAAK,EAAEpO,EAAE,CAACS,MAAM,EAAEK,uBAAuB,CAAC,MAAM,EAAEsN,KAAK,CAAC,CAAC;QAC/D3N,MAAM,CAAC4N,MAAM,CAAC1H,WAAW,EAAEyH,KAAK,CAAC;MACnC;IACF,CAAC;EACH;AACF"}
|
package/es/internal/runSaga.js
CHANGED
|
@@ -1,37 +1,32 @@
|
|
|
1
|
-
import { is, check, uid as nextSagaId, wrapSagaDispatch, noop, log } from
|
|
2
|
-
import proc from
|
|
1
|
+
import { is, check, uid as nextSagaId, wrapSagaDispatch, noop, log } from "./utils";
|
|
2
|
+
import proc from "./proc";
|
|
3
3
|
var RUN_SAGA_SIGNATURE = 'runSaga(storeInterface, saga, ...args)';
|
|
4
|
-
var NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE
|
|
4
|
+
var NON_GENERATOR_ERR = `${RUN_SAGA_SIGNATURE}: saga argument must be a Generator function!`;
|
|
5
5
|
export function runSaga(storeInterface, saga) {
|
|
6
6
|
var iterator;
|
|
7
|
-
|
|
8
7
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
9
8
|
args[_key - 2] = arguments[_key];
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
if (is.iterator(storeInterface)) {
|
|
13
11
|
if (process.env.NODE_ENV === 'development') {
|
|
14
|
-
log('warn',
|
|
12
|
+
log('warn', `runSaga(iterator, storeInterface) has been deprecated in favor of ${RUN_SAGA_SIGNATURE}`);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
iterator = storeInterface;
|
|
18
15
|
storeInterface = saga;
|
|
19
16
|
} else {
|
|
20
17
|
check(saga, is.func, NON_GENERATOR_ERR);
|
|
21
|
-
iterator = saga
|
|
18
|
+
iterator = saga(...args);
|
|
22
19
|
check(iterator, is.iterator, NON_GENERATOR_ERR);
|
|
23
20
|
}
|
|
24
|
-
|
|
25
21
|
var _storeInterface = storeInterface,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
subscribe = _storeInterface.subscribe,
|
|
23
|
+
dispatch = _storeInterface.dispatch,
|
|
24
|
+
getState = _storeInterface.getState,
|
|
25
|
+
context = _storeInterface.context,
|
|
26
|
+
sagaMonitor = _storeInterface.sagaMonitor,
|
|
27
|
+
logger = _storeInterface.logger,
|
|
28
|
+
onError = _storeInterface.onError;
|
|
33
29
|
var effectId = nextSagaId();
|
|
34
|
-
|
|
35
30
|
if (sagaMonitor) {
|
|
36
31
|
// monitors are expected to have a certain interface, let's fill-in any missing ones
|
|
37
32
|
sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;
|
|
@@ -40,26 +35,24 @@ export function runSaga(storeInterface, saga) {
|
|
|
40
35
|
sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;
|
|
41
36
|
sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;
|
|
42
37
|
sagaMonitor.effectTriggered({
|
|
43
|
-
effectId
|
|
38
|
+
effectId,
|
|
44
39
|
root: true,
|
|
45
40
|
parentEffectId: 0,
|
|
46
41
|
effect: {
|
|
47
42
|
root: true,
|
|
48
|
-
saga
|
|
49
|
-
args
|
|
43
|
+
saga,
|
|
44
|
+
args
|
|
50
45
|
}
|
|
51
46
|
});
|
|
52
47
|
}
|
|
53
|
-
|
|
54
48
|
var task = proc(iterator, subscribe, wrapSagaDispatch(dispatch), getState, context, {
|
|
55
|
-
sagaMonitor
|
|
56
|
-
logger
|
|
57
|
-
onError
|
|
49
|
+
sagaMonitor,
|
|
50
|
+
logger,
|
|
51
|
+
onError
|
|
58
52
|
}, effectId, saga.name);
|
|
59
|
-
|
|
60
53
|
if (sagaMonitor) {
|
|
61
54
|
sagaMonitor.effectResolved(effectId, task);
|
|
62
55
|
}
|
|
63
|
-
|
|
64
56
|
return task;
|
|
65
|
-
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=runSaga.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runSaga.js","names":["is","check","uid","nextSagaId","wrapSagaDispatch","noop","log","proc","RUN_SAGA_SIGNATURE","NON_GENERATOR_ERR","runSaga","storeInterface","saga","iterator","_len","arguments","length","args","Array","_key","process","env","NODE_ENV","func","_storeInterface","subscribe","dispatch","getState","context","sagaMonitor","logger","onError","effectId","effectTriggered","effectResolved","effectRejected","effectCancelled","actionDispatched","root","parentEffectId","effect","task","name"],"sources":["../../runSaga.js"],"sourcesContent":["import { is, check, uid as nextSagaId, wrapSagaDispatch, noop, log } from './utils'\nimport proc from './proc'\n\nconst RUN_SAGA_SIGNATURE = 'runSaga(storeInterface, saga, ...args)'\nconst NON_GENERATOR_ERR = `${RUN_SAGA_SIGNATURE}: saga argument must be a Generator function!`\n\nexport function runSaga(storeInterface, saga, ...args) {\n let iterator\n\n if (is.iterator(storeInterface)) {\n if (process.env.NODE_ENV === 'development') {\n log('warn', `runSaga(iterator, storeInterface) has been deprecated in favor of ${RUN_SAGA_SIGNATURE}`)\n }\n iterator = storeInterface\n storeInterface = saga\n } else {\n check(saga, is.func, NON_GENERATOR_ERR)\n iterator = saga(...args)\n check(iterator, is.iterator, NON_GENERATOR_ERR)\n }\n\n const { subscribe, dispatch, getState, context, sagaMonitor, logger, onError } = storeInterface\n\n const effectId = nextSagaId()\n\n if (sagaMonitor) {\n // monitors are expected to have a certain interface, let's fill-in any missing ones\n sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop\n sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop\n sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop\n sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop\n sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop\n\n sagaMonitor.effectTriggered({ effectId, root: true, parentEffectId: 0, effect: { root: true, saga, args } })\n }\n\n const task = proc(\n iterator,\n subscribe,\n wrapSagaDispatch(dispatch),\n getState,\n context,\n { sagaMonitor, logger, onError },\n effectId,\n saga.name,\n )\n\n if (sagaMonitor) {\n sagaMonitor.effectResolved(effectId, task)\n }\n\n return task\n}\n"],"mappings":"AAAA,SAASA,EAAE,EAAEC,KAAK,EAAEC,GAAG,IAAIC,UAAU,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,GAAG;AAClE,OAAOC,IAAI;AAEX,IAAMC,kBAAkB,GAAG,wCAAwC;AACnE,IAAMC,iBAAiB,GAAI,GAAED,kBAAmB,+CAA8C;AAE9F,OAAO,SAASE,OAAOA,CAACC,cAAc,EAAEC,IAAI,EAAW;EACrD,IAAIC,QAAQ;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADmCC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EAGnD,IAAInB,EAAE,CAACa,QAAQ,CAACF,cAAc,CAAC,EAAE;IAC/B,IAAIS,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;MAC1ChB,GAAG,CAAC,MAAM,EAAG,qEAAoEE,kBAAmB,EAAC,CAAC;IACxG;IACAK,QAAQ,GAAGF,cAAc;IACzBA,cAAc,GAAGC,IAAI;EACvB,CAAC,MAAM;IACLX,KAAK,CAACW,IAAI,EAAEZ,EAAE,CAACuB,IAAI,EAAEd,iBAAiB,CAAC;IACvCI,QAAQ,GAAGD,IAAI,CAAC,GAAGK,IAAI,CAAC;IACxBhB,KAAK,CAACY,QAAQ,EAAEb,EAAE,CAACa,QAAQ,EAAEJ,iBAAiB,CAAC;EACjD;EAEA,IAAAe,eAAA,GAAiFb,cAAc;IAAvFc,SAAS,GAAAD,eAAA,CAATC,SAAS;IAAEC,QAAQ,GAAAF,eAAA,CAARE,QAAQ;IAAEC,QAAQ,GAAAH,eAAA,CAARG,QAAQ;IAAEC,OAAO,GAAAJ,eAAA,CAAPI,OAAO;IAAEC,WAAW,GAAAL,eAAA,CAAXK,WAAW;IAAEC,MAAM,GAAAN,eAAA,CAANM,MAAM;IAAEC,OAAO,GAAAP,eAAA,CAAPO,OAAO;EAE5E,IAAMC,QAAQ,GAAG7B,UAAU,EAAE;EAE7B,IAAI0B,WAAW,EAAE;IACf;IACAA,WAAW,CAACI,eAAe,GAAGJ,WAAW,CAACI,eAAe,IAAI5B,IAAI;IACjEwB,WAAW,CAACK,cAAc,GAAGL,WAAW,CAACK,cAAc,IAAI7B,IAAI;IAC/DwB,WAAW,CAACM,cAAc,GAAGN,WAAW,CAACM,cAAc,IAAI9B,IAAI;IAC/DwB,WAAW,CAACO,eAAe,GAAGP,WAAW,CAACO,eAAe,IAAI/B,IAAI;IACjEwB,WAAW,CAACQ,gBAAgB,GAAGR,WAAW,CAACQ,gBAAgB,IAAIhC,IAAI;IAEnEwB,WAAW,CAACI,eAAe,CAAC;MAAED,QAAQ;MAAEM,IAAI,EAAE,IAAI;MAAEC,cAAc,EAAE,CAAC;MAAEC,MAAM,EAAE;QAAEF,IAAI,EAAE,IAAI;QAAE1B,IAAI;QAAEK;MAAK;IAAE,CAAC,CAAC;EAC9G;EAEA,IAAMwB,IAAI,GAAGlC,IAAI,CACfM,QAAQ,EACRY,SAAS,EACTrB,gBAAgB,CAACsB,QAAQ,CAAC,EAC1BC,QAAQ,EACRC,OAAO,EACP;IAAEC,WAAW;IAAEC,MAAM;IAAEC;EAAQ,CAAC,EAChCC,QAAQ,EACRpB,IAAI,CAAC8B,IAAI,CACV;EAED,IAAIb,WAAW,EAAE;IACfA,WAAW,CAACK,cAAc,CAACF,QAAQ,EAAES,IAAI,CAAC;EAC5C;EAEA,OAAOA,IAAI;AACb"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { is, makeIterator } from "../utils";
|
|
2
3
|
var done = {
|
|
3
4
|
done: true,
|
|
4
5
|
value: undefined
|
|
@@ -8,44 +9,34 @@ export function safeName(patternOrChannel) {
|
|
|
8
9
|
if (is.channel(patternOrChannel)) {
|
|
9
10
|
return 'channel';
|
|
10
11
|
} else if (Array.isArray(patternOrChannel)) {
|
|
11
|
-
return String(patternOrChannel.map(
|
|
12
|
-
return String(entry);
|
|
13
|
-
}));
|
|
12
|
+
return String(patternOrChannel.map(entry => String(entry)));
|
|
14
13
|
} else {
|
|
15
14
|
return String(patternOrChannel);
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
|
-
export default function fsmIterator(fsm, q0
|
|
19
|
-
|
|
20
|
-
name = 'iterator';
|
|
21
|
-
}
|
|
22
|
-
|
|
17
|
+
export default function fsmIterator(fsm, q0) {
|
|
18
|
+
var name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'iterator';
|
|
23
19
|
var updateState,
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
qNext = q0;
|
|
26
21
|
function next(arg, error) {
|
|
27
22
|
if (qNext === qEnd) {
|
|
28
23
|
return done;
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
if (error) {
|
|
32
26
|
qNext = qEnd;
|
|
33
27
|
throw error;
|
|
34
28
|
} else {
|
|
35
29
|
updateState && updateState(arg);
|
|
36
|
-
|
|
37
30
|
var _fsm$qNext = fsm[qNext](),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
_fsm$qNext2 = _slicedToArray(_fsm$qNext, 3),
|
|
32
|
+
q = _fsm$qNext2[0],
|
|
33
|
+
output = _fsm$qNext2[1],
|
|
34
|
+
_updateState = _fsm$qNext2[2];
|
|
42
35
|
qNext = q;
|
|
43
36
|
updateState = _updateState;
|
|
44
37
|
return qNext === qEnd ? done : output;
|
|
45
38
|
}
|
|
46
39
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}, name, true);
|
|
51
|
-
}
|
|
40
|
+
return makeIterator(next, error => next(null, error), name, true);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=fsmIterator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsmIterator.js","names":["is","makeIterator","done","value","undefined","qEnd","safeName","patternOrChannel","channel","Array","isArray","String","map","entry","fsmIterator","fsm","q0","name","arguments","length","updateState","qNext","next","arg","error","_fsm$qNext","_fsm$qNext2","_slicedToArray","q","output","_updateState"],"sources":["../../../fsmIterator.js"],"sourcesContent":["import { is, makeIterator } from '../utils'\n\nconst done = { done: true, value: undefined }\nexport const qEnd = {}\n\nexport function safeName(patternOrChannel) {\n if (is.channel(patternOrChannel)) {\n return 'channel'\n } else if (Array.isArray(patternOrChannel)) {\n return String(patternOrChannel.map(entry => String(entry)))\n } else {\n return String(patternOrChannel)\n }\n}\n\nexport default function fsmIterator(fsm, q0, name = 'iterator') {\n let updateState,\n qNext = q0\n\n function next(arg, error) {\n if (qNext === qEnd) {\n return done\n }\n\n if (error) {\n qNext = qEnd\n throw error\n } else {\n updateState && updateState(arg)\n let [q, output, _updateState] = fsm[qNext]()\n qNext = q\n updateState = _updateState\n return qNext === qEnd ? done : output\n }\n }\n\n return makeIterator(next, error => next(null, error), name, true)\n}\n"],"mappings":";AAAA,SAASA,EAAE,EAAEC,YAAY;AAEzB,IAAMC,IAAI,GAAG;EAAEA,IAAI,EAAE,IAAI;EAAEC,KAAK,EAAEC;AAAU,CAAC;AAC7C,OAAO,IAAMC,IAAI,GAAG,CAAC,CAAC;AAEtB,OAAO,SAASC,QAAQA,CAACC,gBAAgB,EAAE;EACzC,IAAIP,EAAE,CAACQ,OAAO,CAACD,gBAAgB,CAAC,EAAE;IAChC,OAAO,SAAS;EAClB,CAAC,MAAM,IAAIE,KAAK,CAACC,OAAO,CAACH,gBAAgB,CAAC,EAAE;IAC1C,OAAOI,MAAM,CAACJ,gBAAgB,CAACK,GAAG,CAACC,KAAK,IAAIF,MAAM,CAACE,KAAK,CAAC,CAAC,CAAC;EAC7D,CAAC,MAAM;IACL,OAAOF,MAAM,CAACJ,gBAAgB,CAAC;EACjC;AACF;AAEA,eAAe,SAASO,WAAWA,CAACC,GAAG,EAAEC,EAAE,EAAqB;EAAA,IAAnBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAd,SAAA,GAAAc,SAAA,MAAG,UAAU;EAC5D,IAAIE,WAAW;IACbC,KAAK,GAAGL,EAAE;EAEZ,SAASM,IAAIA,CAACC,GAAG,EAAEC,KAAK,EAAE;IACxB,IAAIH,KAAK,KAAKhB,IAAI,EAAE;MAClB,OAAOH,IAAI;IACb;IAEA,IAAIsB,KAAK,EAAE;MACTH,KAAK,GAAGhB,IAAI;MACZ,MAAMmB,KAAK;IACb,CAAC,MAAM;MACLJ,WAAW,IAAIA,WAAW,CAACG,GAAG,CAAC;MAC/B,IAAAE,UAAA,GAAgCV,GAAG,CAACM,KAAK,CAAC,EAAE;QAAAK,WAAA,GAAAC,cAAA,CAAAF,UAAA;QAAvCG,CAAC,GAAAF,WAAA;QAAEG,MAAM,GAAAH,WAAA;QAAEI,YAAY,GAAAJ,WAAA;MAC5BL,KAAK,GAAGO,CAAC;MACTR,WAAW,GAAGU,YAAY;MAC1B,OAAOT,KAAK,KAAKhB,IAAI,GAAGH,IAAI,GAAG2B,MAAM;IACvC;EACF;EAEA,OAAO5B,YAAY,CAACqB,IAAI,EAAEE,KAAK,IAAIF,IAAI,CAAC,IAAI,EAAEE,KAAK,CAAC,EAAEP,IAAI,EAAE,IAAI,CAAC;AACnE"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import takeEveryHelper from
|
|
2
|
-
import takeLatestHelper from
|
|
3
|
-
import throttleHelper from
|
|
4
|
-
import { deprecate } from
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export { takeEvery, takeLatest, throttle, takeEveryHelper, takeLatestHelper, throttleHelper };
|
|
1
|
+
import takeEveryHelper from "./takeEvery";
|
|
2
|
+
import takeLatestHelper from "./takeLatest";
|
|
3
|
+
import throttleHelper from "./throttle";
|
|
4
|
+
import { deprecate } from "../utils";
|
|
5
|
+
var deprecationWarning = helperName => `import { ${helperName} } from 'redux-saga' has been deprecated in favor of import { ${helperName} } from 'redux-saga/effects'.
|
|
6
|
+
The latter will not work with yield*, as helper effects are wrapped automatically for you in fork effect.
|
|
7
|
+
Therefore yield ${helperName} will return task descriptor to your saga and execute next lines of code.`;
|
|
8
|
+
var takeEvery = deprecate(takeEveryHelper, deprecationWarning('takeEvery'));
|
|
9
|
+
var takeLatest = deprecate(takeLatestHelper, deprecationWarning('takeLatest'));
|
|
10
|
+
var throttle = deprecate(throttleHelper, deprecationWarning('throttle'));
|
|
11
|
+
export { takeEvery, takeLatest, throttle, takeEveryHelper, takeLatestHelper, throttleHelper };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["takeEveryHelper","takeLatestHelper","throttleHelper","deprecate","deprecationWarning","helperName","takeEvery","takeLatest","throttle"],"sources":["../../../index.js"],"sourcesContent":["import takeEveryHelper from './takeEvery'\nimport takeLatestHelper from './takeLatest'\nimport throttleHelper from './throttle'\n\nimport { deprecate } from '../utils'\n\nconst deprecationWarning = helperName =>\n `import { ${helperName} } from 'redux-saga' has been deprecated in favor of import { ${helperName} } from 'redux-saga/effects'.\nThe latter will not work with yield*, as helper effects are wrapped automatically for you in fork effect.\nTherefore yield ${helperName} will return task descriptor to your saga and execute next lines of code.`\n\nconst takeEvery = deprecate(takeEveryHelper, deprecationWarning('takeEvery'))\nconst takeLatest = deprecate(takeLatestHelper, deprecationWarning('takeLatest'))\nconst throttle = deprecate(throttleHelper, deprecationWarning('throttle'))\n\nexport { takeEvery, takeLatest, throttle, takeEveryHelper, takeLatestHelper, throttleHelper }\n"],"mappings":"AAAA,OAAOA,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,cAAc;AAErB,SAASC,SAAS;AAElB,IAAMC,kBAAkB,GAAGC,UAAU,IAClC,YAAWA,UAAW,iEAAgEA,UAAW;AACpG;AACA,kBAAkBA,UAAW,2EAA0E;AAEvG,IAAMC,SAAS,GAAGH,SAAS,CAACH,eAAe,EAAEI,kBAAkB,CAAC,WAAW,CAAC,CAAC;AAC7E,IAAMG,UAAU,GAAGJ,SAAS,CAACF,gBAAgB,EAAEG,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAChF,IAAMI,QAAQ,GAAGL,SAAS,CAACD,cAAc,EAAEE,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAE1E,SAASE,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAER,eAAe,EAAEC,gBAAgB,EAAEC,cAAc"}
|
|
@@ -1,34 +1,27 @@
|
|
|
1
|
-
import fsmIterator, { qEnd, safeName } from
|
|
2
|
-
import { take, fork } from
|
|
3
|
-
import { END } from
|
|
1
|
+
import fsmIterator, { qEnd, safeName } from "./fsmIterator";
|
|
2
|
+
import { take, fork } from "../io";
|
|
3
|
+
import { END } from "../channel";
|
|
4
4
|
export default function takeEvery(patternOrChannel, worker) {
|
|
5
5
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
6
6
|
args[_key - 2] = arguments[_key];
|
|
7
7
|
}
|
|
8
|
-
|
|
9
8
|
var yTake = {
|
|
10
9
|
done: false,
|
|
11
10
|
value: take(patternOrChannel)
|
|
12
11
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
value: fork.apply(void 0, [worker].concat(args, [ac]))
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
|
|
12
|
+
var yFork = ac => ({
|
|
13
|
+
done: false,
|
|
14
|
+
value: fork(worker, ...args, ac)
|
|
15
|
+
});
|
|
21
16
|
var action,
|
|
22
|
-
|
|
23
|
-
return action = ac;
|
|
24
|
-
};
|
|
25
|
-
|
|
17
|
+
setAction = ac => action = ac;
|
|
26
18
|
return fsmIterator({
|
|
27
|
-
q1
|
|
19
|
+
q1() {
|
|
28
20
|
return ['q2', yTake, setAction];
|
|
29
21
|
},
|
|
30
|
-
q2
|
|
22
|
+
q2() {
|
|
31
23
|
return action === END ? [qEnd] : ['q1', yFork(action)];
|
|
32
24
|
}
|
|
33
|
-
}, 'q1',
|
|
34
|
-
}
|
|
25
|
+
}, 'q1', `takeEvery(${safeName(patternOrChannel)}, ${worker.name})`);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=takeEvery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"takeEvery.js","names":["fsmIterator","qEnd","safeName","take","fork","END","takeEvery","patternOrChannel","worker","_len","arguments","length","args","Array","_key","yTake","done","value","yFork","ac","action","setAction","q1","q2","name"],"sources":["../../../takeEvery.js"],"sourcesContent":["import fsmIterator, { qEnd, safeName } from './fsmIterator'\nimport { take, fork } from '../io'\nimport { END } from '../channel'\n\nexport default function takeEvery(patternOrChannel, worker, ...args) {\n const yTake = { done: false, value: take(patternOrChannel) }\n const yFork = ac => ({ done: false, value: fork(worker, ...args, ac) })\n\n let action,\n setAction = ac => (action = ac)\n\n return fsmIterator(\n {\n q1() {\n return ['q2', yTake, setAction]\n },\n q2() {\n return action === END ? [qEnd] : ['q1', yFork(action)]\n },\n },\n 'q1',\n `takeEvery(${safeName(patternOrChannel)}, ${worker.name})`,\n )\n}\n"],"mappings":"AAAA,OAAOA,WAAW,IAAIC,IAAI,EAAEC,QAAQ;AACpC,SAASC,IAAI,EAAEC,IAAI;AACnB,SAASC,GAAG;AAEZ,eAAe,SAASC,SAASA,CAACC,gBAAgB,EAAEC,MAAM,EAAW;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EACjE,IAAMC,KAAK,GAAG;IAAEC,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEd,IAAI,CAACI,gBAAgB;EAAE,CAAC;EAC5D,IAAMW,KAAK,GAAGC,EAAE,KAAK;IAAEH,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEb,IAAI,CAACI,MAAM,EAAE,GAAGI,IAAI,EAAEO,EAAE;EAAE,CAAC,CAAC;EAEvE,IAAIC,MAAM;IACRC,SAAS,GAAGF,EAAE,IAAKC,MAAM,GAAGD,EAAG;EAEjC,OAAOnB,WAAW,CAChB;IACEsB,EAAEA,CAAA,EAAG;MACH,OAAO,CAAC,IAAI,EAAEP,KAAK,EAAEM,SAAS,CAAC;IACjC,CAAC;IACDE,EAAEA,CAAA,EAAG;MACH,OAAOH,MAAM,KAAKf,GAAG,GAAG,CAACJ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAEiB,KAAK,CAACE,MAAM,CAAC,CAAC;IACxD;EACF,CAAC,EACD,IAAI,EACH,aAAYlB,QAAQ,CAACK,gBAAgB,CAAE,KAAIC,MAAM,CAACgB,IAAK,GAAE,CAC3D;AACH"}
|
|
@@ -1,49 +1,35 @@
|
|
|
1
|
-
import fsmIterator, { qEnd, safeName } from
|
|
2
|
-
import { cancel, take, fork } from
|
|
3
|
-
import { END } from
|
|
1
|
+
import fsmIterator, { qEnd, safeName } from "./fsmIterator";
|
|
2
|
+
import { cancel, take, fork } from "../io";
|
|
3
|
+
import { END } from "../channel";
|
|
4
4
|
export default function takeLatest(patternOrChannel, worker) {
|
|
5
5
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
6
6
|
args[_key - 2] = arguments[_key];
|
|
7
7
|
}
|
|
8
|
-
|
|
9
8
|
var yTake = {
|
|
10
9
|
done: false,
|
|
11
10
|
value: take(patternOrChannel)
|
|
12
11
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var yCancel = function yCancel(task) {
|
|
22
|
-
return {
|
|
23
|
-
done: false,
|
|
24
|
-
value: cancel(task)
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
|
|
12
|
+
var yFork = ac => ({
|
|
13
|
+
done: false,
|
|
14
|
+
value: fork(worker, ...args, ac)
|
|
15
|
+
});
|
|
16
|
+
var yCancel = task => ({
|
|
17
|
+
done: false,
|
|
18
|
+
value: cancel(task)
|
|
19
|
+
});
|
|
28
20
|
var task, action;
|
|
29
|
-
|
|
30
|
-
var
|
|
31
|
-
return task = t;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
var setAction = function setAction(ac) {
|
|
35
|
-
return action = ac;
|
|
36
|
-
};
|
|
37
|
-
|
|
21
|
+
var setTask = t => task = t;
|
|
22
|
+
var setAction = ac => action = ac;
|
|
38
23
|
return fsmIterator({
|
|
39
|
-
q1
|
|
24
|
+
q1() {
|
|
40
25
|
return ['q2', yTake, setAction];
|
|
41
26
|
},
|
|
42
|
-
q2
|
|
27
|
+
q2() {
|
|
43
28
|
return action === END ? [qEnd] : task ? ['q3', yCancel(task)] : ['q1', yFork(action), setTask];
|
|
44
29
|
},
|
|
45
|
-
q3
|
|
30
|
+
q3() {
|
|
46
31
|
return ['q1', yFork(action), setTask];
|
|
47
32
|
}
|
|
48
|
-
}, 'q1',
|
|
49
|
-
}
|
|
33
|
+
}, 'q1', `takeLatest(${safeName(patternOrChannel)}, ${worker.name})`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=takeLatest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"takeLatest.js","names":["fsmIterator","qEnd","safeName","cancel","take","fork","END","takeLatest","patternOrChannel","worker","_len","arguments","length","args","Array","_key","yTake","done","value","yFork","ac","yCancel","task","action","setTask","t","setAction","q1","q2","q3","name"],"sources":["../../../takeLatest.js"],"sourcesContent":["import fsmIterator, { qEnd, safeName } from './fsmIterator'\nimport { cancel, take, fork } from '../io'\nimport { END } from '../channel'\n\nexport default function takeLatest(patternOrChannel, worker, ...args) {\n const yTake = { done: false, value: take(patternOrChannel) }\n const yFork = ac => ({ done: false, value: fork(worker, ...args, ac) })\n const yCancel = task => ({ done: false, value: cancel(task) })\n\n let task, action\n const setTask = t => (task = t)\n const setAction = ac => (action = ac)\n\n return fsmIterator(\n {\n q1() {\n return ['q2', yTake, setAction]\n },\n q2() {\n return action === END ? [qEnd] : task ? ['q3', yCancel(task)] : ['q1', yFork(action), setTask]\n },\n q3() {\n return ['q1', yFork(action), setTask]\n },\n },\n 'q1',\n `takeLatest(${safeName(patternOrChannel)}, ${worker.name})`,\n )\n}\n"],"mappings":"AAAA,OAAOA,WAAW,IAAIC,IAAI,EAAEC,QAAQ;AACpC,SAASC,MAAM,EAAEC,IAAI,EAAEC,IAAI;AAC3B,SAASC,GAAG;AAEZ,eAAe,SAASC,UAAUA,CAACC,gBAAgB,EAAEC,MAAM,EAAW;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EAClE,IAAMC,KAAK,GAAG;IAAEC,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEd,IAAI,CAACI,gBAAgB;EAAE,CAAC;EAC5D,IAAMW,KAAK,GAAGC,EAAE,KAAK;IAAEH,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEb,IAAI,CAACI,MAAM,EAAE,GAAGI,IAAI,EAAEO,EAAE;EAAE,CAAC,CAAC;EACvE,IAAMC,OAAO,GAAGC,IAAI,KAAK;IAAEL,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEf,MAAM,CAACmB,IAAI;EAAE,CAAC,CAAC;EAE9D,IAAIA,IAAI,EAAEC,MAAM;EAChB,IAAMC,OAAO,GAAGC,CAAC,IAAKH,IAAI,GAAGG,CAAE;EAC/B,IAAMC,SAAS,GAAGN,EAAE,IAAKG,MAAM,GAAGH,EAAG;EAErC,OAAOpB,WAAW,CAChB;IACE2B,EAAEA,CAAA,EAAG;MACH,OAAO,CAAC,IAAI,EAAEX,KAAK,EAAEU,SAAS,CAAC;IACjC,CAAC;IACDE,EAAEA,CAAA,EAAG;MACH,OAAOL,MAAM,KAAKjB,GAAG,GAAG,CAACL,IAAI,CAAC,GAAGqB,IAAI,GAAG,CAAC,IAAI,EAAED,OAAO,CAACC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAEH,KAAK,CAACI,MAAM,CAAC,EAAEC,OAAO,CAAC;IAChG,CAAC;IACDK,EAAEA,CAAA,EAAG;MACH,OAAO,CAAC,IAAI,EAAEV,KAAK,CAACI,MAAM,CAAC,EAAEC,OAAO,CAAC;IACvC;EACF,CAAC,EACD,IAAI,EACH,cAAatB,QAAQ,CAACM,gBAAgB,CAAE,KAAIC,MAAM,CAACqB,IAAK,GAAE,CAC5D;AACH"}
|
|
@@ -1,58 +1,44 @@
|
|
|
1
|
-
import fsmIterator, { qEnd, safeName } from
|
|
2
|
-
import { take, fork, actionChannel, call } from
|
|
3
|
-
import { END } from
|
|
4
|
-
import { buffers } from
|
|
5
|
-
import { delay } from
|
|
1
|
+
import fsmIterator, { qEnd, safeName } from "./fsmIterator";
|
|
2
|
+
import { take, fork, actionChannel, call } from "../io";
|
|
3
|
+
import { END } from "../channel";
|
|
4
|
+
import { buffers } from "../buffers";
|
|
5
|
+
import { delay } from "../utils";
|
|
6
6
|
export default function throttle(delayLength, pattern, worker) {
|
|
7
7
|
for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
|
|
8
8
|
args[_key - 3] = arguments[_key];
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
var action, channel;
|
|
12
11
|
var yActionChannel = {
|
|
13
12
|
done: false,
|
|
14
13
|
value: actionChannel(pattern, buffers.sliding(1))
|
|
15
14
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var yFork = function yFork(ac) {
|
|
25
|
-
return {
|
|
26
|
-
done: false,
|
|
27
|
-
value: fork.apply(void 0, [worker].concat(args, [ac]))
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
|
|
15
|
+
var yTake = () => ({
|
|
16
|
+
done: false,
|
|
17
|
+
value: take(channel)
|
|
18
|
+
});
|
|
19
|
+
var yFork = ac => ({
|
|
20
|
+
done: false,
|
|
21
|
+
value: fork(worker, ...args, ac)
|
|
22
|
+
});
|
|
31
23
|
var yDelay = {
|
|
32
24
|
done: false,
|
|
33
25
|
value: call(delay, delayLength)
|
|
34
26
|
};
|
|
35
|
-
|
|
36
|
-
var
|
|
37
|
-
return action = ac;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
var setChannel = function setChannel(ch) {
|
|
41
|
-
return channel = ch;
|
|
42
|
-
};
|
|
43
|
-
|
|
27
|
+
var setAction = ac => action = ac;
|
|
28
|
+
var setChannel = ch => channel = ch;
|
|
44
29
|
return fsmIterator({
|
|
45
|
-
q1
|
|
30
|
+
q1() {
|
|
46
31
|
return ['q2', yActionChannel, setChannel];
|
|
47
32
|
},
|
|
48
|
-
q2
|
|
33
|
+
q2() {
|
|
49
34
|
return ['q3', yTake(), setAction];
|
|
50
35
|
},
|
|
51
|
-
q3
|
|
36
|
+
q3() {
|
|
52
37
|
return action === END ? [qEnd] : ['q4', yFork(action)];
|
|
53
38
|
},
|
|
54
|
-
q4
|
|
39
|
+
q4() {
|
|
55
40
|
return ['q2', yDelay];
|
|
56
41
|
}
|
|
57
|
-
}, 'q1',
|
|
58
|
-
}
|
|
42
|
+
}, 'q1', `throttle(${safeName(pattern)}, ${worker.name})`);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=throttle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throttle.js","names":["fsmIterator","qEnd","safeName","take","fork","actionChannel","call","END","buffers","delay","throttle","delayLength","pattern","worker","_len","arguments","length","args","Array","_key","action","channel","yActionChannel","done","value","sliding","yTake","yFork","ac","yDelay","setAction","setChannel","ch","q1","q2","q3","q4","name"],"sources":["../../../throttle.js"],"sourcesContent":["import fsmIterator, { qEnd, safeName } from './fsmIterator'\nimport { take, fork, actionChannel, call } from '../io'\nimport { END } from '../channel'\nimport { buffers } from '../buffers'\nimport { delay } from '../utils'\n\nexport default function throttle(delayLength, pattern, worker, ...args) {\n let action, channel\n\n const yActionChannel = { done: false, value: actionChannel(pattern, buffers.sliding(1)) }\n const yTake = () => ({ done: false, value: take(channel) })\n const yFork = ac => ({ done: false, value: fork(worker, ...args, ac) })\n const yDelay = { done: false, value: call(delay, delayLength) }\n\n const setAction = ac => (action = ac)\n const setChannel = ch => (channel = ch)\n\n return fsmIterator(\n {\n q1() {\n return ['q2', yActionChannel, setChannel]\n },\n q2() {\n return ['q3', yTake(), setAction]\n },\n q3() {\n return action === END ? [qEnd] : ['q4', yFork(action)]\n },\n q4() {\n return ['q2', yDelay]\n },\n },\n 'q1',\n `throttle(${safeName(pattern)}, ${worker.name})`,\n )\n}\n"],"mappings":"AAAA,OAAOA,WAAW,IAAIC,IAAI,EAAEC,QAAQ;AACpC,SAASC,IAAI,EAAEC,IAAI,EAAEC,aAAa,EAAEC,IAAI;AACxC,SAASC,GAAG;AACZ,SAASC,OAAO;AAChB,SAASC,KAAK;AAEd,eAAe,SAASC,QAAQA,CAACC,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAW;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EACpE,IAAIC,MAAM,EAAEC,OAAO;EAEnB,IAAMC,cAAc,GAAG;IAAEC,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEnB,aAAa,CAACO,OAAO,EAAEJ,OAAO,CAACiB,OAAO,CAAC,CAAC,CAAC;EAAE,CAAC;EACzF,IAAMC,KAAK,GAAGA,CAAA,MAAO;IAAEH,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAErB,IAAI,CAACkB,OAAO;EAAE,CAAC,CAAC;EAC3D,IAAMM,KAAK,GAAGC,EAAE,KAAK;IAAEL,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAEpB,IAAI,CAACS,MAAM,EAAE,GAAGI,IAAI,EAAEW,EAAE;EAAE,CAAC,CAAC;EACvE,IAAMC,MAAM,GAAG;IAAEN,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAElB,IAAI,CAACG,KAAK,EAAEE,WAAW;EAAE,CAAC;EAE/D,IAAMmB,SAAS,GAAGF,EAAE,IAAKR,MAAM,GAAGQ,EAAG;EACrC,IAAMG,UAAU,GAAGC,EAAE,IAAKX,OAAO,GAAGW,EAAG;EAEvC,OAAOhC,WAAW,CAChB;IACEiC,EAAEA,CAAA,EAAG;MACH,OAAO,CAAC,IAAI,EAAEX,cAAc,EAAES,UAAU,CAAC;IAC3C,CAAC;IACDG,EAAEA,CAAA,EAAG;MACH,OAAO,CAAC,IAAI,EAAER,KAAK,EAAE,EAAEI,SAAS,CAAC;IACnC,CAAC;IACDK,EAAEA,CAAA,EAAG;MACH,OAAOf,MAAM,KAAKb,GAAG,GAAG,CAACN,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE0B,KAAK,CAACP,MAAM,CAAC,CAAC;IACxD,CAAC;IACDgB,EAAEA,CAAA,EAAG;MACH,OAAO,CAAC,IAAI,EAAEP,MAAM,CAAC;IACvB;EACF,CAAC,EACD,IAAI,EACH,YAAW3B,QAAQ,CAACU,OAAO,CAAE,KAAIC,MAAM,CAACwB,IAAK,GAAE,CACjD;AACH"}
|
package/es/internal/scheduler.js
CHANGED
|
@@ -6,14 +6,13 @@ var queue = [];
|
|
|
6
6
|
- Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This
|
|
7
7
|
triggers flushing the queued tasks.
|
|
8
8
|
**/
|
|
9
|
-
|
|
10
9
|
var semaphore = 0;
|
|
10
|
+
|
|
11
11
|
/**
|
|
12
12
|
Executes a task 'atomically'. Tasks scheduled during this execution will be queued
|
|
13
13
|
and flushed after this task has finished (assuming the scheduler endup in a released
|
|
14
14
|
state).
|
|
15
15
|
**/
|
|
16
|
-
|
|
17
16
|
function exec(task) {
|
|
18
17
|
try {
|
|
19
18
|
suspend();
|
|
@@ -22,44 +21,41 @@ function exec(task) {
|
|
|
22
21
|
release();
|
|
23
22
|
}
|
|
24
23
|
}
|
|
24
|
+
|
|
25
25
|
/**
|
|
26
26
|
Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)
|
|
27
27
|
**/
|
|
28
|
-
|
|
29
|
-
|
|
30
28
|
export function asap(task) {
|
|
31
29
|
queue.push(task);
|
|
32
|
-
|
|
33
30
|
if (!semaphore) {
|
|
34
31
|
suspend();
|
|
35
32
|
flush();
|
|
36
33
|
}
|
|
37
34
|
}
|
|
35
|
+
|
|
38
36
|
/**
|
|
39
37
|
Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the
|
|
40
38
|
scheduler is released.
|
|
41
39
|
**/
|
|
42
|
-
|
|
43
40
|
export function suspend() {
|
|
44
41
|
semaphore++;
|
|
45
42
|
}
|
|
43
|
+
|
|
46
44
|
/**
|
|
47
45
|
Puts the scheduler in a `released` state.
|
|
48
46
|
**/
|
|
49
|
-
|
|
50
47
|
function release() {
|
|
51
48
|
semaphore--;
|
|
52
49
|
}
|
|
50
|
+
|
|
53
51
|
/**
|
|
54
52
|
Releases the current lock. Executes all queued tasks if the scheduler is in the released state.
|
|
55
53
|
**/
|
|
56
|
-
|
|
57
|
-
|
|
58
54
|
export function flush() {
|
|
59
55
|
release();
|
|
60
56
|
var task;
|
|
61
|
-
|
|
62
57
|
while (!semaphore && (task = queue.shift()) !== undefined) {
|
|
63
58
|
exec(task);
|
|
64
59
|
}
|
|
65
|
-
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","names":["queue","semaphore","exec","task","suspend","release","asap","push","flush","shift","undefined"],"sources":["../../scheduler.js"],"sourcesContent":["const queue = []\n/**\n Variable to hold a counting semaphore\n - Incrementing adds a lock and puts the scheduler in a `suspended` state (if it's not\n already suspended)\n - Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This\n triggers flushing the queued tasks.\n**/\nlet semaphore = 0\n\n/**\n Executes a task 'atomically'. Tasks scheduled during this execution will be queued\n and flushed after this task has finished (assuming the scheduler endup in a released\n state).\n**/\nfunction exec(task) {\n try {\n suspend()\n task()\n } finally {\n release()\n }\n}\n\n/**\n Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)\n**/\nexport function asap(task) {\n queue.push(task)\n\n if (!semaphore) {\n suspend()\n flush()\n }\n}\n\n/**\n Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the\n scheduler is released.\n**/\nexport function suspend() {\n semaphore++\n}\n\n/**\n Puts the scheduler in a `released` state.\n**/\nfunction release() {\n semaphore--\n}\n\n/**\n Releases the current lock. Executes all queued tasks if the scheduler is in the released state.\n**/\nexport function flush() {\n release()\n\n let task\n while (!semaphore && (task = queue.shift()) !== undefined) {\n exec(task)\n }\n}\n"],"mappings":"AAAA,IAAMA,KAAK,GAAG,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,SAAS,GAAG,CAAC;;AAEjB;AACA;AACA;AACA;AACA;AACA,SAASC,IAAIA,CAACC,IAAI,EAAE;EAClB,IAAI;IACFC,OAAO,EAAE;IACTD,IAAI,EAAE;EACR,CAAC,SAAS;IACRE,OAAO,EAAE;EACX;AACF;;AAEA;AACA;AACA;AACA,OAAO,SAASC,IAAIA,CAACH,IAAI,EAAE;EACzBH,KAAK,CAACO,IAAI,CAACJ,IAAI,CAAC;EAEhB,IAAI,CAACF,SAAS,EAAE;IACdG,OAAO,EAAE;IACTI,KAAK,EAAE;EACT;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASJ,OAAOA,CAAA,EAAG;EACxBH,SAAS,EAAE;AACb;;AAEA;AACA;AACA;AACA,SAASI,OAAOA,CAAA,EAAG;EACjBJ,SAAS,EAAE;AACb;;AAEA;AACA;AACA;AACA,OAAO,SAASO,KAAKA,CAAA,EAAG;EACtBH,OAAO,EAAE;EAET,IAAIF,IAAI;EACR,OAAO,CAACF,SAAS,IAAI,CAACE,IAAI,GAAGH,KAAK,CAACS,KAAK,EAAE,MAAMC,SAAS,EAAE;IACzDR,IAAI,CAACC,IAAI,CAAC;EACZ;AACF"}
|