@vve/redux-saga 9.0.0-alpha.2 → 9.0.0-alpha.4
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 +5 -4
package/es/effects.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { take, takem, put, putAsyncAction, all, race, call, apply, cps, fork, spawn, join, cancel, select, actionChannel, cancelled, flush, getContext, setContext } from
|
|
2
|
-
export { takeEvery, takeLatest, throttle } from
|
|
1
|
+
export { take, takem, put, putAsyncAction, all, race, call, apply, cps, fork, spawn, join, cancel, select, actionChannel, cancelled, flush, getContext, setContext } from "./internal/io";
|
|
2
|
+
export { takeEvery, takeLatest, throttle } from "./internal/io-helpers";
|
|
3
|
+
//# sourceMappingURL=effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","names":["take","takem","put","putAsyncAction","all","race","call","apply","cps","fork","spawn","join","cancel","select","actionChannel","cancelled","flush","getContext","setContext","takeEvery","takeLatest","throttle"],"sources":["../effects.js"],"sourcesContent":["export {\n take,\n takem,\n put,\n putAsyncAction,\n all,\n race,\n call,\n apply,\n cps,\n fork,\n spawn,\n join,\n cancel,\n select,\n actionChannel,\n cancelled,\n flush,\n getContext,\n setContext,\n} from './internal/io'\n\nexport { takeEvery, takeLatest, throttle } from './internal/io-helpers'\n"],"mappings":"AAAA,SACEA,IAAI,EACJC,KAAK,EACLC,GAAG,EACHC,cAAc,EACdC,GAAG,EACHC,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,GAAG,EACHC,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,aAAa,EACbC,SAAS,EACTC,KAAK,EACLC,UAAU,EACVC,UAAU;AAGZ,SAASC,SAAS,EAAEC,UAAU,EAAEC,QAAQ"}
|
package/es/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import middleware from
|
|
1
|
+
import middleware from "./internal/middleware";
|
|
2
2
|
export default middleware;
|
|
3
|
-
export { runSaga } from
|
|
4
|
-
export { END, eventChannel, channel } from
|
|
5
|
-
export { buffers } from
|
|
6
|
-
export { takeEvery, takeLatest, throttle } from
|
|
7
|
-
export { delay, CANCEL } from
|
|
8
|
-
export { detach } from
|
|
9
|
-
import * as effects from
|
|
10
|
-
import * as utils from
|
|
11
|
-
export { effects, utils };
|
|
3
|
+
export { runSaga } from "./internal/runSaga";
|
|
4
|
+
export { END, eventChannel, channel } from "./internal/channel";
|
|
5
|
+
export { buffers } from "./internal/buffers";
|
|
6
|
+
export { takeEvery, takeLatest, throttle } from "./internal/sagaHelpers";
|
|
7
|
+
export { delay, CANCEL } from "./internal/utils";
|
|
8
|
+
export { detach } from "./internal/io";
|
|
9
|
+
import * as effects from "./effects";
|
|
10
|
+
import * as utils from "./utils";
|
|
11
|
+
export { effects, utils };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
package/es/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["middleware","runSaga","END","eventChannel","channel","buffers","takeEvery","takeLatest","throttle","delay","CANCEL","detach","effects","utils"],"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,OAAOA,UAAU;AACjB,eAAeA,UAAU;AAEzB,SAASC,OAAO;AAChB,SAASC,GAAG,EAAEC,YAAY,EAAEC,OAAO;AACnC,SAASC,OAAO;AAChB,SAASC,SAAS,EAAEC,UAAU,EAAEC,QAAQ;AACxC,SAASC,KAAK,EAAEC,MAAM;AACtB,SAASC,MAAM;AAEf,OAAO,KAAKC,OAAO;AACnB,OAAO,KAAKC,KAAK;AAEjB,SAASD,OAAO,EAAEC,KAAK"}
|
package/es/internal/buffers.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { kTrue, noop } from
|
|
1
|
+
import { kTrue, noop } from "./utils";
|
|
2
2
|
export var BUFFER_OVERFLOW = "Channel's Buffer overflow!";
|
|
3
3
|
var ON_OVERFLOW_THROW = 1;
|
|
4
4
|
var ON_OVERFLOW_DROP = 2;
|
|
@@ -9,24 +9,19 @@ var zeroBuffer = {
|
|
|
9
9
|
put: noop,
|
|
10
10
|
take: noop
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
limit = 10;
|
|
16
|
-
}
|
|
17
|
-
|
|
12
|
+
function ringBuffer() {
|
|
13
|
+
var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
14
|
+
var overflowAction = arguments.length > 1 ? arguments[1] : undefined;
|
|
18
15
|
var arr = new Array(limit);
|
|
19
16
|
var length = 0;
|
|
20
17
|
var pushIndex = 0;
|
|
21
18
|
var popIndex = 0;
|
|
22
|
-
|
|
23
|
-
var push = function push(it) {
|
|
19
|
+
var push = it => {
|
|
24
20
|
arr[pushIndex] = it;
|
|
25
21
|
pushIndex = (pushIndex + 1) % limit;
|
|
26
22
|
length++;
|
|
27
23
|
};
|
|
28
|
-
|
|
29
|
-
var take = function take() {
|
|
24
|
+
var take = () => {
|
|
30
25
|
if (length != 0) {
|
|
31
26
|
var it = arr[popIndex];
|
|
32
27
|
arr[popIndex] = null;
|
|
@@ -35,37 +30,28 @@ function ringBuffer(limit, overflowAction) {
|
|
|
35
30
|
return it;
|
|
36
31
|
}
|
|
37
32
|
};
|
|
38
|
-
|
|
39
|
-
var flush = function flush() {
|
|
33
|
+
var flush = () => {
|
|
40
34
|
var items = [];
|
|
41
|
-
|
|
42
35
|
while (length) {
|
|
43
36
|
items.push(take());
|
|
44
37
|
}
|
|
45
|
-
|
|
46
38
|
return items;
|
|
47
39
|
};
|
|
48
|
-
|
|
49
40
|
return {
|
|
50
|
-
isEmpty:
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
put: function put(it) {
|
|
41
|
+
isEmpty: () => length == 0,
|
|
42
|
+
put: it => {
|
|
54
43
|
if (length < limit) {
|
|
55
44
|
push(it);
|
|
56
45
|
} else {
|
|
57
46
|
var doubledLimit;
|
|
58
|
-
|
|
59
47
|
switch (overflowAction) {
|
|
60
48
|
case ON_OVERFLOW_THROW:
|
|
61
49
|
throw new Error(BUFFER_OVERFLOW);
|
|
62
|
-
|
|
63
50
|
case ON_OVERFLOW_SLIDE:
|
|
64
51
|
arr[pushIndex] = it;
|
|
65
52
|
pushIndex = (pushIndex + 1) % limit;
|
|
66
53
|
popIndex = pushIndex;
|
|
67
54
|
break;
|
|
68
|
-
|
|
69
55
|
case ON_OVERFLOW_EXPAND:
|
|
70
56
|
doubledLimit = 2 * limit;
|
|
71
57
|
arr = flush();
|
|
@@ -76,31 +62,21 @@ function ringBuffer(limit, overflowAction) {
|
|
|
76
62
|
limit = doubledLimit;
|
|
77
63
|
push(it);
|
|
78
64
|
break;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
65
|
+
default:
|
|
66
|
+
// DROP
|
|
82
67
|
}
|
|
83
68
|
}
|
|
84
69
|
},
|
|
85
|
-
|
|
86
|
-
|
|
70
|
+
|
|
71
|
+
take,
|
|
72
|
+
flush
|
|
87
73
|
};
|
|
88
74
|
}
|
|
89
|
-
|
|
90
75
|
export var buffers = {
|
|
91
|
-
none:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return ringBuffer(limit, ON_OVERFLOW_DROP);
|
|
99
|
-
},
|
|
100
|
-
sliding: function sliding(limit) {
|
|
101
|
-
return ringBuffer(limit, ON_OVERFLOW_SLIDE);
|
|
102
|
-
},
|
|
103
|
-
expanding: function expanding(initialSize) {
|
|
104
|
-
return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);
|
|
105
|
-
}
|
|
106
|
-
};
|
|
76
|
+
none: () => zeroBuffer,
|
|
77
|
+
fixed: limit => ringBuffer(limit, ON_OVERFLOW_THROW),
|
|
78
|
+
dropping: limit => ringBuffer(limit, ON_OVERFLOW_DROP),
|
|
79
|
+
sliding: limit => ringBuffer(limit, ON_OVERFLOW_SLIDE),
|
|
80
|
+
expanding: initialSize => ringBuffer(initialSize, ON_OVERFLOW_EXPAND)
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=buffers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffers.js","names":["kTrue","noop","BUFFER_OVERFLOW","ON_OVERFLOW_THROW","ON_OVERFLOW_DROP","ON_OVERFLOW_SLIDE","ON_OVERFLOW_EXPAND","zeroBuffer","isEmpty","put","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/es/internal/channel.js
CHANGED
|
@@ -1,154 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { asap } from './scheduler';
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
import { is, check, remove, MATCH, internalErr, SAGA_ACTION } from "./utils";
|
|
3
|
+
import { buffers } from "./buffers";
|
|
4
|
+
import { asap } from "./scheduler";
|
|
6
5
|
var CHANNEL_END_TYPE = '@@redux-saga/CHANNEL_END';
|
|
7
6
|
export var END = {
|
|
8
7
|
type: CHANNEL_END_TYPE
|
|
9
8
|
};
|
|
10
|
-
export var isEnd =
|
|
11
|
-
return a && a.type === CHANNEL_END_TYPE;
|
|
12
|
-
};
|
|
9
|
+
export var isEnd = a => a && a.type === CHANNEL_END_TYPE;
|
|
13
10
|
export function emitter() {
|
|
14
11
|
var subscribers = [];
|
|
15
|
-
|
|
16
12
|
function subscribe(sub) {
|
|
17
13
|
subscribers.push(sub);
|
|
18
|
-
return
|
|
19
|
-
return remove(subscribers, sub);
|
|
20
|
-
};
|
|
14
|
+
return () => remove(subscribers, sub);
|
|
21
15
|
}
|
|
22
|
-
|
|
23
16
|
function emit(item) {
|
|
24
17
|
var arr = subscribers.slice();
|
|
25
|
-
|
|
26
18
|
for (var i = 0, len = arr.length; i < len; i++) {
|
|
27
19
|
arr[i](item);
|
|
28
20
|
}
|
|
29
21
|
}
|
|
30
|
-
|
|
31
22
|
return {
|
|
32
|
-
subscribe
|
|
33
|
-
emit
|
|
23
|
+
subscribe,
|
|
24
|
+
emit
|
|
34
25
|
};
|
|
35
26
|
}
|
|
36
27
|
export var INVALID_BUFFER = 'invalid buffer passed to channel factory function';
|
|
37
28
|
export var UNDEFINED_INPUT_ERROR = 'Saga was provided with an undefined action';
|
|
38
|
-
|
|
39
29
|
if (process.env.NODE_ENV !== 'production') {
|
|
40
|
-
UNDEFINED_INPUT_ERROR +=
|
|
30
|
+
UNDEFINED_INPUT_ERROR += `\nHints:
|
|
31
|
+
- check that your Action Creator returns a non-undefined value
|
|
32
|
+
- if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners
|
|
33
|
+
`;
|
|
41
34
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (buffer === void 0) {
|
|
45
|
-
buffer = buffers.fixed();
|
|
46
|
-
}
|
|
47
|
-
|
|
35
|
+
export function channel() {
|
|
36
|
+
var buffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : buffers.fixed();
|
|
48
37
|
var closed = false;
|
|
49
38
|
var takers = [];
|
|
50
39
|
check(buffer, is.buffer, INVALID_BUFFER);
|
|
51
|
-
|
|
52
40
|
function checkForbiddenStates() {
|
|
53
41
|
if (closed && takers.length) {
|
|
54
42
|
throw internalErr('Cannot have a closed channel with pending takers');
|
|
55
43
|
}
|
|
56
|
-
|
|
57
44
|
if (takers.length && !buffer.isEmpty()) {
|
|
58
45
|
throw internalErr('Cannot have pending takers with non empty buffer');
|
|
59
46
|
}
|
|
60
47
|
}
|
|
61
|
-
|
|
62
48
|
function put(input) {
|
|
63
49
|
checkForbiddenStates();
|
|
64
50
|
check(input, is.notUndef, UNDEFINED_INPUT_ERROR);
|
|
65
|
-
|
|
66
51
|
if (closed) {
|
|
67
52
|
return;
|
|
68
53
|
}
|
|
69
|
-
|
|
70
54
|
if (!takers.length) {
|
|
71
55
|
return buffer.put(input);
|
|
72
56
|
}
|
|
73
|
-
|
|
74
57
|
for (var i = 0; i < takers.length; i++) {
|
|
75
58
|
var cb = takers[i];
|
|
76
|
-
|
|
77
59
|
if (!cb[MATCH] || cb[MATCH](input)) {
|
|
78
60
|
takers.splice(i, 1);
|
|
79
61
|
return cb(input);
|
|
80
62
|
}
|
|
81
63
|
}
|
|
82
64
|
}
|
|
83
|
-
|
|
84
65
|
function take(cb) {
|
|
85
66
|
checkForbiddenStates();
|
|
86
67
|
check(cb, is.func, "channel.take's callback must be a function");
|
|
87
|
-
|
|
88
68
|
if (closed && buffer.isEmpty()) {
|
|
89
69
|
cb(END);
|
|
90
70
|
} else if (!buffer.isEmpty()) {
|
|
91
71
|
cb(buffer.take());
|
|
92
72
|
} else {
|
|
93
73
|
takers.push(cb);
|
|
94
|
-
|
|
95
|
-
cb.cancel = function () {
|
|
96
|
-
return remove(takers, cb);
|
|
97
|
-
};
|
|
74
|
+
cb.cancel = () => remove(takers, cb);
|
|
98
75
|
}
|
|
99
76
|
}
|
|
100
|
-
|
|
101
77
|
function flush(cb) {
|
|
102
78
|
checkForbiddenStates(); // TODO: check if some new state should be forbidden now
|
|
103
|
-
|
|
104
79
|
check(cb, is.func, "channel.flush' callback must be a function");
|
|
105
|
-
|
|
106
80
|
if (closed && buffer.isEmpty()) {
|
|
107
81
|
cb(END);
|
|
108
82
|
return;
|
|
109
83
|
}
|
|
110
|
-
|
|
111
84
|
cb(buffer.flush());
|
|
112
85
|
}
|
|
113
|
-
|
|
114
86
|
function close() {
|
|
115
87
|
checkForbiddenStates();
|
|
116
|
-
|
|
117
88
|
if (!closed) {
|
|
118
89
|
closed = true;
|
|
119
|
-
|
|
120
90
|
if (takers.length) {
|
|
121
91
|
var arr = takers;
|
|
122
92
|
takers = [];
|
|
123
|
-
|
|
124
93
|
for (var i = 0, len = arr.length; i < len; i++) {
|
|
125
94
|
arr[i](END);
|
|
126
95
|
}
|
|
127
96
|
}
|
|
128
97
|
}
|
|
129
98
|
}
|
|
130
|
-
|
|
131
99
|
return {
|
|
132
|
-
take
|
|
133
|
-
put
|
|
134
|
-
flush
|
|
135
|
-
close
|
|
136
|
-
|
|
100
|
+
take,
|
|
101
|
+
put,
|
|
102
|
+
flush,
|
|
103
|
+
close,
|
|
137
104
|
get __takers__() {
|
|
138
105
|
return takers;
|
|
139
106
|
},
|
|
140
|
-
|
|
141
107
|
get __closed__() {
|
|
142
108
|
return closed;
|
|
143
109
|
}
|
|
144
|
-
|
|
145
110
|
};
|
|
146
111
|
}
|
|
147
|
-
export function eventChannel(subscribe
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
|
|
112
|
+
export function eventChannel(subscribe) {
|
|
113
|
+
var buffer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : buffers.none();
|
|
114
|
+
var matcher = arguments.length > 2 ? arguments[2] : undefined;
|
|
152
115
|
/**
|
|
153
116
|
should be if(typeof matcher !== undefined) instead?
|
|
154
117
|
see PR #273 for a background discussion
|
|
@@ -156,67 +119,53 @@ export function eventChannel(subscribe, buffer, matcher) {
|
|
|
156
119
|
if (arguments.length > 2) {
|
|
157
120
|
check(matcher, is.func, 'Invalid match function passed to eventChannel');
|
|
158
121
|
}
|
|
159
|
-
|
|
160
122
|
var chan = channel(buffer);
|
|
161
|
-
|
|
162
|
-
var close = function close() {
|
|
123
|
+
var close = () => {
|
|
163
124
|
if (!chan.__closed__) {
|
|
164
125
|
if (unsubscribe) {
|
|
165
126
|
unsubscribe();
|
|
166
127
|
}
|
|
167
|
-
|
|
168
128
|
chan.close();
|
|
169
129
|
}
|
|
170
130
|
};
|
|
171
|
-
|
|
172
|
-
var unsubscribe = subscribe(function (input) {
|
|
131
|
+
var unsubscribe = subscribe(input => {
|
|
173
132
|
if (isEnd(input)) {
|
|
174
133
|
close();
|
|
175
134
|
return;
|
|
176
135
|
}
|
|
177
|
-
|
|
178
136
|
if (matcher && !matcher(input)) {
|
|
179
137
|
return;
|
|
180
138
|
}
|
|
181
|
-
|
|
182
139
|
chan.put(input);
|
|
183
140
|
});
|
|
184
|
-
|
|
185
141
|
if (chan.__closed__) {
|
|
186
142
|
unsubscribe();
|
|
187
143
|
}
|
|
188
|
-
|
|
189
144
|
if (!is.func(unsubscribe)) {
|
|
190
145
|
throw new Error('in eventChannel: subscribe should return a function to unsubscribe');
|
|
191
146
|
}
|
|
192
|
-
|
|
193
147
|
return {
|
|
194
148
|
take: chan.take,
|
|
195
149
|
flush: chan.flush,
|
|
196
|
-
close
|
|
150
|
+
close
|
|
197
151
|
};
|
|
198
152
|
}
|
|
199
153
|
export function stdChannel(subscribe) {
|
|
200
|
-
var chan = eventChannel(
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
return _extends({}, chan, {
|
|
213
|
-
take: function take(cb, matcher) {
|
|
154
|
+
var chan = eventChannel(cb => subscribe(input => {
|
|
155
|
+
if (input[SAGA_ACTION]) {
|
|
156
|
+
cb(input);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
asap(() => cb(input));
|
|
160
|
+
}));
|
|
161
|
+
return _objectSpread(_objectSpread({}, chan), {}, {
|
|
162
|
+
take(cb, matcher) {
|
|
214
163
|
if (arguments.length > 1) {
|
|
215
164
|
check(matcher, is.func, "channel.take's matcher argument must be a function");
|
|
216
165
|
cb[MATCH] = matcher;
|
|
217
166
|
}
|
|
218
|
-
|
|
219
167
|
chan.take(cb);
|
|
220
168
|
}
|
|
221
169
|
});
|
|
222
|
-
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","names":["is","check","remove","MATCH","internalErr","SAGA_ACTION","buffers","asap","CHANNEL_END_TYPE","END","type","isEnd","a","emitter","subscribers","subscribe","sub","push","emit","item","arr","slice","i","len","length","INVALID_BUFFER","UNDEFINED_INPUT_ERROR","process","env","NODE_ENV","channel","buffer","arguments","undefined","fixed","closed","takers","checkForbiddenStates","isEmpty","put","input","notUndef","cb","splice","take","func","cancel","flush","close","__takers__","__closed__","eventChannel","none","matcher","chan","unsubscribe","Error","stdChannel","_objectSpread"],"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,34 +1,21 @@
|
|
|
1
|
-
import { select, put, putMutation, selectSelf, putAsyncAction } from
|
|
1
|
+
import { select, put, putMutation, selectSelf, putAsyncAction } from "./io";
|
|
2
2
|
var editInSaga = '@@INNER/SAGA_EDIT';
|
|
3
|
-
|
|
4
3
|
function isPromise(obj) {
|
|
5
4
|
return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
|
|
6
5
|
}
|
|
7
|
-
|
|
8
6
|
export default function completeIOType(io) {
|
|
9
7
|
if (typeof io === 'function') {
|
|
10
8
|
return putMutation(io);
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
if (io === '') {
|
|
14
11
|
return selectSelf();
|
|
15
12
|
}
|
|
16
|
-
|
|
17
13
|
if (typeof io === 'string') {
|
|
18
|
-
return select(
|
|
19
|
-
return state[io];
|
|
20
|
-
});
|
|
14
|
+
return select(state => state[io]);
|
|
21
15
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return typeof x === 'string';
|
|
25
|
-
})) {
|
|
26
|
-
return select(function (state) {
|
|
27
|
-
return [io].map(function (x) {
|
|
28
|
-
return state[x];
|
|
29
|
-
});
|
|
30
|
-
});
|
|
16
|
+
if (Array.isArray(io) && io.every(x => typeof x === 'string')) {
|
|
17
|
+
return select(state => [io].map(x => state[x]));
|
|
31
18
|
}
|
|
32
|
-
|
|
33
19
|
return io;
|
|
34
|
-
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=convenient-io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convenient-io.js","names":["select","put","putMutation","selectSelf","putAsyncAction","editInSaga","isPromise","obj","then","completeIOType","io","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,SACEA,MAAM,EACNC,GAAG,EAAEC,WAAW,EAAEC,UAAU,EAAEC,cAAc;AAG9C,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;AAEA,eAAe,SAASC,cAAcA,CAACC,EAAE,EAAE;EACzC,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;IAC5B,OAAOR,WAAW,CAACQ,EAAE,CAAC;EACxB;EACA,IAAIA,EAAE,KAAK,EAAE,EAAE;IACb,OAAOP,UAAU,EAAE;EACrB;EACA,IAAI,OAAOO,EAAE,KAAK,QAAQ,EAAE;IAC1B,OAAOV,MAAM,CAACW,KAAK,IAAIA,KAAK,CAACD,EAAE,CAAC,CAAC;EACnC;EACA,IAAIE,KAAK,CAACC,OAAO,CAACH,EAAE,CAAC,IAAIA,EAAE,CAACI,KAAK,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC,EAAE;IAC7D,OAAOf,MAAM,CAACW,KAAK,IAAI,CAACD,EAAE,CAAC,CAACM,GAAG,CAACD,CAAC,IAAIJ,KAAK,CAACI,CAAC,CAAC,CAAC,CAAC;EACjD;EACA,OAAOL,EAAE;AACX"}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import { fork } from
|
|
2
|
-
import { takeEveryHelper, takeLatestHelper, throttleHelper } from
|
|
1
|
+
import { fork } from "./io";
|
|
2
|
+
import { takeEveryHelper, takeLatestHelper, throttleHelper } from "./sagaHelpers";
|
|
3
3
|
export function takeEvery(patternOrChannel, worker) {
|
|
4
4
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
5
5
|
args[_key - 2] = arguments[_key];
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
return fork.apply(void 0, [takeEveryHelper, patternOrChannel, worker].concat(args));
|
|
7
|
+
return fork(takeEveryHelper, patternOrChannel, worker, ...args);
|
|
9
8
|
}
|
|
10
9
|
export function takeLatest(patternOrChannel, worker) {
|
|
11
10
|
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|
12
11
|
args[_key2 - 2] = arguments[_key2];
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
return fork.apply(void 0, [takeLatestHelper, patternOrChannel, worker].concat(args));
|
|
13
|
+
return fork(takeLatestHelper, patternOrChannel, worker, ...args);
|
|
16
14
|
}
|
|
17
15
|
export function throttle(ms, pattern, worker) {
|
|
18
16
|
for (var _len3 = arguments.length, args = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) {
|
|
19
17
|
args[_key3 - 3] = arguments[_key3];
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
return fork(throttleHelper, ms, pattern, worker, ...args);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=io-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io-helpers.js","names":["fork","takeEveryHelper","takeLatestHelper","throttleHelper","takeEvery","patternOrChannel","worker","_len","arguments","length","args","Array","_key","takeLatest","_len2","_key2","throttle","ms","pattern","_len3","_key3"],"sources":["../../io-helpers.js"],"sourcesContent":["import { fork } from './io'\nimport { takeEveryHelper, takeLatestHelper, throttleHelper } from './sagaHelpers'\n\nexport function takeEvery(patternOrChannel, worker, ...args) {\n return fork(takeEveryHelper, patternOrChannel, worker, ...args)\n}\n\nexport function takeLatest(patternOrChannel, worker, ...args) {\n return fork(takeLatestHelper, patternOrChannel, worker, ...args)\n}\n\nexport function throttle(ms, pattern, worker, ...args) {\n return fork(throttleHelper, ms, pattern, worker, ...args)\n}\n"],"mappings":"AAAA,SAASA,IAAI;AACb,SAASC,eAAe,EAAEC,gBAAgB,EAAEC,cAAc;AAE1D,OAAO,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;EACzD,OAAOZ,IAAI,CAACC,eAAe,EAAEI,gBAAgB,EAAEC,MAAM,EAAE,GAAGI,IAAI,CAAC;AACjE;AAEA,OAAO,SAASG,UAAUA,CAACR,gBAAgB,EAAEC,MAAM,EAAW;EAAA,SAAAQ,KAAA,GAAAN,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAG,KAAA,OAAAA,KAAA,WAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;IAAJL,IAAI,CAAAK,KAAA,QAAAP,SAAA,CAAAO,KAAA;EAAA;EAC1D,OAAOf,IAAI,CAACE,gBAAgB,EAAEG,gBAAgB,EAAEC,MAAM,EAAE,GAAGI,IAAI,CAAC;AAClE;AAEA,OAAO,SAASM,QAAQA,CAACC,EAAE,EAAEC,OAAO,EAAEZ,MAAM,EAAW;EAAA,SAAAa,KAAA,GAAAX,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAQ,KAAA,OAAAA,KAAA,WAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;IAAJV,IAAI,CAAAU,KAAA,QAAAZ,SAAA,CAAAY,KAAA;EAAA;EACnD,OAAOpB,IAAI,CAACG,cAAc,EAAEc,EAAE,EAAEC,OAAO,EAAEZ,MAAM,EAAE,GAAGI,IAAI,CAAC;AAC3D"}
|