Skip to content

Commit 7202d1a

Browse files
refactor(overmind-devtools): refactor to correct typing approach
1 parent 6b3c2b5 commit 7202d1a

File tree

1 file changed

+61
-47
lines changed
  • packages/node_modules/overmind-devtools/src/overmind

1 file changed

+61
-47
lines changed

packages/node_modules/overmind-devtools/src/overmind/operators.ts

Lines changed: 61 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { action, forEach, fork, Operator, when, map } from 'overmind'
1+
import { Operator, action, forEach, fork, when, map } from 'overmind'
22
import {
33
Message,
44
AppMessage,
@@ -29,31 +29,37 @@ import {
2929
runMutation,
3030
} from './utils'
3131

32-
export const ensureCurrentApp = action<Message>(({ value: message, state }) => {
33-
if (!state.currentAppName) {
34-
state.currentAppName = message.appName
32+
export const ensureCurrentApp: Operator<Message> = action(
33+
({ value: message, state }) => {
34+
if (!state.currentAppName) {
35+
state.currentAppName = message.appName
36+
}
3537
}
36-
})
38+
)
3739

38-
export const setPortExists = action<any>(({ state }) => {
40+
export const setPortExists: Operator<any> = action(({ state }) => {
3941
state.error = 'PORT_EXISTS'
4042
})
4143

42-
export const isPortExistsMessage = (paths: {
43-
true: Operator<Message, any>
44-
false: Operator<Message, any>
45-
}) =>
44+
export const isPortExistsMessage: (
45+
paths: {
46+
true: Operator<Message, any>
47+
false: Operator<Message, any>
48+
}
49+
) => Operator<Message> = (paths) =>
4650
when(
4751
({ value: message }) => message.messages[0].type === 'PORT_EXISTS',
4852
paths
4953
)
5054

51-
export const addState = action<InitMessage>(({ value: message, state }) => {
52-
state.isConnecting = false
53-
state.apps[message.appName].state = message.data.state
54-
})
55+
export const addState: Operator<InitMessage> = action(
56+
({ value: message, state }) => {
57+
state.isConnecting = false
58+
state.apps[message.appName].state = message.data.state
59+
}
60+
)
5561

56-
export const addFlushAndRunMutations = action<FlushMessage>(
62+
export const addFlushAndRunMutations: Operator<FlushMessage> = action(
5763
({ value: message, state }) => {
5864
ensureFlushExists(state.apps[message.appName].flushes, message.data.flushId)
5965
state.apps[message.appName].flushes[message.data.flushId].mutations =
@@ -77,18 +83,20 @@ export const addFlushAndRunMutations = action<FlushMessage>(
7783
}
7884
)
7985

80-
export const ensureApp = action<Message>(({ value: message, state }) => {
81-
if (
82-
!state.apps[message.appName] ||
83-
message.messages[0].type === ExecutionType.INIT
84-
) {
85-
state.apps[message.appName] = createApp({
86-
name: message.appName,
87-
})
86+
export const ensureApp: Operator<Message> = action(
87+
({ value: message, state }) => {
88+
if (
89+
!state.apps[message.appName] ||
90+
message.messages[0].type === ExecutionType.INIT
91+
) {
92+
state.apps[message.appName] = createApp({
93+
name: message.appName,
94+
})
95+
}
8896
}
89-
})
97+
)
9098

91-
export const addClientMessages = action<Message>(
99+
export const addClientMessages: Operator<Message> = action(
92100
({ value: message, state }) => {
93101
state.apps[message.appName].messages = JSON.parse(
94102
JSON.stringify(message.messages)
@@ -98,7 +106,7 @@ export const addClientMessages = action<Message>(
98106
}
99107
)
100108

101-
export const addComponent = action<AddComponentMessage>(
109+
export const addComponent: Operator<AddComponentMessage> = action(
102110
({ value: message, state }) => {
103111
const id = `${message.data.componentId}_${message.data.componentInstanceId}`
104112

@@ -112,7 +120,7 @@ export const addComponent = action<AddComponentMessage>(
112120
}
113121
)
114122

115-
export const updateComponent = action<UpdateComponentMessage>(
123+
export const updateComponent: Operator<UpdateComponentMessage> = action(
116124
({ value: message, state }) => {
117125
const id = `${message.data.componentId}_${message.data.componentInstanceId}`
118126

@@ -133,15 +141,15 @@ export const updateComponent = action<UpdateComponentMessage>(
133141
}
134142
)
135143

136-
export const removeComponent = action<RemoveComponentMessage>(
144+
export const removeComponent: Operator<RemoveComponentMessage> = action(
137145
({ value: message, state }) => {
138146
const id = `${message.data.componentId}_${message.data.componentInstanceId}`
139147

140148
state.apps[message.appName].components[id].isMounted = false
141149
}
142150
)
143151

144-
export const updateDerived = action<DerivedMessage>(
152+
export const updateDerived: Operator<DerivedMessage> = action(
145153
({ value: message, state }) => {
146154
const appState = state.apps[message.appName].state
147155
const path = message.data.path.split('.')
@@ -153,7 +161,7 @@ export const updateDerived = action<DerivedMessage>(
153161
}
154162
)
155163

156-
export const updateFlushWithDerived = action<DirtyDerivedMessage>(
164+
export const updateFlushWithDerived: Operator<DirtyDerivedMessage> = action(
157165
({ value: message, state }) => {
158166
ensureFlushExists(state.apps[message.appName].flushes, message.data.flushId)
159167
state.apps[message.appName].flushes[message.data.flushId].derived.push(
@@ -162,7 +170,7 @@ export const updateFlushWithDerived = action<DirtyDerivedMessage>(
162170
}
163171
)
164172

165-
export const addAction = action<StartActionMessage>(
173+
export const addAction: Operator<StartActionMessage> = action(
166174
({ value: message, state }) => {
167175
const app = state.apps[message.appName]
168176
const action = message.data
@@ -205,7 +213,7 @@ export const addAction = action<StartActionMessage>(
205213
}
206214
)
207215

208-
export const addOperator = action<StartOperatorMessage>(
216+
export const addOperator: Operator<StartOperatorMessage> = action(
209217
({ value: message, state }) => {
210218
const operatorData = message.data
211219
const actionId = getActionId(operatorData)
@@ -241,7 +249,7 @@ export const addOperator = action<StartOperatorMessage>(
241249
}
242250
)
243251

244-
export const updateOperator = action<EndOperatorMessage>(
252+
export const updateOperator: Operator<EndOperatorMessage> = action(
245253
({ value: message, state }) => {
246254
const operatorData = message.data
247255
const actionId = getActionId(operatorData)
@@ -256,7 +264,7 @@ export const updateOperator = action<EndOperatorMessage>(
256264
}
257265
)
258266

259-
export const updateAction = action<EndActionMessage>(
267+
export const updateAction: Operator<EndActionMessage> = action(
260268
({ value: message, state }) => {
261269
const app = state.apps[message.appName]
262270
const action = message.data
@@ -266,7 +274,7 @@ export const updateAction = action<EndActionMessage>(
266274
}
267275
)
268276

269-
export const addMutations = action<MutationsMessage>(
277+
export const addMutations: Operator<MutationsMessage> = action(
270278
({ value: message, state }) => {
271279
const mutations = message.data
272280
const id = `${mutations.actionId}_${mutations.executionId}`
@@ -277,21 +285,27 @@ export const addMutations = action<MutationsMessage>(
277285
}
278286
)
279287

280-
export const addEffect = action<EffectMessage>(({ value: message, state }) => {
281-
const effect = message.data
282-
const id = getActionId(effect)
283-
const operator =
284-
state.apps[message.appName].actions[id].operators[effect.operatorId]
288+
export const addEffect: Operator<EffectMessage> = action(
289+
({ value: message, state }) => {
290+
const effect = message.data
291+
const id = getActionId(effect)
292+
const operator =
293+
state.apps[message.appName].actions[id].operators[effect.operatorId]
285294

286-
operator.effects.push(effect)
287-
})
295+
operator.effects.push(effect)
296+
}
297+
)
288298

289-
export const getMessages = map<Message, AppMessage<any>[]>(({ value }) =>
290-
value.messages.map((message) => ({ ...message, appName: value.appName }))
299+
export const getMessages: Operator<Message, AppMessage<any>[]> = map(
300+
({ value }) =>
301+
value.messages.map((message) => ({ ...message, appName: value.appName }))
291302
)
292303

293-
export const forkEachMessage = (paths: {
294-
[key: string]: Operator<AppMessage<any>, AppMessage<any>>
295-
}) => forEach<AppMessage<any>[]>(fork(({ value }) => value.type, paths))
304+
export const forkEachMessage: (
305+
paths: {
306+
[key: string]: Operator<AppMessage<any>, any>
307+
}
308+
) => Operator<AppMessage<any>[]> = (paths) =>
309+
forEach(fork(({ value }) => value.type, paths) as Operator<AppMessage<any>>)
296310

297311
export const updateOperatorAsync = action<AsyncOperatorMessage>(() => {})

0 commit comments

Comments
 (0)