@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
package/lib/index.js
CHANGED
|
@@ -1,52 +1,90 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
exports
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
exports
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
exports
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "CANCEL", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _utils.CANCEL;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "END", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _channel.END;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "buffers", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function get() {
|
|
23
|
+
return _buffers.buffers;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "channel", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _channel.channel;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
exports.default = void 0;
|
|
33
|
+
Object.defineProperty(exports, "delay", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function get() {
|
|
36
|
+
return _utils.delay;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "detach", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function get() {
|
|
42
|
+
return _io.detach;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
exports.effects = void 0;
|
|
46
|
+
Object.defineProperty(exports, "eventChannel", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
get: function get() {
|
|
49
|
+
return _channel.eventChannel;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(exports, "runSaga", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
get: function get() {
|
|
55
|
+
return _runSaga.runSaga;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(exports, "takeEvery", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
get: function get() {
|
|
61
|
+
return _sagaHelpers.takeEvery;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(exports, "takeLatest", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get: function get() {
|
|
67
|
+
return _sagaHelpers.takeLatest;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(exports, "throttle", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
get: function get() {
|
|
73
|
+
return _sagaHelpers.throttle;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
exports.utils = void 0;
|
|
77
|
+
var _middleware = _interopRequireDefault(require("./internal/middleware"));
|
|
78
|
+
var _runSaga = require("./internal/runSaga");
|
|
79
|
+
var _channel = require("./internal/channel");
|
|
80
|
+
var _buffers = require("./internal/buffers");
|
|
81
|
+
var _sagaHelpers = require("./internal/sagaHelpers");
|
|
82
|
+
var _utils = require("./internal/utils");
|
|
83
|
+
var _io = require("./internal/io");
|
|
84
|
+
var effects = _interopRequireWildcard(require("./effects"));
|
|
39
85
|
exports.effects = effects;
|
|
40
|
-
|
|
41
|
-
var utils = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./utils"));
|
|
42
|
-
|
|
86
|
+
var utils = _interopRequireWildcard(require("./utils"));
|
|
43
87
|
exports.utils = utils;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
48
|
-
|
|
49
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
50
|
-
|
|
51
|
-
var _default = _middleware["default"];
|
|
52
|
-
exports["default"] = _default;
|
|
88
|
+
var _default = _middleware.default;
|
|
89
|
+
exports.default = _default;
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_middleware","_interopRequireDefault","require","_runSaga","_channel","_buffers","_sagaHelpers","_utils","_io","effects","_interopRequireWildcard","exports","utils","_default","middleware","default"],"sources":["../index.js"],"sourcesContent":["import middleware from './internal/middleware'\nexport default middleware\n\nexport { runSaga } from './internal/runSaga'\nexport { END, eventChannel, channel } from './internal/channel'\nexport { buffers } from './internal/buffers'\nexport { takeEvery, takeLatest, throttle } from './internal/sagaHelpers'\nexport { delay, CANCEL } from './internal/utils'\nexport { detach } from './internal/io'\n\nimport * as effects from './effects'\nimport * as utils from './utils'\n\nexport { effects, utils }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,GAAA,GAAAN,OAAA;AAEA,IAAAO,OAAA,GAAAC,uBAAA,CAAAR,OAAA;AAAoCS,OAAA,CAAAF,OAAA,GAAAA,OAAA;AACpC,IAAAG,KAAA,GAAAF,uBAAA,CAAAR,OAAA;AAAgCS,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAAA,IAAAC,QAAA,GAVjBC,mBAAU;AAAAH,OAAA,CAAAI,OAAA,GAAAF,QAAA"}
|
package/lib/internal/buffers.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
4
6
|
exports.buffers = exports.BUFFER_OVERFLOW = void 0;
|
|
5
|
-
|
|
6
|
-
var _utils = /*#__PURE__*/require("./utils");
|
|
7
|
-
|
|
7
|
+
var _utils = require("./utils");
|
|
8
8
|
var BUFFER_OVERFLOW = "Channel's Buffer overflow!";
|
|
9
9
|
exports.BUFFER_OVERFLOW = BUFFER_OVERFLOW;
|
|
10
10
|
var ON_OVERFLOW_THROW = 1;
|
|
@@ -16,24 +16,19 @@ var zeroBuffer = {
|
|
|
16
16
|
put: _utils.noop,
|
|
17
17
|
take: _utils.noop
|
|
18
18
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
limit = 10;
|
|
23
|
-
}
|
|
24
|
-
|
|
19
|
+
function ringBuffer() {
|
|
20
|
+
var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
21
|
+
var overflowAction = arguments.length > 1 ? arguments[1] : undefined;
|
|
25
22
|
var arr = new Array(limit);
|
|
26
23
|
var length = 0;
|
|
27
24
|
var pushIndex = 0;
|
|
28
25
|
var popIndex = 0;
|
|
29
|
-
|
|
30
|
-
var push = function push(it) {
|
|
26
|
+
var push = it => {
|
|
31
27
|
arr[pushIndex] = it;
|
|
32
28
|
pushIndex = (pushIndex + 1) % limit;
|
|
33
29
|
length++;
|
|
34
30
|
};
|
|
35
|
-
|
|
36
|
-
var take = function take() {
|
|
31
|
+
var take = () => {
|
|
37
32
|
if (length != 0) {
|
|
38
33
|
var it = arr[popIndex];
|
|
39
34
|
arr[popIndex] = null;
|
|
@@ -42,37 +37,28 @@ function ringBuffer(limit, overflowAction) {
|
|
|
42
37
|
return it;
|
|
43
38
|
}
|
|
44
39
|
};
|
|
45
|
-
|
|
46
|
-
var flush = function flush() {
|
|
40
|
+
var flush = () => {
|
|
47
41
|
var items = [];
|
|
48
|
-
|
|
49
42
|
while (length) {
|
|
50
43
|
items.push(take());
|
|
51
44
|
}
|
|
52
|
-
|
|
53
45
|
return items;
|
|
54
46
|
};
|
|
55
|
-
|
|
56
47
|
return {
|
|
57
|
-
isEmpty:
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
put: function put(it) {
|
|
48
|
+
isEmpty: () => length == 0,
|
|
49
|
+
put: it => {
|
|
61
50
|
if (length < limit) {
|
|
62
51
|
push(it);
|
|
63
52
|
} else {
|
|
64
53
|
var doubledLimit;
|
|
65
|
-
|
|
66
54
|
switch (overflowAction) {
|
|
67
55
|
case ON_OVERFLOW_THROW:
|
|
68
56
|
throw new Error(BUFFER_OVERFLOW);
|
|
69
|
-
|
|
70
57
|
case ON_OVERFLOW_SLIDE:
|
|
71
58
|
arr[pushIndex] = it;
|
|
72
59
|
pushIndex = (pushIndex + 1) % limit;
|
|
73
60
|
popIndex = pushIndex;
|
|
74
61
|
break;
|
|
75
|
-
|
|
76
62
|
case ON_OVERFLOW_EXPAND:
|
|
77
63
|
doubledLimit = 2 * limit;
|
|
78
64
|
arr = flush();
|
|
@@ -83,32 +69,22 @@ function ringBuffer(limit, overflowAction) {
|
|
|
83
69
|
limit = doubledLimit;
|
|
84
70
|
push(it);
|
|
85
71
|
break;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
72
|
+
default:
|
|
73
|
+
// DROP
|
|
89
74
|
}
|
|
90
75
|
}
|
|
91
76
|
},
|
|
92
|
-
|
|
93
|
-
|
|
77
|
+
|
|
78
|
+
take,
|
|
79
|
+
flush
|
|
94
80
|
};
|
|
95
81
|
}
|
|
96
|
-
|
|
97
82
|
var buffers = {
|
|
98
|
-
none:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
dropping: function dropping(limit) {
|
|
105
|
-
return ringBuffer(limit, ON_OVERFLOW_DROP);
|
|
106
|
-
},
|
|
107
|
-
sliding: function sliding(limit) {
|
|
108
|
-
return ringBuffer(limit, ON_OVERFLOW_SLIDE);
|
|
109
|
-
},
|
|
110
|
-
expanding: function expanding(initialSize) {
|
|
111
|
-
return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);
|
|
112
|
-
}
|
|
83
|
+
none: () => zeroBuffer,
|
|
84
|
+
fixed: limit => ringBuffer(limit, ON_OVERFLOW_THROW),
|
|
85
|
+
dropping: limit => ringBuffer(limit, ON_OVERFLOW_DROP),
|
|
86
|
+
sliding: limit => ringBuffer(limit, ON_OVERFLOW_SLIDE),
|
|
87
|
+
expanding: initialSize => ringBuffer(initialSize, ON_OVERFLOW_EXPAND)
|
|
113
88
|
};
|
|
114
|
-
exports.buffers = buffers;
|
|
89
|
+
exports.buffers = buffers;
|
|
90
|
+
//# sourceMappingURL=buffers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffers.js","names":["_utils","require","BUFFER_OVERFLOW","exports","ON_OVERFLOW_THROW","ON_OVERFLOW_DROP","ON_OVERFLOW_SLIDE","ON_OVERFLOW_EXPAND","zeroBuffer","isEmpty","kTrue","put","noop","take","ringBuffer","limit","arguments","length","undefined","overflowAction","arr","Array","pushIndex","popIndex","push","it","flush","items","doubledLimit","Error","buffers","none","fixed","dropping","sliding","expanding","initialSize"],"sources":["../../buffers.js"],"sourcesContent":["import { kTrue, noop } from './utils'\n\nexport const BUFFER_OVERFLOW = \"Channel's Buffer overflow!\"\n\nconst ON_OVERFLOW_THROW = 1\nconst ON_OVERFLOW_DROP = 2\nconst ON_OVERFLOW_SLIDE = 3\nconst ON_OVERFLOW_EXPAND = 4\n\nconst zeroBuffer = { isEmpty: kTrue, put: noop, take: noop }\n\nfunction ringBuffer(limit = 10, overflowAction) {\n let arr = new Array(limit)\n let length = 0\n let pushIndex = 0\n let popIndex = 0\n\n const push = it => {\n arr[pushIndex] = it\n pushIndex = (pushIndex + 1) % limit\n length++\n }\n\n const take = () => {\n if (length != 0) {\n let it = arr[popIndex]\n arr[popIndex] = null\n length--\n popIndex = (popIndex + 1) % limit\n return it\n }\n }\n\n const flush = () => {\n let items = []\n while (length) {\n items.push(take())\n }\n return items\n }\n\n return {\n isEmpty: () => length == 0,\n put: it => {\n if (length < limit) {\n push(it)\n } else {\n let doubledLimit\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW)\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it\n pushIndex = (pushIndex + 1) % limit\n popIndex = pushIndex\n break\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit\n\n arr = flush()\n\n length = arr.length\n pushIndex = arr.length\n popIndex = 0\n\n arr.length = doubledLimit\n limit = doubledLimit\n\n push(it)\n break\n default:\n // DROP\n }\n }\n },\n take,\n flush,\n }\n}\n\nexport const buffers = {\n none: () => zeroBuffer,\n fixed: limit => ringBuffer(limit, ON_OVERFLOW_THROW),\n dropping: limit => ringBuffer(limit, ON_OVERFLOW_DROP),\n sliding: limit => ringBuffer(limit, ON_OVERFLOW_SLIDE),\n expanding: initialSize => ringBuffer(initialSize, ON_OVERFLOW_EXPAND),\n}\n"],"mappings":"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"}
|
package/lib/internal/channel.js
CHANGED
|
@@ -1,175 +1,133 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
exports
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.UNDEFINED_INPUT_ERROR = exports.INVALID_BUFFER = exports.END = void 0;
|
|
5
8
|
exports.channel = channel;
|
|
9
|
+
exports.emitter = emitter;
|
|
6
10
|
exports.eventChannel = eventChannel;
|
|
11
|
+
exports.isEnd = void 0;
|
|
7
12
|
exports.stdChannel = stdChannel;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _buffers = /*#__PURE__*/require("./buffers");
|
|
13
|
-
|
|
14
|
-
var _scheduler = /*#__PURE__*/require("./scheduler");
|
|
15
|
-
|
|
16
|
-
function _extends() { _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; }; return _extends.apply(this, arguments); }
|
|
17
|
-
|
|
13
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
14
|
+
var _utils = require("./utils");
|
|
15
|
+
var _buffers = require("./buffers");
|
|
16
|
+
var _scheduler = require("./scheduler");
|
|
18
17
|
var CHANNEL_END_TYPE = '@@redux-saga/CHANNEL_END';
|
|
19
18
|
var END = {
|
|
20
19
|
type: CHANNEL_END_TYPE
|
|
21
20
|
};
|
|
22
21
|
exports.END = END;
|
|
23
|
-
|
|
24
|
-
var isEnd = function isEnd(a) {
|
|
25
|
-
return a && a.type === CHANNEL_END_TYPE;
|
|
26
|
-
};
|
|
27
|
-
|
|
22
|
+
var isEnd = a => a && a.type === CHANNEL_END_TYPE;
|
|
28
23
|
exports.isEnd = isEnd;
|
|
29
|
-
|
|
30
24
|
function emitter() {
|
|
31
25
|
var subscribers = [];
|
|
32
|
-
|
|
33
26
|
function subscribe(sub) {
|
|
34
27
|
subscribers.push(sub);
|
|
35
|
-
return
|
|
36
|
-
return (0, _utils.remove)(subscribers, sub);
|
|
37
|
-
};
|
|
28
|
+
return () => (0, _utils.remove)(subscribers, sub);
|
|
38
29
|
}
|
|
39
|
-
|
|
40
30
|
function emit(item) {
|
|
41
31
|
var arr = subscribers.slice();
|
|
42
|
-
|
|
43
32
|
for (var i = 0, len = arr.length; i < len; i++) {
|
|
44
33
|
arr[i](item);
|
|
45
34
|
}
|
|
46
35
|
}
|
|
47
|
-
|
|
48
36
|
return {
|
|
49
|
-
subscribe
|
|
50
|
-
emit
|
|
37
|
+
subscribe,
|
|
38
|
+
emit
|
|
51
39
|
};
|
|
52
40
|
}
|
|
53
|
-
|
|
54
41
|
var INVALID_BUFFER = 'invalid buffer passed to channel factory function';
|
|
55
42
|
exports.INVALID_BUFFER = INVALID_BUFFER;
|
|
56
43
|
var UNDEFINED_INPUT_ERROR = 'Saga was provided with an undefined action';
|
|
57
44
|
exports.UNDEFINED_INPUT_ERROR = UNDEFINED_INPUT_ERROR;
|
|
58
|
-
|
|
59
45
|
if (process.env.NODE_ENV !== 'production') {
|
|
60
|
-
exports.UNDEFINED_INPUT_ERROR = UNDEFINED_INPUT_ERROR = UNDEFINED_INPUT_ERROR +
|
|
46
|
+
exports.UNDEFINED_INPUT_ERROR = UNDEFINED_INPUT_ERROR = UNDEFINED_INPUT_ERROR + `\nHints:
|
|
47
|
+
- check that your Action Creator returns a non-undefined value
|
|
48
|
+
- if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners
|
|
49
|
+
`;
|
|
61
50
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (buffer === void 0) {
|
|
65
|
-
buffer = _buffers.buffers.fixed();
|
|
66
|
-
}
|
|
67
|
-
|
|
51
|
+
function channel() {
|
|
52
|
+
var buffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _buffers.buffers.fixed();
|
|
68
53
|
var closed = false;
|
|
69
54
|
var takers = [];
|
|
70
55
|
(0, _utils.check)(buffer, _utils.is.buffer, INVALID_BUFFER);
|
|
71
|
-
|
|
72
56
|
function checkForbiddenStates() {
|
|
73
57
|
if (closed && takers.length) {
|
|
74
58
|
throw (0, _utils.internalErr)('Cannot have a closed channel with pending takers');
|
|
75
59
|
}
|
|
76
|
-
|
|
77
60
|
if (takers.length && !buffer.isEmpty()) {
|
|
78
61
|
throw (0, _utils.internalErr)('Cannot have pending takers with non empty buffer');
|
|
79
62
|
}
|
|
80
63
|
}
|
|
81
|
-
|
|
82
64
|
function put(input) {
|
|
83
65
|
checkForbiddenStates();
|
|
84
66
|
(0, _utils.check)(input, _utils.is.notUndef, UNDEFINED_INPUT_ERROR);
|
|
85
|
-
|
|
86
67
|
if (closed) {
|
|
87
68
|
return;
|
|
88
69
|
}
|
|
89
|
-
|
|
90
70
|
if (!takers.length) {
|
|
91
71
|
return buffer.put(input);
|
|
92
72
|
}
|
|
93
|
-
|
|
94
73
|
for (var i = 0; i < takers.length; i++) {
|
|
95
74
|
var cb = takers[i];
|
|
96
|
-
|
|
97
75
|
if (!cb[_utils.MATCH] || cb[_utils.MATCH](input)) {
|
|
98
76
|
takers.splice(i, 1);
|
|
99
77
|
return cb(input);
|
|
100
78
|
}
|
|
101
79
|
}
|
|
102
80
|
}
|
|
103
|
-
|
|
104
81
|
function take(cb) {
|
|
105
82
|
checkForbiddenStates();
|
|
106
83
|
(0, _utils.check)(cb, _utils.is.func, "channel.take's callback must be a function");
|
|
107
|
-
|
|
108
84
|
if (closed && buffer.isEmpty()) {
|
|
109
85
|
cb(END);
|
|
110
86
|
} else if (!buffer.isEmpty()) {
|
|
111
87
|
cb(buffer.take());
|
|
112
88
|
} else {
|
|
113
89
|
takers.push(cb);
|
|
114
|
-
|
|
115
|
-
cb.cancel = function () {
|
|
116
|
-
return (0, _utils.remove)(takers, cb);
|
|
117
|
-
};
|
|
90
|
+
cb.cancel = () => (0, _utils.remove)(takers, cb);
|
|
118
91
|
}
|
|
119
92
|
}
|
|
120
|
-
|
|
121
93
|
function flush(cb) {
|
|
122
94
|
checkForbiddenStates(); // TODO: check if some new state should be forbidden now
|
|
123
|
-
|
|
124
95
|
(0, _utils.check)(cb, _utils.is.func, "channel.flush' callback must be a function");
|
|
125
|
-
|
|
126
96
|
if (closed && buffer.isEmpty()) {
|
|
127
97
|
cb(END);
|
|
128
98
|
return;
|
|
129
99
|
}
|
|
130
|
-
|
|
131
100
|
cb(buffer.flush());
|
|
132
101
|
}
|
|
133
|
-
|
|
134
102
|
function close() {
|
|
135
103
|
checkForbiddenStates();
|
|
136
|
-
|
|
137
104
|
if (!closed) {
|
|
138
105
|
closed = true;
|
|
139
|
-
|
|
140
106
|
if (takers.length) {
|
|
141
107
|
var arr = takers;
|
|
142
108
|
takers = [];
|
|
143
|
-
|
|
144
109
|
for (var i = 0, len = arr.length; i < len; i++) {
|
|
145
110
|
arr[i](END);
|
|
146
111
|
}
|
|
147
112
|
}
|
|
148
113
|
}
|
|
149
114
|
}
|
|
150
|
-
|
|
151
115
|
return {
|
|
152
|
-
take
|
|
153
|
-
put
|
|
154
|
-
flush
|
|
155
|
-
close
|
|
156
|
-
|
|
116
|
+
take,
|
|
117
|
+
put,
|
|
118
|
+
flush,
|
|
119
|
+
close,
|
|
157
120
|
get __takers__() {
|
|
158
121
|
return takers;
|
|
159
122
|
},
|
|
160
|
-
|
|
161
123
|
get __closed__() {
|
|
162
124
|
return closed;
|
|
163
125
|
}
|
|
164
|
-
|
|
165
126
|
};
|
|
166
127
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
buffer = _buffers.buffers.none();
|
|
171
|
-
}
|
|
172
|
-
|
|
128
|
+
function eventChannel(subscribe) {
|
|
129
|
+
var buffer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _buffers.buffers.none();
|
|
130
|
+
var matcher = arguments.length > 2 ? arguments[2] : undefined;
|
|
173
131
|
/**
|
|
174
132
|
should be if(typeof matcher !== undefined) instead?
|
|
175
133
|
see PR #273 for a background discussion
|
|
@@ -177,68 +135,53 @@ function eventChannel(subscribe, buffer, matcher) {
|
|
|
177
135
|
if (arguments.length > 2) {
|
|
178
136
|
(0, _utils.check)(matcher, _utils.is.func, 'Invalid match function passed to eventChannel');
|
|
179
137
|
}
|
|
180
|
-
|
|
181
138
|
var chan = channel(buffer);
|
|
182
|
-
|
|
183
|
-
var close = function close() {
|
|
139
|
+
var close = () => {
|
|
184
140
|
if (!chan.__closed__) {
|
|
185
141
|
if (unsubscribe) {
|
|
186
142
|
unsubscribe();
|
|
187
143
|
}
|
|
188
|
-
|
|
189
144
|
chan.close();
|
|
190
145
|
}
|
|
191
146
|
};
|
|
192
|
-
|
|
193
|
-
var unsubscribe = subscribe(function (input) {
|
|
147
|
+
var unsubscribe = subscribe(input => {
|
|
194
148
|
if (isEnd(input)) {
|
|
195
149
|
close();
|
|
196
150
|
return;
|
|
197
151
|
}
|
|
198
|
-
|
|
199
152
|
if (matcher && !matcher(input)) {
|
|
200
153
|
return;
|
|
201
154
|
}
|
|
202
|
-
|
|
203
155
|
chan.put(input);
|
|
204
156
|
});
|
|
205
|
-
|
|
206
157
|
if (chan.__closed__) {
|
|
207
158
|
unsubscribe();
|
|
208
159
|
}
|
|
209
|
-
|
|
210
160
|
if (!_utils.is.func(unsubscribe)) {
|
|
211
161
|
throw new Error('in eventChannel: subscribe should return a function to unsubscribe');
|
|
212
162
|
}
|
|
213
|
-
|
|
214
163
|
return {
|
|
215
164
|
take: chan.take,
|
|
216
165
|
flush: chan.flush,
|
|
217
|
-
close
|
|
166
|
+
close
|
|
218
167
|
};
|
|
219
168
|
}
|
|
220
|
-
|
|
221
169
|
function stdChannel(subscribe) {
|
|
222
|
-
var chan = eventChannel(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
return _extends({}, chan, {
|
|
235
|
-
take: function take(cb, matcher) {
|
|
170
|
+
var chan = eventChannel(cb => subscribe(input => {
|
|
171
|
+
if (input[_utils.SAGA_ACTION]) {
|
|
172
|
+
cb(input);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
(0, _scheduler.asap)(() => cb(input));
|
|
176
|
+
}));
|
|
177
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, chan), {}, {
|
|
178
|
+
take(cb, matcher) {
|
|
236
179
|
if (arguments.length > 1) {
|
|
237
180
|
(0, _utils.check)(matcher, _utils.is.func, "channel.take's matcher argument must be a function");
|
|
238
181
|
cb[_utils.MATCH] = matcher;
|
|
239
182
|
}
|
|
240
|
-
|
|
241
183
|
chan.take(cb);
|
|
242
184
|
}
|
|
243
185
|
});
|
|
244
|
-
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","names":["_utils","require","_buffers","_scheduler","CHANNEL_END_TYPE","END","type","exports","isEnd","a","emitter","subscribers","subscribe","sub","push","remove","emit","item","arr","slice","i","len","length","INVALID_BUFFER","UNDEFINED_INPUT_ERROR","process","env","NODE_ENV","channel","buffer","arguments","undefined","buffers","fixed","closed","takers","check","is","checkForbiddenStates","internalErr","isEmpty","put","input","notUndef","cb","MATCH","splice","take","func","cancel","flush","close","__takers__","__closed__","eventChannel","none","matcher","chan","unsubscribe","Error","stdChannel","SAGA_ACTION","asap","_objectSpread2","default"],"sources":["../../channel.js"],"sourcesContent":["import { is, check, remove, MATCH, internalErr, SAGA_ACTION } from './utils'\nimport { buffers } from './buffers'\nimport { asap } from './scheduler'\n\nconst CHANNEL_END_TYPE = '@@redux-saga/CHANNEL_END'\nexport const END = { type: CHANNEL_END_TYPE }\nexport const isEnd = a => a && a.type === CHANNEL_END_TYPE\n\nexport function emitter() {\n const subscribers = []\n\n function subscribe(sub) {\n subscribers.push(sub)\n return () => remove(subscribers, sub)\n }\n\n function emit(item) {\n const arr = subscribers.slice()\n for (var i = 0, len = arr.length; i < len; i++) {\n arr[i](item)\n }\n }\n\n return {\n subscribe,\n emit,\n }\n}\n\nexport const INVALID_BUFFER = 'invalid buffer passed to channel factory function'\nexport var UNDEFINED_INPUT_ERROR = 'Saga was provided with an undefined action'\n\nif (process.env.NODE_ENV !== 'production') {\n UNDEFINED_INPUT_ERROR += `\\nHints:\n - check that your Action Creator returns a non-undefined value\n - if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners\n `\n}\n\nexport function channel(buffer = buffers.fixed()) {\n let closed = false\n let takers = []\n\n check(buffer, is.buffer, INVALID_BUFFER)\n\n function checkForbiddenStates() {\n if (closed && takers.length) {\n throw internalErr('Cannot have a closed channel with pending takers')\n }\n if (takers.length && !buffer.isEmpty()) {\n throw internalErr('Cannot have pending takers with non empty buffer')\n }\n }\n\n function put(input) {\n checkForbiddenStates()\n check(input, is.notUndef, UNDEFINED_INPUT_ERROR)\n if (closed) {\n return\n }\n if (!takers.length) {\n return buffer.put(input)\n }\n for (var i = 0; i < takers.length; i++) {\n const cb = takers[i]\n if (!cb[MATCH] || cb[MATCH](input)) {\n takers.splice(i, 1)\n return cb(input)\n }\n }\n }\n\n function take(cb) {\n checkForbiddenStates()\n check(cb, is.func, \"channel.take's callback must be a function\")\n\n if (closed && buffer.isEmpty()) {\n cb(END)\n } else if (!buffer.isEmpty()) {\n cb(buffer.take())\n } else {\n takers.push(cb)\n cb.cancel = () => remove(takers, cb)\n }\n }\n\n function flush(cb) {\n checkForbiddenStates() // TODO: check if some new state should be forbidden now\n check(cb, is.func, \"channel.flush' callback must be a function\")\n if (closed && buffer.isEmpty()) {\n cb(END)\n return\n }\n cb(buffer.flush())\n }\n\n function close() {\n checkForbiddenStates()\n if (!closed) {\n closed = true\n if (takers.length) {\n const arr = takers\n takers = []\n for (let i = 0, len = arr.length; i < len; i++) {\n arr[i](END)\n }\n }\n }\n }\n\n return {\n take,\n put,\n flush,\n close,\n get __takers__() {\n return takers\n },\n get __closed__() {\n return closed\n },\n }\n}\n\nexport function eventChannel(subscribe, buffer = buffers.none(), matcher) {\n /**\n should be if(typeof matcher !== undefined) instead?\n see PR #273 for a background discussion\n **/\n if (arguments.length > 2) {\n check(matcher, is.func, 'Invalid match function passed to eventChannel')\n }\n\n const chan = channel(buffer)\n const close = () => {\n if (!chan.__closed__) {\n if (unsubscribe) {\n unsubscribe()\n }\n chan.close()\n }\n }\n const unsubscribe = subscribe(input => {\n if (isEnd(input)) {\n close()\n return\n }\n if (matcher && !matcher(input)) {\n return\n }\n chan.put(input)\n })\n if (chan.__closed__) {\n unsubscribe()\n }\n\n if (!is.func(unsubscribe)) {\n throw new Error('in eventChannel: subscribe should return a function to unsubscribe')\n }\n\n return {\n take: chan.take,\n flush: chan.flush,\n close,\n }\n}\n\nexport function stdChannel(subscribe) {\n const chan = eventChannel(cb =>\n subscribe(input => {\n if (input[SAGA_ACTION]) {\n cb(input)\n return\n }\n asap(() => cb(input))\n }))\n\n return {\n ...chan,\n take(cb, matcher) {\n if (arguments.length > 1) {\n check(matcher, is.func, \"channel.take's matcher argument must be a function\")\n cb[MATCH] = matcher\n }\n chan.take(cb)\n },\n }\n}\n"],"mappings":"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"}
|
|
Binary file
|
|
@@ -1,40 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
exports
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = completeIOType;
|
|
7
|
+
var _io = require("./io");
|
|
8
8
|
var editInSaga = '@@INNER/SAGA_EDIT';
|
|
9
|
-
|
|
10
9
|
function isPromise(obj) {
|
|
11
10
|
return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
function completeIOType(io) {
|
|
15
13
|
if (typeof io === 'function') {
|
|
16
14
|
return (0, _io.putMutation)(io);
|
|
17
15
|
}
|
|
18
|
-
|
|
19
16
|
if (io === '') {
|
|
20
17
|
return (0, _io.selectSelf)();
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
if (typeof io === 'string') {
|
|
24
|
-
return (0, _io.select)(
|
|
25
|
-
return state[io];
|
|
26
|
-
});
|
|
20
|
+
return (0, _io.select)(state => state[io]);
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return typeof x === 'string';
|
|
31
|
-
})) {
|
|
32
|
-
return (0, _io.select)(function (state) {
|
|
33
|
-
return [io].map(function (x) {
|
|
34
|
-
return state[x];
|
|
35
|
-
});
|
|
36
|
-
});
|
|
22
|
+
if (Array.isArray(io) && io.every(x => typeof x === 'string')) {
|
|
23
|
+
return (0, _io.select)(state => [io].map(x => state[x]));
|
|
37
24
|
}
|
|
38
|
-
|
|
39
25
|
return io;
|
|
40
|
-
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=convenient-io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convenient-io.js","names":["_io","require","editInSaga","isPromise","obj","then","completeIOType","io","putMutation","selectSelf","select","state","Array","isArray","every","x","map"],"sources":["../../convenient-io.js"],"sourcesContent":["import {\n select,\n put, putMutation, selectSelf, putAsyncAction,\n} from './io';\n\nconst editInSaga = '@@INNER/SAGA_EDIT';\n\nfunction isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n\nexport default function completeIOType(io) {\n if (typeof io === 'function') {\n return putMutation(io);\n }\n if (io === '') {\n return selectSelf();\n }\n if (typeof io === 'string') {\n return select(state => state[io]);\n }\n if (Array.isArray(io) && io.every(x => typeof x === 'string')) {\n return select(state => [io].map(x => state[x]));\n }\n return io;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAKA,IAAMC,UAAU,GAAG,mBAAmB;AAEtC,SAASC,SAASA,CAACC,GAAG,EAAE;EACtB,OAAO,CAAC,CAACA,GAAG,KAAK,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,UAAU,CAAC,IAAI,OAAOA,GAAG,CAACC,IAAI,KAAK,UAAU;AAC1G;AAEe,SAASC,cAAcA,CAACC,EAAE,EAAE;EACzC,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;IAC5B,OAAO,IAAAC,eAAW,EAACD,EAAE,CAAC;EACxB;EACA,IAAIA,EAAE,KAAK,EAAE,EAAE;IACb,OAAO,IAAAE,cAAU,GAAE;EACrB;EACA,IAAI,OAAOF,EAAE,KAAK,QAAQ,EAAE;IAC1B,OAAO,IAAAG,UAAM,EAACC,KAAK,IAAIA,KAAK,CAACJ,EAAE,CAAC,CAAC;EACnC;EACA,IAAIK,KAAK,CAACC,OAAO,CAACN,EAAE,CAAC,IAAIA,EAAE,CAACO,KAAK,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC,EAAE;IAC7D,OAAO,IAAAL,UAAM,EAACC,KAAK,IAAI,CAACJ,EAAE,CAAC,CAACS,GAAG,CAACD,CAAC,IAAIJ,KAAK,CAACI,CAAC,CAAC,CAAC,CAAC;EACjD;EACA,OAAOR,EAAE;AACX"}
|