ywana-core8 0.1.0 → 0.1.3
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/dist/index.cjs +10 -37
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +10 -37
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +10 -37
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/incubator/task.js +8 -16
package/package.json
CHANGED
package/src/incubator/task.js
CHANGED
@@ -13,7 +13,7 @@ export const TaskContext = React.createContext({})
|
|
13
13
|
*/
|
14
14
|
export const TaskContextProvider = (props) => {
|
15
15
|
|
16
|
-
const { host, url = "/tasks", frequency = 1000, children, ctx
|
16
|
+
const { host, url = "/tasks", frequency = 1000, children, ctx } = props
|
17
17
|
const API = CollectionAPI(url, host, "")
|
18
18
|
const [listeners, setListeners] = useState({})
|
19
19
|
const appContext = useContext(ctx)
|
@@ -26,11 +26,7 @@ export const TaskContextProvider = (props) => {
|
|
26
26
|
useEffect(() => {
|
27
27
|
if (Object.keys(listeners).length === 0) return
|
28
28
|
const _interval = setInterval(async () => {
|
29
|
-
|
30
|
-
await concurrentExecuteListeners()
|
31
|
-
} else {
|
32
|
-
await executeListeners()
|
33
|
-
}
|
29
|
+
await executeListeners()
|
34
30
|
}, frequency)
|
35
31
|
return () => clearInterval(_interval)
|
36
32
|
}, [listeners])
|
@@ -40,21 +36,17 @@ export const TaskContextProvider = (props) => {
|
|
40
36
|
for (let i = 0; i < taskIDs.length; i++) {
|
41
37
|
const taskID = taskIDs[i]
|
42
38
|
const tsk = await task(taskID)
|
39
|
+
if (!tsk) {
|
40
|
+
console.log("Task not found", taskID)
|
41
|
+
removeListener(taskID)
|
42
|
+
console.log("Listener removed", taskID)
|
43
|
+
continue
|
44
|
+
}
|
43
45
|
const listener = listeners[taskID]
|
44
46
|
if (listener) listener(tsk, appContextRef.current)
|
45
47
|
}
|
46
48
|
}
|
47
49
|
|
48
|
-
async function concurrentExecuteListeners() {
|
49
|
-
const taskIDs = Object.keys(listeners);
|
50
|
-
const taskPromises = taskIDs.map(taskID => context.task(taskID).then(tsk => [tsk, taskID]));
|
51
|
-
const tasks = await Promise.all(taskPromises);
|
52
|
-
tasks.forEach(([tsk, taskID]) => {
|
53
|
-
const listener = listeners[taskID];
|
54
|
-
if (listener) listener(tsk, appContextRef.current);
|
55
|
-
});
|
56
|
-
}
|
57
|
-
|
58
50
|
async function tasks(filters, likes) {
|
59
51
|
try {
|
60
52
|
const response = await API.all(filters, likes);
|