forked from mobxjs/mobx
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfigure.ts
More file actions
65 lines (64 loc) · 2.1 KB
/
Copy pathconfigure.ts
File metadata and controls
65 lines (64 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import {
globalState,
isolateGlobalState,
setReactionScheduler,
fail,
deprecated
} from "../internal"
export function configure(options: {
enforceActions?: boolean | "strict" | "never" | "always" | "observed"
computedRequiresReaction?: boolean
isolateGlobalState?: boolean
disableErrorBoundaries?: boolean
reactionScheduler?: (f: () => void) => void
}): void {
const {
enforceActions,
computedRequiresReaction,
disableErrorBoundaries,
reactionScheduler
} = options
if (enforceActions !== undefined) {
if (typeof enforceActions === "boolean" || enforceActions === "strict")
deprecated(
`Deprecated value for 'enforceActions', use 'false' => '"never"', 'true' => '"observed"', '"strict"' => "'always'" instead`
)
let ea
switch (enforceActions) {
case true:
case "observed":
ea = true
break
case false:
case "never":
ea = false
break
case "strict":
case "always":
ea = "strict"
break
default:
fail(
`Invalid value for 'enforceActions': '${enforceActions}', expected 'never', 'always' or 'observed'`
)
}
globalState.enforceActions = ea
globalState.allowStateChanges = ea === true || ea === "strict" ? false : true
}
if (computedRequiresReaction !== undefined) {
globalState.computedRequiresReaction = !!computedRequiresReaction
}
if (options.isolateGlobalState === true) {
isolateGlobalState()
}
if (disableErrorBoundaries !== undefined) {
if (disableErrorBoundaries === true)
console.warn(
"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."
)
globalState.disableErrorBoundaries = !!disableErrorBoundaries
}
if (reactionScheduler) {
setReactionScheduler(reactionScheduler)
}
}