You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
297 lines
8.6 KiB
297 lines
8.6 KiB
'use strict';
|
|
|
|
exports.__esModule = true;
|
|
|
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
|
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
|
|
exports.check = check;
|
|
exports.hasOwn = hasOwn;
|
|
exports.remove = remove;
|
|
exports.deferred = deferred;
|
|
exports.arrayOfDeffered = arrayOfDeffered;
|
|
exports.delay = delay;
|
|
exports.createMockTask = createMockTask;
|
|
exports.autoInc = autoInc;
|
|
exports.makeIterator = makeIterator;
|
|
exports.log = log;
|
|
exports.deprecate = deprecate;
|
|
var sym = exports.sym = function sym(id) {
|
|
return '@@redux-saga/' + id;
|
|
};
|
|
|
|
var TASK = /*#__PURE__*/exports.TASK = sym('TASK');
|
|
var HELPER = /*#__PURE__*/exports.HELPER = sym('HELPER');
|
|
var MATCH = /*#__PURE__*/exports.MATCH = sym('MATCH');
|
|
var CANCEL = /*#__PURE__*/exports.CANCEL = sym('CANCEL_PROMISE');
|
|
var SAGA_ACTION = /*#__PURE__*/exports.SAGA_ACTION = sym('SAGA_ACTION');
|
|
var SELF_CANCELLATION = /*#__PURE__*/exports.SELF_CANCELLATION = sym('SELF_CANCELLATION');
|
|
var konst = exports.konst = function konst(v) {
|
|
return function () {
|
|
return v;
|
|
};
|
|
};
|
|
var kTrue = /*#__PURE__*/exports.kTrue = konst(true);
|
|
var kFalse = /*#__PURE__*/exports.kFalse = konst(false);
|
|
var noop = exports.noop = function noop() {};
|
|
var ident = exports.ident = function ident(v) {
|
|
return v;
|
|
};
|
|
|
|
function check(value, predicate, error) {
|
|
if (!predicate(value)) {
|
|
log('error', 'uncaught at check', error);
|
|
throw new Error(error);
|
|
}
|
|
}
|
|
|
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
function hasOwn(object, property) {
|
|
return is.notUndef(object) && hasOwnProperty.call(object, property);
|
|
}
|
|
|
|
var is = exports.is = {
|
|
undef: function undef(v) {
|
|
return v === null || v === undefined;
|
|
},
|
|
notUndef: function notUndef(v) {
|
|
return v !== null && v !== undefined;
|
|
},
|
|
func: function func(f) {
|
|
return typeof f === 'function';
|
|
},
|
|
number: function number(n) {
|
|
return typeof n === 'number';
|
|
},
|
|
string: function string(s) {
|
|
return typeof s === 'string';
|
|
},
|
|
array: Array.isArray,
|
|
object: function object(obj) {
|
|
return obj && !is.array(obj) && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';
|
|
},
|
|
promise: function promise(p) {
|
|
return p && is.func(p.then);
|
|
},
|
|
iterator: function iterator(it) {
|
|
return it && is.func(it.next) && is.func(it.throw);
|
|
},
|
|
iterable: function iterable(it) {
|
|
return it && is.func(Symbol) ? is.func(it[Symbol.iterator]) : is.array(it);
|
|
},
|
|
task: function task(t) {
|
|
return t && t[TASK];
|
|
},
|
|
observable: function observable(ob) {
|
|
return ob && is.func(ob.subscribe);
|
|
},
|
|
buffer: function buffer(buf) {
|
|
return buf && is.func(buf.isEmpty) && is.func(buf.take) && is.func(buf.put);
|
|
},
|
|
pattern: function pattern(pat) {
|
|
return pat && (is.string(pat) || (typeof pat === 'undefined' ? 'undefined' : _typeof(pat)) === 'symbol' || is.func(pat) || is.array(pat));
|
|
},
|
|
channel: function channel(ch) {
|
|
return ch && is.func(ch.take) && is.func(ch.close);
|
|
},
|
|
helper: function helper(it) {
|
|
return it && it[HELPER];
|
|
},
|
|
stringableFunc: function stringableFunc(f) {
|
|
return is.func(f) && hasOwn(f, 'toString');
|
|
}
|
|
};
|
|
|
|
var object = exports.object = {
|
|
assign: function assign(target, source) {
|
|
for (var i in source) {
|
|
if (hasOwn(source, i)) {
|
|
target[i] = source[i];
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
function remove(array, item) {
|
|
var index = array.indexOf(item);
|
|
if (index >= 0) {
|
|
array.splice(index, 1);
|
|
}
|
|
}
|
|
|
|
var array = exports.array = {
|
|
from: function from(obj) {
|
|
var arr = Array(obj.length);
|
|
for (var i in obj) {
|
|
if (hasOwn(obj, i)) {
|
|
arr[i] = obj[i];
|
|
}
|
|
}
|
|
return arr;
|
|
}
|
|
};
|
|
|
|
function deferred() {
|
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
|
|
var def = _extends({}, props);
|
|
var promise = new Promise(function (resolve, reject) {
|
|
def.resolve = resolve;
|
|
def.reject = reject;
|
|
});
|
|
def.promise = promise;
|
|
return def;
|
|
}
|
|
|
|
function arrayOfDeffered(length) {
|
|
var arr = [];
|
|
for (var i = 0; i < length; i++) {
|
|
arr.push(deferred());
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function delay(ms) {
|
|
var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
|
|
var timeoutId = void 0;
|
|
var promise = new Promise(function (resolve) {
|
|
timeoutId = setTimeout(function () {
|
|
return resolve(val);
|
|
}, ms);
|
|
});
|
|
|
|
promise[CANCEL] = function () {
|
|
return clearTimeout(timeoutId);
|
|
};
|
|
|
|
return promise;
|
|
}
|
|
|
|
function createMockTask() {
|
|
var _ref;
|
|
|
|
var running = true;
|
|
var _result = void 0,
|
|
_error = void 0;
|
|
|
|
return _ref = {}, _ref[TASK] = true, _ref.isRunning = function isRunning() {
|
|
return running;
|
|
}, _ref.result = function result() {
|
|
return _result;
|
|
}, _ref.error = function error() {
|
|
return _error;
|
|
}, _ref.setRunning = function setRunning(b) {
|
|
return running = b;
|
|
}, _ref.setResult = function setResult(r) {
|
|
return _result = r;
|
|
}, _ref.setError = function setError(e) {
|
|
return _error = e;
|
|
}, _ref;
|
|
}
|
|
|
|
function autoInc() {
|
|
var seed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
|
|
return function () {
|
|
return ++seed;
|
|
};
|
|
}
|
|
|
|
var uid = /*#__PURE__*/exports.uid = autoInc();
|
|
|
|
var kThrow = function kThrow(err) {
|
|
throw err;
|
|
};
|
|
var kReturn = function kReturn(value) {
|
|
return { value: value, done: true };
|
|
};
|
|
function makeIterator(next) {
|
|
var thro = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : kThrow;
|
|
var name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
var isHelper = arguments[3];
|
|
|
|
var iterator = { name: name, next: next, throw: thro, return: kReturn };
|
|
|
|
if (isHelper) {
|
|
iterator[HELPER] = true;
|
|
}
|
|
if (typeof Symbol !== 'undefined') {
|
|
iterator[Symbol.iterator] = function () {
|
|
return iterator;
|
|
};
|
|
}
|
|
return iterator;
|
|
}
|
|
|
|
/**
|
|
Print error in a useful way whether in a browser environment
|
|
(with expandable error stack traces), or in a node.js environment
|
|
(text-only log output)
|
|
**/
|
|
function log(level, message) {
|
|
var error = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
|
|
/*eslint-disable no-console*/
|
|
if (typeof window === 'undefined') {
|
|
console.log('redux-saga ' + level + ': ' + message + '\n' + (error && error.stack || error));
|
|
} else {
|
|
console[level](message, error);
|
|
}
|
|
}
|
|
|
|
function deprecate(fn, deprecationWarning) {
|
|
return function () {
|
|
if (process.env.NODE_ENV === 'development') log('warn', deprecationWarning);
|
|
return fn.apply(undefined, arguments);
|
|
};
|
|
}
|
|
|
|
var updateIncentive = exports.updateIncentive = function updateIncentive(deprecated, preferred) {
|
|
return deprecated + ' has been deprecated in favor of ' + preferred + ', please update your code';
|
|
};
|
|
|
|
var internalErr = exports.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 = exports.createSetContextWarning = function createSetContextWarning(ctx, props) {
|
|
return (ctx ? ctx + '.' : '') + 'setContext(props): argument ' + props + ' is not a plain object';
|
|
};
|
|
|
|
var wrapSagaDispatch = exports.wrapSagaDispatch = function wrapSagaDispatch(dispatch) {
|
|
return function (action) {
|
|
return dispatch(Object.defineProperty(action, SAGA_ACTION, { value: true }));
|
|
};
|
|
};
|
|
|
|
var cloneableGenerator = exports.cloneableGenerator = function cloneableGenerator(generatorFunc) {
|
|
return function () {
|
|
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
var history = [];
|
|
var gen = generatorFunc.apply(undefined, args);
|
|
return {
|
|
next: function next(arg) {
|
|
history.push(arg);
|
|
return gen.next(arg);
|
|
},
|
|
clone: function clone() {
|
|
var clonedGen = cloneableGenerator(generatorFunc).apply(undefined, args);
|
|
history.forEach(function (arg) {
|
|
return clonedGen.next(arg);
|
|
});
|
|
return clonedGen;
|
|
},
|
|
return: function _return(value) {
|
|
return gen.return(value);
|
|
},
|
|
throw: function _throw(exception) {
|
|
return gen.throw(exception);
|
|
}
|
|
};
|
|
};
|
|
}; |