Skip to content

Commit 8da0b3a

Browse files
perf(overmind): pass individual messages to devtools instead
1 parent 2dca216 commit 8da0b3a

File tree

6 files changed

+24
-32
lines changed

6 files changed

+24
-32
lines changed

packages/node_modules/overmind-devtools-client/src/components/Console/index.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import * as styles from './styles'
66
const Console: FunctionComponent = () => {
77
const { state } = useOvermind()
88

9-
console.log(state.currentApp.messages)
109
return (
1110
<div className={styles.wrapper}>
1211
{state.currentApp.messages.map((message, index) => (

packages/node_modules/overmind-devtools-client/src/overmind/actions.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
1-
import {
2-
Action,
3-
pipe,
4-
OnInitialize,
5-
Operator,
6-
forEach,
7-
AsyncAction,
8-
} from 'overmind'
1+
import { Action, pipe, Operator, AsyncAction } from 'overmind'
92
import {
103
Message,
114
Tab,
12-
AppMessageType,
135
ExecutionType,
146
ActionsListItemType,
157
Component,
@@ -20,9 +12,9 @@ import { isValidJson, createApp } from './utils'
2012
export const onMessage: Operator<Message> = pipe(
2113
o.ensureCurrentApp(),
2214
o.ensureApp(),
23-
o.addClientMessages(),
24-
o.getMessages(),
25-
o.forkEachMessage({
15+
o.addClientMessage(),
16+
o.getMessage(),
17+
o.forkMessage({
2618
[ExecutionType.INIT]: o.addStateAndActions(),
2719
[ExecutionType.RE_INIT]: o.addStateAndActions(),
2820
[ExecutionType.FLUSH]: o.addFlush(),

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

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Operator, mutate, forEach, fork, when, map } from 'overmind'
1+
import { Operator, mutate, forEach, fork, createOperator, map } from 'overmind'
22
import {
33
Message,
44
AppMessage,
@@ -82,7 +82,7 @@ export const ensureApp: () => Operator<Message> = () =>
8282
mutate(({ state, effects, actions }, message) => {
8383
if (
8484
!state.apps[message.appName] ||
85-
message.messages[0].type === ExecutionType.INIT
85+
message.message.type === ExecutionType.INIT
8686
) {
8787
state.apps[message.appName] = createApp({
8888
name: message.appName,
@@ -91,18 +91,16 @@ export const ensureApp: () => Operator<Message> = () =>
9191
// Do not use await, as it will block further execution, this stuff has to be sync
9292
actions.setAppDataFromStorage({
9393
appName: message.appName,
94-
actions: message.messages[0].data.actions,
94+
actions: message.message.data.actions,
9595
})
9696
}
9797
})
9898

99-
export const addClientMessages: () => Operator<Message> = () =>
99+
export const addClientMessage: () => Operator<Message> = () =>
100100
mutate(({ state }, message) => {
101-
state.apps[message.appName].messages = JSON.parse(
102-
JSON.stringify(message.messages)
101+
state.apps[message.appName].messages.unshift(
102+
JSON.parse(JSON.stringify(message.message))
103103
)
104-
.reverse()
105-
.concat(state.apps[message.appName].messages)
106104
})
107105

108106
export const addComponent: () => Operator<AddComponentMessage> = () =>
@@ -316,17 +314,15 @@ export const updateEffect: () => Operator<EffectMessage> = () =>
316314
}
317315
})
318316

319-
export const getMessages: () => Operator<Message, AppMessage<any>[]> = () =>
320-
map((_, value) =>
321-
value.messages.map((message) => ({ ...message, appName: value.appName }))
322-
)
317+
export const getMessage: () => Operator<Message, AppMessage<any>> = () =>
318+
map((_, value) => ({ ...value.message, appName: value.appName }))
323319

324-
export const forkEachMessage: (
320+
export const forkMessage: (
325321
paths: {
326322
[key: string]: Operator<AppMessage<any>, any>
327323
}
328-
) => Operator<AppMessage<any>[]> = (paths) =>
329-
forEach(fork((_, value) => value.type, paths) as Operator<AppMessage<any>>)
324+
) => Operator<AppMessage<any>> = (paths) =>
325+
fork((_, value) => value.type, paths) as Operator<AppMessage<any>>
330326

331327
export const updateOperatorAsync: () => Operator<AsyncOperatorMessage> = () =>
332328
mutate(() => {})

packages/node_modules/overmind-devtools-client/src/overmind/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ export type EffectMessage = AppMessage<{
354354

355355
export type Message = {
356356
appName: string
357-
messages: AppMessage<any>[]
357+
message: AppMessage<any>
358358
}
359359

360360
export enum Tab {

packages/node_modules/overmind/src/Devtools.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,15 @@ export class Devtools {
122122
this.buffer.push(stringifiedMessage)
123123
this.sendBuffer()
124124
}
125-
private sendBuffer() {
125+
private sendBuffer = () => {
126126
if (this.isConnected && this.buffer.length) {
127127
this.ws.send(
128-
`{ "appName": "${this.name}", "messages": [${this.buffer.join(',')}] }`
128+
`{ "appName": "${this.name}", "message": ${this.buffer.shift()} }`
129129
)
130-
this.buffer.length = 0
130+
131+
if (this.buffer.length) {
132+
setTimeout(this.sendBuffer)
133+
}
131134
}
132135
}
133136
}

packages/overmind-website/src/components/Guides/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ const Guides: SFC = () => {
1010
return <Loader />
1111
}
1212

13+
console.log(state.guides)
14+
1315
return (
1416
<div className={styles.wrapper}>
1517
{state.guides.map((guide) => (

0 commit comments

Comments
 (0)