757 lines
20 KiB
JavaScript
757 lines
20 KiB
JavaScript
'use strict';
|
|
|
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
|
|
var symbols = require('@redux-saga/symbols');
|
|
var _extends = _interopDefault(require('@babel/runtime/helpers/extends'));
|
|
var is = require('@redux-saga/is');
|
|
var delayP = _interopDefault(require('@redux-saga/delay-p'));
|
|
|
|
var konst = function konst(v) {
|
|
return function () {
|
|
return v;
|
|
};
|
|
};
|
|
var kTrue =
|
|
/*#__PURE__*/
|
|
konst(true);
|
|
|
|
exports.noop = function noop() {};
|
|
|
|
if ( typeof Proxy !== 'undefined') {
|
|
exports.noop =
|
|
/*#__PURE__*/
|
|
new Proxy(exports.noop, {
|
|
set: function set() {
|
|
throw internalErr('There was an attempt to assign a property to internal `noop` function.');
|
|
}
|
|
});
|
|
}
|
|
var identity = function identity(v) {
|
|
return v;
|
|
};
|
|
var hasSymbol = typeof Symbol === 'function';
|
|
var asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';
|
|
function check(value, predicate, error) {
|
|
if (!predicate(value)) {
|
|
throw new Error(error);
|
|
}
|
|
}
|
|
var assignWithSymbols = function assignWithSymbols(target, source) {
|
|
_extends(target, source);
|
|
|
|
if (Object.getOwnPropertySymbols) {
|
|
Object.getOwnPropertySymbols(source).forEach(function (s) {
|
|
target[s] = source[s];
|
|
});
|
|
}
|
|
};
|
|
var flatMap = function flatMap(mapper, arr) {
|
|
var _ref;
|
|
|
|
return (_ref = []).concat.apply(_ref, arr.map(mapper));
|
|
};
|
|
function remove(array, item) {
|
|
var index = array.indexOf(item);
|
|
|
|
if (index >= 0) {
|
|
array.splice(index, 1);
|
|
}
|
|
}
|
|
function once(fn) {
|
|
var called = false;
|
|
return function () {
|
|
if (called) {
|
|
return;
|
|
}
|
|
|
|
called = true;
|
|
fn();
|
|
};
|
|
}
|
|
|
|
var kThrow = function kThrow(err) {
|
|
throw err;
|
|
};
|
|
|
|
var kReturn = function kReturn(value) {
|
|
return {
|
|
value: value,
|
|
done: true
|
|
};
|
|
};
|
|
|
|
function makeIterator(next, thro, name) {
|
|
if (thro === void 0) {
|
|
thro = kThrow;
|
|
}
|
|
|
|
if (name === void 0) {
|
|
name = 'iterator';
|
|
}
|
|
|
|
var iterator = {
|
|
meta: {
|
|
name: name
|
|
},
|
|
next: next,
|
|
throw: thro,
|
|
return: kReturn,
|
|
isSagaIterator: true
|
|
};
|
|
|
|
if (typeof Symbol !== 'undefined') {
|
|
iterator[Symbol.iterator] = function () {
|
|
return iterator;
|
|
};
|
|
}
|
|
|
|
return iterator;
|
|
}
|
|
function logError(error, _ref2) {
|
|
var sagaStack = _ref2.sagaStack;
|
|
|
|
/*eslint-disable no-console*/
|
|
console.error(error);
|
|
console.error(sagaStack);
|
|
}
|
|
var internalErr = function internalErr(err) {
|
|
return new Error("\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\n Error: " + err + "\n");
|
|
};
|
|
var createSetContextWarning = function createSetContextWarning(ctx, props) {
|
|
return (ctx ? ctx + '.' : '') + "setContext(props): argument " + props + " is not a plain object";
|
|
};
|
|
var FROZEN_ACTION_ERROR = "You can't put (a.k.a. dispatch from saga) frozen actions.\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\nIf you are using redux and you care about this behaviour (frozen actions),\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\nExample implementation:\n\nconst freezeActions = store => next => action => next(Object.freeze(action))\n"; // creates empty, but not-holey array
|
|
|
|
var createEmptyArray = function createEmptyArray(n) {
|
|
return Array.apply(null, new Array(n));
|
|
};
|
|
var wrapSagaDispatch = function wrapSagaDispatch(dispatch) {
|
|
return function (action) {
|
|
{
|
|
check(action, function (ac) {
|
|
return !Object.isFrozen(ac);
|
|
}, FROZEN_ACTION_ERROR);
|
|
}
|
|
|
|
return dispatch(Object.defineProperty(action, symbols.SAGA_ACTION, {
|
|
value: true
|
|
}));
|
|
};
|
|
};
|
|
var shouldTerminate = function shouldTerminate(res) {
|
|
return res === symbols.TERMINATE;
|
|
};
|
|
var shouldCancel = function shouldCancel(res) {
|
|
return res === symbols.TASK_CANCEL;
|
|
};
|
|
var shouldComplete = function shouldComplete(res) {
|
|
return shouldTerminate(res) || shouldCancel(res);
|
|
};
|
|
function createAllStyleChildCallbacks(shape, parentCallback) {
|
|
var keys = Object.keys(shape);
|
|
var totalCount = keys.length;
|
|
|
|
{
|
|
check(totalCount, function (c) {
|
|
return c > 0;
|
|
}, 'createAllStyleChildCallbacks: get an empty array or object');
|
|
}
|
|
|
|
var completedCount = 0;
|
|
var completed;
|
|
var results = is.array(shape) ? createEmptyArray(totalCount) : {};
|
|
var childCallbacks = {};
|
|
|
|
function checkEnd() {
|
|
if (completedCount === totalCount) {
|
|
completed = true;
|
|
parentCallback(results);
|
|
}
|
|
}
|
|
|
|
keys.forEach(function (key) {
|
|
var chCbAtKey = function chCbAtKey(res, isErr) {
|
|
if (completed) {
|
|
return;
|
|
}
|
|
|
|
if (isErr || shouldComplete(res)) {
|
|
parentCallback.cancel();
|
|
parentCallback(res, isErr);
|
|
} else {
|
|
results[key] = res;
|
|
completedCount++;
|
|
checkEnd();
|
|
}
|
|
};
|
|
|
|
chCbAtKey.cancel = exports.noop;
|
|
childCallbacks[key] = chCbAtKey;
|
|
});
|
|
|
|
parentCallback.cancel = function () {
|
|
if (!completed) {
|
|
completed = true;
|
|
keys.forEach(function (key) {
|
|
return childCallbacks[key].cancel();
|
|
});
|
|
}
|
|
};
|
|
|
|
return childCallbacks;
|
|
}
|
|
function getMetaInfo(fn) {
|
|
return {
|
|
name: fn.name || 'anonymous',
|
|
location: getLocation(fn)
|
|
};
|
|
}
|
|
function getLocation(instrumented) {
|
|
return instrumented[symbols.SAGA_LOCATION];
|
|
}
|
|
|
|
var BUFFER_OVERFLOW = "Channel's Buffer overflow!";
|
|
var ON_OVERFLOW_THROW = 1;
|
|
var ON_OVERFLOW_DROP = 2;
|
|
var ON_OVERFLOW_SLIDE = 3;
|
|
var ON_OVERFLOW_EXPAND = 4;
|
|
var zeroBuffer = {
|
|
isEmpty: kTrue,
|
|
put: exports.noop,
|
|
take: exports.noop
|
|
};
|
|
|
|
function ringBuffer(limit, overflowAction) {
|
|
if (limit === void 0) {
|
|
limit = 10;
|
|
}
|
|
|
|
var arr = new Array(limit);
|
|
var length = 0;
|
|
var pushIndex = 0;
|
|
var popIndex = 0;
|
|
|
|
var push = function push(it) {
|
|
arr[pushIndex] = it;
|
|
pushIndex = (pushIndex + 1) % limit;
|
|
length++;
|
|
};
|
|
|
|
var take = function take() {
|
|
if (length != 0) {
|
|
var it = arr[popIndex];
|
|
arr[popIndex] = null;
|
|
length--;
|
|
popIndex = (popIndex + 1) % limit;
|
|
return it;
|
|
}
|
|
};
|
|
|
|
var flush = function flush() {
|
|
var items = [];
|
|
|
|
while (length) {
|
|
items.push(take());
|
|
}
|
|
|
|
return items;
|
|
};
|
|
|
|
return {
|
|
isEmpty: function isEmpty() {
|
|
return length == 0;
|
|
},
|
|
put: function put(it) {
|
|
if (length < limit) {
|
|
push(it);
|
|
} else {
|
|
var doubledLimit;
|
|
|
|
switch (overflowAction) {
|
|
case ON_OVERFLOW_THROW:
|
|
throw new Error(BUFFER_OVERFLOW);
|
|
|
|
case ON_OVERFLOW_SLIDE:
|
|
arr[pushIndex] = it;
|
|
pushIndex = (pushIndex + 1) % limit;
|
|
popIndex = pushIndex;
|
|
break;
|
|
|
|
case ON_OVERFLOW_EXPAND:
|
|
doubledLimit = 2 * limit;
|
|
arr = flush();
|
|
length = arr.length;
|
|
pushIndex = arr.length;
|
|
popIndex = 0;
|
|
arr.length = doubledLimit;
|
|
limit = doubledLimit;
|
|
push(it);
|
|
break;
|
|
|
|
default: // DROP
|
|
|
|
}
|
|
}
|
|
},
|
|
take: take,
|
|
flush: flush
|
|
};
|
|
}
|
|
|
|
var none = function none() {
|
|
return zeroBuffer;
|
|
};
|
|
var fixed = function fixed(limit) {
|
|
return ringBuffer(limit, ON_OVERFLOW_THROW);
|
|
};
|
|
var dropping = function dropping(limit) {
|
|
return ringBuffer(limit, ON_OVERFLOW_DROP);
|
|
};
|
|
var sliding = function sliding(limit) {
|
|
return ringBuffer(limit, ON_OVERFLOW_SLIDE);
|
|
};
|
|
var expanding = function expanding(initialSize) {
|
|
return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);
|
|
};
|
|
|
|
var buffers = /*#__PURE__*/Object.freeze({
|
|
__proto__: null,
|
|
none: none,
|
|
fixed: fixed,
|
|
dropping: dropping,
|
|
sliding: sliding,
|
|
expanding: expanding
|
|
});
|
|
|
|
var TAKE = 'TAKE';
|
|
var PUT = 'PUT';
|
|
var ALL = 'ALL';
|
|
var RACE = 'RACE';
|
|
var CALL = 'CALL';
|
|
var CPS = 'CPS';
|
|
var FORK = 'FORK';
|
|
var JOIN = 'JOIN';
|
|
var CANCEL = 'CANCEL';
|
|
var SELECT = 'SELECT';
|
|
var ACTION_CHANNEL = 'ACTION_CHANNEL';
|
|
var CANCELLED = 'CANCELLED';
|
|
var FLUSH = 'FLUSH';
|
|
var GET_CONTEXT = 'GET_CONTEXT';
|
|
var SET_CONTEXT = 'SET_CONTEXT';
|
|
|
|
var effectTypes = /*#__PURE__*/Object.freeze({
|
|
__proto__: null,
|
|
TAKE: TAKE,
|
|
PUT: PUT,
|
|
ALL: ALL,
|
|
RACE: RACE,
|
|
CALL: CALL,
|
|
CPS: CPS,
|
|
FORK: FORK,
|
|
JOIN: JOIN,
|
|
CANCEL: CANCEL,
|
|
SELECT: SELECT,
|
|
ACTION_CHANNEL: ACTION_CHANNEL,
|
|
CANCELLED: CANCELLED,
|
|
FLUSH: FLUSH,
|
|
GET_CONTEXT: GET_CONTEXT,
|
|
SET_CONTEXT: SET_CONTEXT
|
|
});
|
|
|
|
var TEST_HINT = '\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';
|
|
|
|
var makeEffect = function makeEffect(type, payload) {
|
|
var _ref;
|
|
|
|
return _ref = {}, _ref[symbols.IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;
|
|
};
|
|
|
|
var isForkEffect = function isForkEffect(eff) {
|
|
return is.effect(eff) && eff.type === FORK;
|
|
};
|
|
|
|
var detach = function detach(eff) {
|
|
{
|
|
check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');
|
|
}
|
|
|
|
return makeEffect(FORK, _extends({}, eff.payload, {
|
|
detached: true
|
|
}));
|
|
};
|
|
function take(patternOrChannel, multicastPattern) {
|
|
if (patternOrChannel === void 0) {
|
|
patternOrChannel = '*';
|
|
}
|
|
|
|
if ( arguments.length) {
|
|
check(arguments[0], is.notUndef, 'take(patternOrChannel): patternOrChannel is undefined');
|
|
}
|
|
|
|
if (is.pattern(patternOrChannel)) {
|
|
if (is.notUndef(multicastPattern)) {
|
|
/* eslint-disable no-console */
|
|
console.warn("take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types");
|
|
}
|
|
|
|
return makeEffect(TAKE, {
|
|
pattern: patternOrChannel
|
|
});
|
|
}
|
|
|
|
if (is.multicast(patternOrChannel) && is.notUndef(multicastPattern) && is.pattern(multicastPattern)) {
|
|
return makeEffect(TAKE, {
|
|
channel: patternOrChannel,
|
|
pattern: multicastPattern
|
|
});
|
|
}
|
|
|
|
if (is.channel(patternOrChannel)) {
|
|
if (is.notUndef(multicastPattern)) {
|
|
/* eslint-disable no-console */
|
|
console.warn("take(channel) takes one argument but two were provided. Second argument is ignored.");
|
|
}
|
|
|
|
return makeEffect(TAKE, {
|
|
channel: patternOrChannel
|
|
});
|
|
}
|
|
|
|
{
|
|
throw new Error("take(patternOrChannel): argument " + patternOrChannel + " is not valid channel or a valid pattern");
|
|
}
|
|
}
|
|
var takeMaybe = function takeMaybe() {
|
|
var eff = take.apply(void 0, arguments);
|
|
eff.payload.maybe = true;
|
|
return eff;
|
|
};
|
|
function put(channel, action) {
|
|
{
|
|
if (arguments.length > 1) {
|
|
check(channel, is.notUndef, 'put(channel, action): argument channel is undefined');
|
|
check(channel, is.channel, "put(channel, action): argument " + channel + " is not a valid channel");
|
|
check(action, is.notUndef, 'put(channel, action): argument action is undefined');
|
|
} else {
|
|
check(channel, is.notUndef, 'put(action): argument action is undefined');
|
|
}
|
|
}
|
|
|
|
if (is.undef(action)) {
|
|
action = channel; // `undefined` instead of `null` to make default parameter work
|
|
|
|
channel = undefined;
|
|
}
|
|
|
|
return makeEffect(PUT, {
|
|
channel: channel,
|
|
action: action
|
|
});
|
|
}
|
|
var putResolve = function putResolve() {
|
|
var eff = put.apply(void 0, arguments);
|
|
eff.payload.resolve = true;
|
|
return eff;
|
|
};
|
|
function all(effects) {
|
|
var eff = makeEffect(ALL, effects);
|
|
eff.combinator = true;
|
|
return eff;
|
|
}
|
|
function race(effects) {
|
|
var eff = makeEffect(RACE, effects);
|
|
eff.combinator = true;
|
|
return eff;
|
|
} // this match getFnCallDescriptor logic
|
|
|
|
var validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {
|
|
check(fnDescriptor, is.notUndef, effectName + ": argument fn is undefined or null");
|
|
|
|
if (is.func(fnDescriptor)) {
|
|
return;
|
|
}
|
|
|
|
var context = null;
|
|
var fn;
|
|
|
|
if (is.array(fnDescriptor)) {
|
|
context = fnDescriptor[0];
|
|
fn = fnDescriptor[1];
|
|
check(fn, is.notUndef, effectName + ": argument of type [context, fn] has undefined or null `fn`");
|
|
} else if (is.object(fnDescriptor)) {
|
|
context = fnDescriptor.context;
|
|
fn = fnDescriptor.fn;
|
|
check(fn, is.notUndef, effectName + ": argument of type {context, fn} has undefined or null `fn`");
|
|
} else {
|
|
check(fnDescriptor, is.func, effectName + ": argument fn is not function");
|
|
return;
|
|
}
|
|
|
|
if (context && is.string(fn)) {
|
|
check(context[fn], is.func, effectName + ": context arguments has no such method - \"" + fn + "\"");
|
|
return;
|
|
}
|
|
|
|
check(fn, is.func, effectName + ": unpacked fn argument (from [context, fn] or {context, fn}) is not a function");
|
|
};
|
|
|
|
function getFnCallDescriptor(fnDescriptor, args) {
|
|
var context = null;
|
|
var fn;
|
|
|
|
if (is.func(fnDescriptor)) {
|
|
fn = fnDescriptor;
|
|
} else {
|
|
if (is.array(fnDescriptor)) {
|
|
context = fnDescriptor[0];
|
|
fn = fnDescriptor[1];
|
|
} else {
|
|
context = fnDescriptor.context;
|
|
fn = fnDescriptor.fn;
|
|
}
|
|
|
|
if (context && is.string(fn) && is.func(context[fn])) {
|
|
fn = context[fn];
|
|
}
|
|
}
|
|
|
|
return {
|
|
context: context,
|
|
fn: fn,
|
|
args: args
|
|
};
|
|
}
|
|
|
|
var isNotDelayEffect = function isNotDelayEffect(fn) {
|
|
return fn !== delay;
|
|
};
|
|
|
|
function call(fnDescriptor) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
|
|
{
|
|
var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';
|
|
check(fnDescriptor, isNotDelayEffect, "instead of writing `yield call(delay, " + arg0 + ")` where delay is an effect from `redux-saga/effects` you should write `yield delay(" + arg0 + ")`");
|
|
validateFnDescriptor('call', fnDescriptor);
|
|
}
|
|
|
|
return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));
|
|
}
|
|
function apply(context, fn, args) {
|
|
if (args === void 0) {
|
|
args = [];
|
|
}
|
|
|
|
var fnDescriptor = [context, fn];
|
|
|
|
{
|
|
validateFnDescriptor('apply', fnDescriptor);
|
|
}
|
|
|
|
return makeEffect(CALL, getFnCallDescriptor([context, fn], args));
|
|
}
|
|
function cps(fnDescriptor) {
|
|
{
|
|
validateFnDescriptor('cps', fnDescriptor);
|
|
}
|
|
|
|
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
args[_key2 - 1] = arguments[_key2];
|
|
}
|
|
|
|
return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));
|
|
}
|
|
function fork(fnDescriptor) {
|
|
{
|
|
validateFnDescriptor('fork', fnDescriptor);
|
|
check(fnDescriptor, function (arg) {
|
|
return !is.effect(arg);
|
|
}, 'fork: argument must not be an effect');
|
|
}
|
|
|
|
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
args[_key3 - 1] = arguments[_key3];
|
|
}
|
|
|
|
return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));
|
|
}
|
|
function spawn(fnDescriptor) {
|
|
{
|
|
validateFnDescriptor('spawn', fnDescriptor);
|
|
}
|
|
|
|
for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
|
args[_key4 - 1] = arguments[_key4];
|
|
}
|
|
|
|
return detach(fork.apply(void 0, [fnDescriptor].concat(args)));
|
|
}
|
|
function join(taskOrTasks) {
|
|
{
|
|
if (arguments.length > 1) {
|
|
throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');
|
|
}
|
|
|
|
if (is.array(taskOrTasks)) {
|
|
taskOrTasks.forEach(function (t) {
|
|
check(t, is.task, "join([...tasks]): argument " + t + " is not a valid Task object " + TEST_HINT);
|
|
});
|
|
} else {
|
|
check(taskOrTasks, is.task, "join(task): argument " + taskOrTasks + " is not a valid Task object " + TEST_HINT);
|
|
}
|
|
}
|
|
|
|
return makeEffect(JOIN, taskOrTasks);
|
|
}
|
|
function cancel(taskOrTasks) {
|
|
if (taskOrTasks === void 0) {
|
|
taskOrTasks = symbols.SELF_CANCELLATION;
|
|
}
|
|
|
|
{
|
|
if (arguments.length > 1) {
|
|
throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');
|
|
}
|
|
|
|
if (is.array(taskOrTasks)) {
|
|
taskOrTasks.forEach(function (t) {
|
|
check(t, is.task, "cancel([...tasks]): argument " + t + " is not a valid Task object " + TEST_HINT);
|
|
});
|
|
} else if (taskOrTasks !== symbols.SELF_CANCELLATION && is.notUndef(taskOrTasks)) {
|
|
check(taskOrTasks, is.task, "cancel(task): argument " + taskOrTasks + " is not a valid Task object " + TEST_HINT);
|
|
}
|
|
}
|
|
|
|
return makeEffect(CANCEL, taskOrTasks);
|
|
}
|
|
function select(selector) {
|
|
if (selector === void 0) {
|
|
selector = identity;
|
|
}
|
|
|
|
for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
|
|
args[_key5 - 1] = arguments[_key5];
|
|
}
|
|
|
|
if ( arguments.length) {
|
|
check(arguments[0], is.notUndef, 'select(selector, [...]): argument selector is undefined');
|
|
check(selector, is.func, "select(selector, [...]): argument " + selector + " is not a function");
|
|
}
|
|
|
|
return makeEffect(SELECT, {
|
|
selector: selector,
|
|
args: args
|
|
});
|
|
}
|
|
/**
|
|
channel(pattern, [buffer]) => creates a proxy channel for store actions
|
|
**/
|
|
|
|
function actionChannel(pattern, buffer) {
|
|
{
|
|
check(pattern, is.pattern, 'actionChannel(pattern,...): argument pattern is not valid');
|
|
|
|
if (arguments.length > 1) {
|
|
check(buffer, is.notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');
|
|
check(buffer, is.buffer, "actionChannel(pattern, buffer): argument " + buffer + " is not a valid buffer");
|
|
}
|
|
}
|
|
|
|
return makeEffect(ACTION_CHANNEL, {
|
|
pattern: pattern,
|
|
buffer: buffer
|
|
});
|
|
}
|
|
function cancelled() {
|
|
return makeEffect(CANCELLED, {});
|
|
}
|
|
function flush(channel) {
|
|
{
|
|
check(channel, is.channel, "flush(channel): argument " + channel + " is not valid channel");
|
|
}
|
|
|
|
return makeEffect(FLUSH, channel);
|
|
}
|
|
function getContext(prop) {
|
|
{
|
|
check(prop, is.string, "getContext(prop): argument " + prop + " is not a string");
|
|
}
|
|
|
|
return makeEffect(GET_CONTEXT, prop);
|
|
}
|
|
function setContext(props) {
|
|
{
|
|
check(props, is.object, createSetContextWarning(null, props));
|
|
}
|
|
|
|
return makeEffect(SET_CONTEXT, props);
|
|
}
|
|
var delay =
|
|
/*#__PURE__*/
|
|
call.bind(null, delayP);
|
|
|
|
exports.ACTION_CHANNEL = ACTION_CHANNEL;
|
|
exports.ALL = ALL;
|
|
exports.CALL = CALL;
|
|
exports.CANCEL = CANCEL;
|
|
exports.CANCELLED = CANCELLED;
|
|
exports.CPS = CPS;
|
|
exports.FLUSH = FLUSH;
|
|
exports.FORK = FORK;
|
|
exports.GET_CONTEXT = GET_CONTEXT;
|
|
exports.JOIN = JOIN;
|
|
exports.PUT = PUT;
|
|
exports.RACE = RACE;
|
|
exports.SELECT = SELECT;
|
|
exports.SET_CONTEXT = SET_CONTEXT;
|
|
exports.TAKE = TAKE;
|
|
exports.actionChannel = actionChannel;
|
|
exports.all = all;
|
|
exports.apply = apply;
|
|
exports.assignWithSymbols = assignWithSymbols;
|
|
exports.asyncIteratorSymbol = asyncIteratorSymbol;
|
|
exports.buffers = buffers;
|
|
exports.call = call;
|
|
exports.cancel = cancel;
|
|
exports.cancelled = cancelled;
|
|
exports.check = check;
|
|
exports.cps = cps;
|
|
exports.createAllStyleChildCallbacks = createAllStyleChildCallbacks;
|
|
exports.createEmptyArray = createEmptyArray;
|
|
exports.createSetContextWarning = createSetContextWarning;
|
|
exports.delay = delay;
|
|
exports.detach = detach;
|
|
exports.effectTypes = effectTypes;
|
|
exports.expanding = expanding;
|
|
exports.flatMap = flatMap;
|
|
exports.flush = flush;
|
|
exports.fork = fork;
|
|
exports.getContext = getContext;
|
|
exports.getLocation = getLocation;
|
|
exports.getMetaInfo = getMetaInfo;
|
|
exports.identity = identity;
|
|
exports.internalErr = internalErr;
|
|
exports.join = join;
|
|
exports.kTrue = kTrue;
|
|
exports.logError = logError;
|
|
exports.makeIterator = makeIterator;
|
|
exports.none = none;
|
|
exports.once = once;
|
|
exports.put = put;
|
|
exports.putResolve = putResolve;
|
|
exports.race = race;
|
|
exports.remove = remove;
|
|
exports.select = select;
|
|
exports.setContext = setContext;
|
|
exports.shouldCancel = shouldCancel;
|
|
exports.shouldComplete = shouldComplete;
|
|
exports.shouldTerminate = shouldTerminate;
|
|
exports.sliding = sliding;
|
|
exports.spawn = spawn;
|
|
exports.take = take;
|
|
exports.takeMaybe = takeMaybe;
|
|
exports.wrapSagaDispatch = wrapSagaDispatch;
|