Skip to content

Commit a83cd27

Browse files
Merge branch 'next' of https://github.com/cerebral/overmind into next
2 parents 6d75d52 + 950fa76 commit a83cd27

File tree

3 files changed

+25
-28
lines changed

3 files changed

+25
-28
lines changed

packages/node_modules/overmind/src/index.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,13 @@ export class Overmind<ThisConfig extends IConfiguration>
307307
}
308308

309309
if (process.env.NODE_ENV === 'production' && mode.mode === MODE_DEFAULT) {
310-
eventHub.on(EventType.OPERATOR_ASYNC, () => {
311-
proxyStateTree.getMutationTree().flush(true)
310+
eventHub.on(EventType.OPERATOR_ASYNC, (execution) => {
311+
if (
312+
!execution.parentExecution ||
313+
!execution.parentExecution.isRunning
314+
) {
315+
proxyStateTree.getMutationTree().flush(true)
316+
}
312317
})
313318
eventHub.on(EventType.ACTION_END, (execution) => {
314319
if (!execution.parentExecution || !execution.parentExecution.isRunning)
@@ -331,15 +336,20 @@ export class Overmind<ThisConfig extends IConfiguration>
331336
})
332337
}
333338
eventHub.on(EventType.OPERATOR_ASYNC, (execution) => {
334-
const flushData = execution.flush(true)
335-
if (this.devtools && flushData.mutations.length) {
336-
this.devtools.send({
337-
type: 'flush',
338-
data: {
339-
...execution,
340-
...flushData,
341-
},
342-
})
339+
if (
340+
!execution.parentExecution ||
341+
!execution.parentExecution.isRunning
342+
) {
343+
const flushData = execution.flush(true)
344+
if (this.devtools && flushData.mutations.length) {
345+
this.devtools.send({
346+
type: 'flush',
347+
data: {
348+
...execution,
349+
...flushData,
350+
},
351+
})
352+
}
343353
}
344354
})
345355
eventHub.on(EventType.ACTION_END, (execution) => {

packages/node_modules/overmind/src/proxyfyEffects.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export function proxifyEffects<Effects>(
2222
const name = path.split('.')
2323
const method = name.pop()
2424
return cb({
25-
func: target.bind(thisArg[ORIGIN_TARGET]),
25+
func: target.bind(thisArg ? thisArg[ORIGIN_TARGET] : undefined),
2626
effectId,
2727
name: name.join('.'),
2828
method,

packages/node_modules/overmind/src/statemachine.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,9 @@ export type StatemachineTransitions<States extends TStates> = {
1212

1313
export interface MachineMethods<States extends TStates> {
1414
reset: () => void
15-
matches<T0 extends States["state"]>(arg0: T0): this is Statemachine<States> & (States extends { state: T0 } ? States : never);
16-
matches<
17-
T0 extends States["state"],
18-
T1 extends States["state"],
19-
>(state0: T0, state1: T1): this is Statemachine<States> & (States extends { state: T0 } ? States : never) & (States extends { state: T1 } ? States : never);
20-
matches<
21-
T0 extends States["state"],
22-
T1 extends States["state"],
23-
T2 extends States["state"],
24-
>(state0: T0, state1: T1, state2: T2): this is Statemachine<States> & (States extends { state: T0 } ? States : never) & (States extends { state: T1 } ? States : never) & (States extends { state: T2 } ? States : never);
25-
matches<
26-
T0 extends States["state"],
27-
T1 extends States["state"],
28-
T2 extends States["state"],
29-
T3 extends States["state"],
30-
>(state0: T0, state1: T1, state2: T2, state3: T3): this is Statemachine<States> & (States extends { state: T0 } ? States : never) & (States extends { state: T1 } ? States : never) & (States extends { state: T2 } ? States : never) & (States extends { state: T3 } ? States : never);
15+
matches<T extends States["state"][]>(...states: T): this is Statemachine<States> & (States extends {
16+
state: T extends Array<infer S> ? S : never;
17+
} ? States : never);
3118
whenTransitioned: (state: States["state"]) => Promise<void>
3219
}
3320

0 commit comments

Comments
 (0)