1 | exports.props = {}
|
2 |
|
3 | exports.inject = t => {
|
4 | const prop = t.props.default
|
5 | const props = {
|
6 | done: (t, val, key, stamp) => {
|
7 | if (val === true) {
|
8 | val = stamp
|
9 | } else if (val && val.val === true) {
|
10 | val.val = val.stamp
|
11 | }
|
12 | return prop(t, val, key, stamp)
|
13 | }
|
14 | }
|
15 | t.set({ props }, false)
|
16 | }
|
17 |
|
18 | exports.done = {
|
19 | on: {
|
20 | data: {
|
21 | log: (val, stamp, t) => t.parent().get('log', {}).push('done'),
|
22 | parentDone (val, stamp, t) {
|
23 | const tasks = t.parent(2)
|
24 | if (
|
25 | tasks &&
|
26 | tasks.keys().every(key => tasks.get([key, 'done', 'compute']))
|
27 | ) {
|
28 | tasks.parent().set({ done: true }, stamp)
|
29 | }
|
30 | }
|
31 | }
|
32 | }
|
33 | }
|