Skip to content

Commit 78d283e

Browse files
Merge pull request cerebral#174 from cerebral/fixes-7
Fixes 7
2 parents 61d9993 + 6b1bccb commit 78d283e

File tree

21 files changed

+158
-196
lines changed

21 files changed

+158
-196
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Action, pipe, OnInitialize, Operator, run } from 'overmind'
1+
import { Action, pipe, OnInitialize, Operator } from 'overmind'
22
import {
33
Message,
44
Tab,

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

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { mutate, forEach, fork, Operator, when, map } from 'overmind'
1+
import { action, forEach, fork, Operator, when, map } from 'overmind'
22
import {
33
Message,
44
AppMessage,
@@ -9,7 +9,6 @@ import {
99
RemoveComponentMessage,
1010
DerivedMessage,
1111
DirtyDerivedMessage,
12-
ReactionUpdateMessage,
1312
ActionsListItemType,
1413
ActionItem,
1514
ActionGroupItem,
@@ -30,13 +29,13 @@ import {
3029
runMutation,
3130
} from './utils'
3231

33-
export const ensureCurrentApp = mutate<Message>(({ value: message, state }) => {
32+
export const ensureCurrentApp = action<Message>(({ value: message, state }) => {
3433
if (!state.currentAppName) {
3534
state.currentAppName = message.appName
3635
}
3736
})
3837

39-
export const setPortExists = mutate<any>(({ state }) => {
38+
export const setPortExists = action<any>(({ state }) => {
4039
state.error = 'PORT_EXISTS'
4140
})
4241

@@ -49,12 +48,12 @@ export const isPortExistsMessage = (paths: {
4948
paths
5049
)
5150

52-
export const addState = mutate<InitMessage>(({ value: message, state }) => {
51+
export const addState = action<InitMessage>(({ value: message, state }) => {
5352
state.isConnecting = false
5453
state.apps[message.appName].state = message.data.state
5554
})
5655

57-
export const addFlushAndRunMutations = mutate<FlushMessage>(
56+
export const addFlushAndRunMutations = action<FlushMessage>(
5857
({ value: message, state }) => {
5958
ensureFlushExists(state.apps[message.appName].flushes, message.data.flushId)
6059
state.apps[message.appName].flushes[message.data.flushId].mutations =
@@ -78,7 +77,7 @@ export const addFlushAndRunMutations = mutate<FlushMessage>(
7877
}
7978
)
8079

81-
export const ensureApp = mutate<Message>(({ value: message, state }) => {
80+
export const ensureApp = action<Message>(({ value: message, state }) => {
8281
if (
8382
!state.apps[message.appName] ||
8483
message.messages[0].type === ExecutionType.INIT
@@ -89,16 +88,17 @@ export const ensureApp = mutate<Message>(({ value: message, state }) => {
8988
}
9089
})
9190

92-
export const addClientMessages = mutate<Message>(
91+
export const addClientMessages = action<Message>(
9392
({ value: message, state }) => {
94-
state.apps[message.appName].messages = message.messages
95-
.slice()
93+
state.apps[message.appName].messages = JSON.parse(
94+
JSON.stringify(message.messages)
95+
)
9696
.reverse()
9797
.concat(state.apps[message.appName].messages)
9898
}
9999
)
100100

101-
export const addComponent = mutate<AddComponentMessage>(
101+
export const addComponent = action<AddComponentMessage>(
102102
({ value: message, state }) => {
103103
const id = `${message.data.componentId}_${message.data.componentInstanceId}`
104104

@@ -112,7 +112,7 @@ export const addComponent = mutate<AddComponentMessage>(
112112
}
113113
)
114114

115-
export const updateComponent = mutate<UpdateComponentMessage>(
115+
export const updateComponent = action<UpdateComponentMessage>(
116116
({ value: message, state }) => {
117117
const id = `${message.data.componentId}_${message.data.componentInstanceId}`
118118

@@ -133,15 +133,15 @@ export const updateComponent = mutate<UpdateComponentMessage>(
133133
}
134134
)
135135

136-
export const removeComponent = mutate<RemoveComponentMessage>(
136+
export const removeComponent = action<RemoveComponentMessage>(
137137
({ value: message, state }) => {
138138
const id = `${message.data.componentId}_${message.data.componentInstanceId}`
139139

140140
state.apps[message.appName].components[id].isMounted = false
141141
}
142142
)
143143

144-
export const updateDerived = mutate<DerivedMessage>(
144+
export const updateDerived = action<DerivedMessage>(
145145
({ value: message, state }) => {
146146
const appState = state.apps[message.appName].state
147147
const path = message.data.path.split('.')
@@ -153,7 +153,7 @@ export const updateDerived = mutate<DerivedMessage>(
153153
}
154154
)
155155

156-
export const updateFlushWithDerived = mutate<DirtyDerivedMessage>(
156+
export const updateFlushWithDerived = action<DirtyDerivedMessage>(
157157
({ value: message, state }) => {
158158
ensureFlushExists(state.apps[message.appName].flushes, message.data.flushId)
159159
state.apps[message.appName].flushes[message.data.flushId].derived.push(
@@ -162,7 +162,7 @@ export const updateFlushWithDerived = mutate<DirtyDerivedMessage>(
162162
}
163163
)
164164

165-
export const addAction = mutate<StartActionMessage>(
165+
export const addAction = action<StartActionMessage>(
166166
({ value: message, state }) => {
167167
const app = state.apps[message.appName]
168168
const action = message.data
@@ -205,7 +205,7 @@ export const addAction = mutate<StartActionMessage>(
205205
}
206206
)
207207

208-
export const addOperator = mutate<StartOperatorMessage>(
208+
export const addOperator = action<StartOperatorMessage>(
209209
({ value: message, state }) => {
210210
const operatorData = message.data
211211
const actionId = getActionId(operatorData)
@@ -241,7 +241,7 @@ export const addOperator = mutate<StartOperatorMessage>(
241241
}
242242
)
243243

244-
export const updateOperator = mutate<EndOperatorMessage>(
244+
export const updateOperator = action<EndOperatorMessage>(
245245
({ value: message, state }) => {
246246
const operatorData = message.data
247247
const actionId = getActionId(operatorData)
@@ -256,7 +256,7 @@ export const updateOperator = mutate<EndOperatorMessage>(
256256
}
257257
)
258258

259-
export const updateAction = mutate<EndActionMessage>(
259+
export const updateAction = action<EndActionMessage>(
260260
({ value: message, state }) => {
261261
const app = state.apps[message.appName]
262262
const action = message.data
@@ -266,7 +266,7 @@ export const updateAction = mutate<EndActionMessage>(
266266
}
267267
)
268268

269-
export const addMutations = mutate<MutationsMessage>(
269+
export const addMutations = action<MutationsMessage>(
270270
({ value: message, state }) => {
271271
const mutations = message.data
272272
const id = `${mutations.actionId}_${mutations.executionId}`
@@ -277,7 +277,7 @@ export const addMutations = mutate<MutationsMessage>(
277277
}
278278
)
279279

280-
export const addEffect = mutate<EffectMessage>(({ value: message, state }) => {
280+
export const addEffect = action<EffectMessage>(({ value: message, state }) => {
281281
const effect = message.data
282282
const id = getActionId(effect)
283283
const operator =
@@ -294,4 +294,4 @@ export const forkEachMessage = (paths: {
294294
[key: string]: Operator<AppMessage<any>, AppMessage<any>>
295295
}) => forEach<AppMessage<any>[]>(fork(({ value }) => value.type, paths))
296296

297-
export const updateOperatorAsync = mutate<AsyncOperatorMessage>(() => {})
297+
export const updateOperatorAsync = action<AsyncOperatorMessage>(() => {})

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,6 @@ export type DirtyDerivedMessage = AppMessage<{
204204
value: any
205205
}>
206206

207-
export type ReactionUpdateMessage = DirtyDerivedMessage
208-
209207
export type StartActionMessage = AppMessage<{
210208
actionId: number
211209
actionName: string

packages/node_modules/overmind-react/src/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ export const createConnect = <A extends Overmind<Configuration>>(
145145
componentInstanceId = componentInstanceId++
146146
currentFlushId = 0
147147
componentDidMount() {
148-
console.log(this.tree)
149148
overmind.eventHub.emitAsync(EventType.COMPONENT_ADD, {
150149
componentId: populatedComponent.__componentId,
151150
componentInstanceId: this.componentInstanceId,
@@ -200,7 +199,9 @@ export const createConnect = <A extends Overmind<Configuration>>(
200199
}
201200

202201
Object.defineProperties(HOC, {
203-
name: { value: component.displayName || component.name || '' },
202+
name: {
203+
value: 'Connect' + component.displayName || component.name || '',
204+
},
204205
})
205206

206207
return HOC as any

packages/node_modules/overmind/src/Devtools.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,9 @@ export class Devtools {
9797
)
9898
}
9999
send(message: Message) {
100+
const stringifiedMessage = JSON.stringify(message)
100101
;(window['__zone_symbol__setTimeout'] || setTimeout)(() => {
101-
this.buffer.push(JSON.stringify(message))
102+
this.buffer.push(stringifiedMessage)
102103
this.sendBuffer()
103104
})
104105
}

packages/node_modules/overmind/src/index.ts

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { EventEmitter } from 'betsy'
22
import isPlainObject from 'is-plain-obj'
3-
import { IS_PROXY, ProxyStateTree, TTree, IMutation } from 'proxy-state-tree'
3+
import {
4+
IS_PROXY,
5+
ProxyStateTree,
6+
TTree,
7+
IMutation,
8+
VALUE,
9+
} from 'proxy-state-tree'
410
import { Derived } from './derived'
511
import { Devtools, Message, safeValue, safeValues } from './Devtools'
612
import {
@@ -106,7 +112,16 @@ export class Overmind<Config extends Configuration> implements Configuration {
106112
*/
107113

108114
if (!IS_PRODUCTION && typeof window !== 'undefined') {
109-
if (options.devtools || (location.hostname === 'localhost' && options.devtools !== false)) {
115+
const originalConsoleLog = console.log
116+
console.log = (...args) =>
117+
originalConsoleLog.apply(
118+
console,
119+
args.map((arg) => (arg && arg[IS_PROXY] ? arg[VALUE] : arg))
120+
)
121+
if (
122+
options.devtools ||
123+
(location.hostname === 'localhost' && options.devtools !== false)
124+
) {
110125
this.initializeDevtools(options.devtools, eventHub, proxyStateTree)
111126
} else {
112127
console.warn(
@@ -630,30 +645,6 @@ export function map<Input, Output, Config extends Configuration = TheConfig>(
630645
return instance
631646
}
632647

633-
export function run<Input, Config extends Configuration = TheConfig>(
634-
operation: (input: TValueContext<Config, Input>) => any
635-
): TOperator<Config, Input, Input> {
636-
const instance = (err, context, next) => {
637-
if (err) next(err)
638-
else {
639-
startDebugOperator('run', operation, context)
640-
const result = operation(context)
641-
stopDebugOperator(context, context.value)
642-
643-
const newContext = createContext(
644-
context,
645-
result instanceof Promise
646-
? result.then(() => context.value)
647-
: context.value
648-
)
649-
next(null, newContext)
650-
}
651-
}
652-
instance[IS_OPERATOR] = true
653-
654-
return instance
655-
}
656-
657648
export function forEach<
658649
Input extends any[],
659650
Config extends Configuration = TheConfig
@@ -763,13 +754,14 @@ export function filter<Input, Config extends Configuration = TheConfig>(
763754
return instance
764755
}
765756

766-
export function mutate<Input, Config extends Configuration = TheConfig>(
757+
export function action<Input, Config extends Configuration = TheConfig>(
767758
operation: (input: TValueContext<Config, Input>) => void
768759
): TOperator<Config, Input, Input> {
769760
const instance = (err, context, next) => {
770761
if (err) next(err)
771762
else {
772-
startDebugOperator('mutate', operation, context)
763+
startDebugOperator('action', operation, context)
764+
773765
const mutationTree = context.proxyStateTree.getMutationTree()
774766
if (!IS_PRODUCTION) {
775767
mutationTree.onMutation((mutation) => {

packages/node_modules/overmind/src/pipe.test.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
Operator,
99
wait,
1010
debounce,
11-
run,
11+
action,
1212
parallel,
1313
} from './'
1414

@@ -27,6 +27,13 @@ function createMockAction(pipe) {
2727
send: () => {},
2828
trackEffects: () => {},
2929
},
30+
proxyStateTree: {
31+
getMutationTree() {
32+
return {
33+
onMutation() {},
34+
}
35+
},
36+
},
3037
}
3138
pipe(
3239
null,
@@ -170,25 +177,25 @@ describe('PIPE', () => {
170177
expect(value).toEqual(['foo', 'FOO'])
171178
})
172179
})
173-
test('run', () => {
180+
test('action', () => {
174181
expect.assertions(1)
175182
const test: Operator<string, string> = pipe(
176-
run(({ value }) => value + '!!!')
183+
action(({ value }) => value + '!!!')
177184
)
178-
const action = createMockAction(test)
179-
return action('foo').then((value) => {
185+
const mockedAction = createMockAction(test)
186+
return mockedAction('foo').then((value) => {
180187
expect(value).toEqual('foo')
181188
})
182189
})
183-
test('run (async)', () => {
190+
test('action (async)', () => {
184191
expect.assertions(2)
185192
let hasRun = false
186193
const test: Operator<string, string> = pipe(
187-
run(({ value }) => Promise.resolve(value + '!!!')),
188-
run(() => (hasRun = true))
194+
action(({ value }) => Promise.resolve(value + '!!!')),
195+
action(() => (hasRun = true))
189196
)
190-
const action = createMockAction(test)
191-
const actionRun = action('foo')
197+
const mockedAction = createMockAction(test)
198+
const actionRun = mockedAction('foo')
192199
expect(hasRun).toBe(false)
193200
return actionRun.then((value) => {
194201
expect(value).toEqual('foo')

packages/node_modules/proxy-state-tree/src/Proxyfier.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,12 @@ export class Proxifier {
197197
if (typeof prop === 'symbol' || prop in Object.prototype)
198198
return target[prop]
199199

200+
const descriptor = Object.getOwnPropertyDescriptor(target, prop)
201+
202+
if (descriptor && 'get' in descriptor) {
203+
return descriptor.get.call(proxifier.getProxyFromCache(path))
204+
}
205+
200206
const trackingTree = proxifier.getTrackingTree()
201207
const targetValue = target[prop]
202208
const nestedPath = proxifier.concat(path, prop)

0 commit comments

Comments
 (0)