xstate 4.35.2 → 5.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +25 -16
  2. package/actions/dist/xstate-actions.cjs.d.ts +1 -0
  3. package/actions/dist/xstate-actions.cjs.dev.js +30 -0
  4. package/actions/dist/xstate-actions.cjs.js +7 -0
  5. package/actions/dist/xstate-actions.cjs.prod.js +30 -0
  6. package/actions/dist/xstate-actions.esm.js +2 -0
  7. package/actions/dist/xstate-actions.umd.min.js +2 -0
  8. package/actions/dist/xstate-actions.umd.min.js.map +1 -0
  9. package/actions/dynamicAction.ts +34 -0
  10. package/actions/package.json +8 -0
  11. package/actors/dist/xstate-actors.cjs.d.ts +1 -0
  12. package/actors/dist/xstate-actors.cjs.dev.js +20 -0
  13. package/actors/dist/xstate-actors.cjs.js +7 -0
  14. package/actors/dist/xstate-actors.cjs.prod.js +20 -0
  15. package/actors/dist/xstate-actors.esm.js +2 -0
  16. package/actors/dist/xstate-actors.umd.min.js +2 -0
  17. package/actors/dist/xstate-actors.umd.min.js.map +1 -0
  18. package/actors/package.json +8 -0
  19. package/dev/dist/xstate-dev.cjs.d.ts +1 -0
  20. package/dev/dist/xstate-dev.cjs.dev.js +11 -0
  21. package/dev/dist/xstate-dev.cjs.js +7 -0
  22. package/{lib/devTools.js → dev/dist/xstate-dev.cjs.prod.js} +17 -10
  23. package/dev/dist/xstate-dev.esm.js +1 -0
  24. package/dev/dist/xstate-dev.umd.min.js +2 -0
  25. package/dev/dist/xstate-dev.umd.min.js.map +1 -0
  26. package/dev/package.json +8 -0
  27. package/dist/actions-7ea9280f.cjs.prod.js +4674 -0
  28. package/dist/actions-b08d0da8.cjs.dev.js +4718 -0
  29. package/dist/actions-b673cb13.esm.js +4660 -0
  30. package/dist/declarations/actions/dynamicAction.d.ts +5 -0
  31. package/dist/declarations/src/Machine.d.ts +4 -0
  32. package/dist/declarations/src/Mailbox.d.ts +12 -0
  33. package/{es → dist/declarations/src}/SimulatedClock.d.ts +16 -17
  34. package/dist/declarations/src/State.d.ts +97 -0
  35. package/dist/declarations/src/StateMachine.d.ts +120 -0
  36. package/dist/declarations/src/StateNode.d.ts +127 -0
  37. package/{es → dist/declarations/src}/actionTypes.d.ts +16 -20
  38. package/dist/declarations/src/actions/assign.d.ts +7 -0
  39. package/dist/declarations/src/actions/cancel.d.ts +10 -0
  40. package/dist/declarations/src/actions/choose.d.ts +3 -0
  41. package/dist/declarations/src/actions/invoke.d.ts +3 -0
  42. package/dist/declarations/src/actions/log.d.ts +11 -0
  43. package/dist/declarations/src/actions/pure.d.ts +3 -0
  44. package/dist/declarations/src/actions/raise.d.ts +9 -0
  45. package/dist/declarations/src/actions/send.d.ts +51 -0
  46. package/dist/declarations/src/actions/stop.d.ts +7 -0
  47. package/dist/declarations/src/actions.d.ts +43 -0
  48. package/dist/declarations/src/actors.d.ts +37 -0
  49. package/dist/declarations/src/constants.d.ts +5 -0
  50. package/{lib/devTools.d.ts → dist/declarations/src/dev/index.d.ts} +14 -14
  51. package/{es → dist/declarations/src}/environment.d.ts +1 -2
  52. package/dist/declarations/src/guards.d.ts +8 -0
  53. package/dist/declarations/src/index.d.ts +44 -0
  54. package/dist/declarations/src/interpreter.d.ts +108 -0
  55. package/{es → dist/declarations/src}/mapState.d.ts +3 -4
  56. package/dist/declarations/src/memo.d.ts +2 -0
  57. package/dist/declarations/src/registry.d.ts +8 -0
  58. package/{es → dist/declarations/src}/schema.d.ts +2 -3
  59. package/dist/declarations/src/spawn.d.ts +2 -0
  60. package/dist/declarations/src/stateUtils.d.ts +70 -0
  61. package/dist/declarations/src/symbolObservable.d.ts +1 -0
  62. package/{lib → dist/declarations/src}/typegenTypes.d.ts +132 -133
  63. package/dist/declarations/src/types.d.ts +1001 -0
  64. package/dist/declarations/src/utils.d.ts +54 -0
  65. package/{es/devTools.js → dist/index-20b364c4.esm.js} +18 -6
  66. package/dist/index-2a564d03.cjs.dev.js +64 -0
  67. package/dist/xstate.cjs.d.ts +1 -0
  68. package/dist/xstate.cjs.dev.js +993 -0
  69. package/dist/xstate.cjs.js +7 -0
  70. package/dist/xstate.cjs.prod.js +993 -0
  71. package/dist/xstate.esm.js +952 -0
  72. package/dist/xstate.umd.min.js +2 -0
  73. package/dist/xstate.umd.min.js.map +1 -0
  74. package/guards/dist/xstate-guards.cjs.d.ts +1 -0
  75. package/guards/dist/xstate-guards.cjs.dev.js +15 -0
  76. package/guards/dist/xstate-guards.cjs.js +7 -0
  77. package/guards/dist/xstate-guards.cjs.prod.js +15 -0
  78. package/guards/dist/xstate-guards.esm.js +2 -0
  79. package/guards/dist/xstate-guards.umd.min.js +2 -0
  80. package/guards/dist/xstate-guards.umd.min.js.map +1 -0
  81. package/guards/package.json +8 -0
  82. package/invoke/package.json +4 -0
  83. package/package.json +44 -30
  84. package/dist/xstate.interpreter.js +0 -15
  85. package/dist/xstate.js +0 -15
  86. package/dist/xstate.web.js +0 -15
  87. package/es/Actor.d.ts +0 -25
  88. package/es/Actor.js +0 -99
  89. package/es/Machine.d.ts +0 -12
  90. package/es/Machine.js +0 -21
  91. package/es/SimulatedClock.js +0 -81
  92. package/es/State.d.ts +0 -123
  93. package/es/State.js +0 -274
  94. package/es/StateNode.d.ts +0 -282
  95. package/es/StateNode.js +0 -1587
  96. package/es/_virtual/_tslib.js +0 -78
  97. package/es/actionTypes.js +0 -22
  98. package/es/actions.d.ts +0 -157
  99. package/es/actions.js +0 -630
  100. package/es/behaviors.d.ts +0 -37
  101. package/es/behaviors.js +0 -131
  102. package/es/constants.d.ts +0 -6
  103. package/es/constants.js +0 -6
  104. package/es/devTools.d.ts +0 -14
  105. package/es/each.d.ts +0 -4
  106. package/es/each.js +0 -13
  107. package/es/environment.js +0 -3
  108. package/es/index.d.ts +0 -22
  109. package/es/index.js +0 -25
  110. package/es/interpreter.d.ts +0 -217
  111. package/es/interpreter.js +0 -1488
  112. package/es/invoke.d.ts +0 -11
  113. package/es/invokeUtils.d.ts +0 -7
  114. package/es/invokeUtils.js +0 -40
  115. package/es/json.d.ts +0 -31
  116. package/es/json.js +0 -86
  117. package/es/mapState.js +0 -32
  118. package/es/match.d.ts +0 -9
  119. package/es/match.js +0 -34
  120. package/es/model.d.ts +0 -8
  121. package/es/model.js +0 -50
  122. package/es/model.types.d.ts +0 -56
  123. package/es/patterns.d.ts +0 -14
  124. package/es/patterns.js +0 -48
  125. package/es/registry.d.ts +0 -9
  126. package/es/registry.js +0 -19
  127. package/es/scheduler.d.ts +0 -17
  128. package/es/scheduler.js +0 -79
  129. package/es/schema.js +0 -6
  130. package/es/scxml.d.ts +0 -6
  131. package/es/serviceScope.d.ts +0 -4
  132. package/es/serviceScope.js +0 -16
  133. package/es/stateUtils.d.ts +0 -18
  134. package/es/stateUtils.js +0 -262
  135. package/es/typegenTypes.d.ts +0 -133
  136. package/es/types.d.ts +0 -1040
  137. package/es/types.js +0 -33
  138. package/es/utils.d.ts +0 -72
  139. package/es/utils.js +0 -622
  140. package/es/waitFor.d.ts +0 -34
  141. package/es/waitFor.js +0 -73
  142. package/lib/Actor.d.ts +0 -25
  143. package/lib/Actor.js +0 -108
  144. package/lib/Machine.d.ts +0 -12
  145. package/lib/Machine.js +0 -26
  146. package/lib/SimulatedClock.d.ts +0 -17
  147. package/lib/SimulatedClock.js +0 -85
  148. package/lib/State.d.ts +0 -123
  149. package/lib/State.js +0 -282
  150. package/lib/StateNode.d.ts +0 -282
  151. package/lib/StateNode.js +0 -1591
  152. package/lib/_virtual/_tslib.js +0 -85
  153. package/lib/actionTypes.d.ts +0 -20
  154. package/lib/actionTypes.js +0 -43
  155. package/lib/actions.d.ts +0 -157
  156. package/lib/actions.js +0 -662
  157. package/lib/behaviors.d.ts +0 -37
  158. package/lib/behaviors.js +0 -137
  159. package/lib/constants.d.ts +0 -6
  160. package/lib/constants.js +0 -13
  161. package/lib/each.d.ts +0 -4
  162. package/lib/each.js +0 -17
  163. package/lib/environment.d.ts +0 -2
  164. package/lib/environment.js +0 -7
  165. package/lib/index.d.ts +0 -22
  166. package/lib/index.js +0 -64
  167. package/lib/interpreter.d.ts +0 -217
  168. package/lib/interpreter.js +0 -1494
  169. package/lib/invoke.d.ts +0 -11
  170. package/lib/invoke.js +0 -20
  171. package/lib/invokeUtils.d.ts +0 -7
  172. package/lib/invokeUtils.js +0 -45
  173. package/lib/json.d.ts +0 -31
  174. package/lib/json.js +0 -94
  175. package/lib/mapState.d.ts +0 -4
  176. package/lib/mapState.js +0 -36
  177. package/lib/match.d.ts +0 -9
  178. package/lib/match.js +0 -38
  179. package/lib/model.d.ts +0 -8
  180. package/lib/model.js +0 -54
  181. package/lib/model.types.d.ts +0 -56
  182. package/lib/model.types.js +0 -2
  183. package/lib/patterns.d.ts +0 -14
  184. package/lib/patterns.js +0 -53
  185. package/lib/registry.d.ts +0 -9
  186. package/lib/registry.js +0 -23
  187. package/lib/scheduler.d.ts +0 -17
  188. package/lib/scheduler.js +0 -83
  189. package/lib/schema.d.ts +0 -3
  190. package/lib/schema.js +0 -11
  191. package/lib/scxml.d.ts +0 -6
  192. package/lib/scxml.js +0 -350
  193. package/lib/serviceScope.d.ts +0 -4
  194. package/lib/serviceScope.js +0 -21
  195. package/lib/stateUtils.d.ts +0 -18
  196. package/lib/stateUtils.js +0 -277
  197. package/lib/typegenTypes.js +0 -2
  198. package/lib/types.d.ts +0 -1040
  199. package/lib/types.js +0 -35
  200. package/lib/utils.d.ts +0 -72
  201. package/lib/utils.js +0 -669
  202. package/lib/waitFor.d.ts +0 -34
  203. package/lib/waitFor.js +0 -77
package/es/actions.js DELETED
@@ -1,630 +0,0 @@
1
- import { __assign, __spreadArray, __read, __values } from './_virtual/_tslib.js';
2
- import { SpecialTargets, ActionTypes } from './types.js';
3
- import { init, send as send$1, raise as raise$1, update, log as log$1, cancel as cancel$1, assign as assign$1, error as error$1, stop as stop$1, pure as pure$1, choose as choose$1 } from './actionTypes.js';
4
- import * as actionTypes from './actionTypes.js';
5
- export { actionTypes };
6
- import { toSCXMLEvent, isString, isFunction, toEventObject, getEventType, updateContext, flatten, isArray, toArray, toGuard, evaluateGuard, warn } from './utils.js';
7
- import { IS_PRODUCTION } from './environment.js';
8
-
9
- var initEvent = /*#__PURE__*/toSCXMLEvent({
10
- type: init
11
- });
12
- function getActionFunction(actionType, actionFunctionMap) {
13
- return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;
14
- }
15
- function toActionObject(action, actionFunctionMap) {
16
- var actionObject;
17
-
18
- if (isString(action) || typeof action === 'number') {
19
- var exec = getActionFunction(action, actionFunctionMap);
20
-
21
- if (isFunction(exec)) {
22
- actionObject = {
23
- type: action,
24
- exec: exec
25
- };
26
- } else if (exec) {
27
- actionObject = exec;
28
- } else {
29
- actionObject = {
30
- type: action,
31
- exec: undefined
32
- };
33
- }
34
- } else if (isFunction(action)) {
35
- actionObject = {
36
- // Convert action to string if unnamed
37
- type: action.name || action.toString(),
38
- exec: action
39
- };
40
- } else {
41
- var exec = getActionFunction(action.type, actionFunctionMap);
42
-
43
- if (isFunction(exec)) {
44
- actionObject = __assign(__assign({}, action), {
45
- exec: exec
46
- });
47
- } else if (exec) {
48
- var actionType = exec.type || action.type;
49
- actionObject = __assign(__assign(__assign({}, exec), action), {
50
- type: actionType
51
- });
52
- } else {
53
- actionObject = action;
54
- }
55
- }
56
-
57
- return actionObject;
58
- }
59
- var toActionObjects = function (action, actionFunctionMap) {
60
- if (!action) {
61
- return [];
62
- }
63
-
64
- var actions = isArray(action) ? action : [action];
65
- return actions.map(function (subAction) {
66
- return toActionObject(subAction, actionFunctionMap);
67
- });
68
- };
69
- function toActivityDefinition(action) {
70
- var actionObject = toActionObject(action);
71
- return __assign(__assign({
72
- id: isString(action) ? action : actionObject.id
73
- }, actionObject), {
74
- type: actionObject.type
75
- });
76
- }
77
- /**
78
- * Raises an event. This places the event in the internal event queue, so that
79
- * the event is immediately consumed by the machine in the current step.
80
- *
81
- * @param eventType The event to raise.
82
- */
83
-
84
- function raise(event) {
85
- if (!isString(event)) {
86
- return send(event, {
87
- to: SpecialTargets.Internal
88
- });
89
- }
90
-
91
- return {
92
- type: raise$1,
93
- event: event
94
- };
95
- }
96
- function resolveRaise(action) {
97
- return {
98
- type: raise$1,
99
- _event: toSCXMLEvent(action.event)
100
- };
101
- }
102
- /**
103
- * Sends an event. This returns an action that will be read by an interpreter to
104
- * send the event in the next step, after the current step is finished executing.
105
- *
106
- * @param event The event to send.
107
- * @param options Options to pass into the send event:
108
- * - `id` - The unique send event identifier (used with `cancel()`).
109
- * - `delay` - The number of milliseconds to delay the sending of the event.
110
- * - `to` - The target of this event (by default, the machine the event was sent from).
111
- */
112
-
113
- function send(event, options) {
114
- return {
115
- to: options ? options.to : undefined,
116
- type: send$1,
117
- event: isFunction(event) ? event : toEventObject(event),
118
- delay: options ? options.delay : undefined,
119
- id: options && options.id !== undefined ? options.id : isFunction(event) ? event.name : getEventType(event)
120
- };
121
- }
122
- function resolveSend(action, ctx, _event, delaysMap) {
123
- var meta = {
124
- _event: _event
125
- }; // TODO: helper function for resolving Expr
126
-
127
- var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);
128
- var resolvedDelay;
129
-
130
- if (isString(action.delay)) {
131
- var configDelay = delaysMap && delaysMap[action.delay];
132
- resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;
133
- } else {
134
- resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;
135
- }
136
-
137
- var resolvedTarget = isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;
138
- return __assign(__assign({}, action), {
139
- to: resolvedTarget,
140
- _event: resolvedEvent,
141
- event: resolvedEvent.data,
142
- delay: resolvedDelay
143
- });
144
- }
145
- /**
146
- * Sends an event to this machine's parent.
147
- *
148
- * @param event The event to send to the parent machine.
149
- * @param options Options to pass into the send event.
150
- */
151
-
152
- function sendParent(event, options) {
153
- return send(event, __assign(__assign({}, options), {
154
- to: SpecialTargets.Parent
155
- }));
156
- }
157
- /**
158
- * Sends an event to an actor.
159
- *
160
- * @param actor The `ActorRef` to send the event to.
161
- * @param event The event to send, or an expression that evaluates to the event to send
162
- * @param options Send action options
163
- * @returns An XState send action object
164
- */
165
-
166
- function sendTo(actor, event, options) {
167
- return send(event, __assign(__assign({}, options), {
168
- to: actor
169
- }));
170
- }
171
- /**
172
- * Sends an update event to this machine's parent.
173
- */
174
-
175
- function sendUpdate() {
176
- return sendParent(update);
177
- }
178
- /**
179
- * Sends an event back to the sender of the original event.
180
- *
181
- * @param event The event to send back to the sender
182
- * @param options Options to pass into the send event
183
- */
184
-
185
- function respond(event, options) {
186
- return send(event, __assign(__assign({}, options), {
187
- to: function (_, __, _a) {
188
- var _event = _a._event;
189
- return _event.origin; // TODO: handle when _event.origin is undefined
190
- }
191
- }));
192
- }
193
-
194
- var defaultLogExpr = function (context, event) {
195
- return {
196
- context: context,
197
- event: event
198
- };
199
- };
200
- /**
201
- *
202
- * @param expr The expression function to evaluate which will be logged.
203
- * Takes in 2 arguments:
204
- * - `ctx` - the current state context
205
- * - `event` - the event that caused this action to be executed.
206
- * @param label The label to give to the logged expression.
207
- */
208
-
209
-
210
- function log(expr, label) {
211
- if (expr === void 0) {
212
- expr = defaultLogExpr;
213
- }
214
-
215
- return {
216
- type: log$1,
217
- label: label,
218
- expr: expr
219
- };
220
- }
221
- var resolveLog = function (action, ctx, _event) {
222
- return __assign(__assign({}, action), {
223
- value: isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {
224
- _event: _event
225
- })
226
- });
227
- };
228
- /**
229
- * Cancels an in-flight `send(...)` action. A canceled sent action will not
230
- * be executed, nor will its event be sent, unless it has already been sent
231
- * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).
232
- *
233
- * @param sendId The `id` of the `send(...)` action to cancel.
234
- */
235
-
236
- var cancel = function (sendId) {
237
- return {
238
- type: cancel$1,
239
- sendId: sendId
240
- };
241
- };
242
- /**
243
- * Starts an activity.
244
- *
245
- * @param activity The activity to start.
246
- */
247
-
248
- function start(activity) {
249
- var activityDef = toActivityDefinition(activity);
250
- return {
251
- type: ActionTypes.Start,
252
- activity: activityDef,
253
- exec: undefined
254
- };
255
- }
256
- /**
257
- * Stops an activity.
258
- *
259
- * @param actorRef The activity to stop.
260
- */
261
-
262
- function stop(actorRef) {
263
- var activity = isFunction(actorRef) ? actorRef : toActivityDefinition(actorRef);
264
- return {
265
- type: ActionTypes.Stop,
266
- activity: activity,
267
- exec: undefined
268
- };
269
- }
270
- function resolveStop(action, context, _event) {
271
- var actorRefOrString = isFunction(action.activity) ? action.activity(context, _event.data) : action.activity;
272
- var resolvedActorRef = typeof actorRefOrString === 'string' ? {
273
- id: actorRefOrString
274
- } : actorRefOrString;
275
- var actionObject = {
276
- type: ActionTypes.Stop,
277
- activity: resolvedActorRef
278
- };
279
- return actionObject;
280
- }
281
- /**
282
- * Updates the current context of the machine.
283
- *
284
- * @param assignment An object that represents the partial context to update.
285
- */
286
-
287
- var assign = function (assignment) {
288
- return {
289
- type: assign$1,
290
- assignment: assignment
291
- };
292
- };
293
- function isActionObject(action) {
294
- return typeof action === 'object' && 'type' in action;
295
- }
296
- /**
297
- * Returns an event type that represents an implicit event that
298
- * is sent after the specified `delay`.
299
- *
300
- * @param delayRef The delay in milliseconds
301
- * @param id The state node ID where this event is handled
302
- */
303
-
304
- function after(delayRef, id) {
305
- var idSuffix = id ? "#".concat(id) : '';
306
- return "".concat(ActionTypes.After, "(").concat(delayRef, ")").concat(idSuffix);
307
- }
308
- /**
309
- * Returns an event that represents that a final state node
310
- * has been reached in the parent state node.
311
- *
312
- * @param id The final state node's parent state node `id`
313
- * @param data The data to pass into the event
314
- */
315
-
316
- function done(id, data) {
317
- var type = "".concat(ActionTypes.DoneState, ".").concat(id);
318
- var eventObject = {
319
- type: type,
320
- data: data
321
- };
322
-
323
- eventObject.toString = function () {
324
- return type;
325
- };
326
-
327
- return eventObject;
328
- }
329
- /**
330
- * Returns an event that represents that an invoked service has terminated.
331
- *
332
- * An invoked service is terminated when it has reached a top-level final state node,
333
- * but not when it is canceled.
334
- *
335
- * @param id The final state node ID
336
- * @param data The data to pass into the event
337
- */
338
-
339
- function doneInvoke(id, data) {
340
- var type = "".concat(ActionTypes.DoneInvoke, ".").concat(id);
341
- var eventObject = {
342
- type: type,
343
- data: data
344
- };
345
-
346
- eventObject.toString = function () {
347
- return type;
348
- };
349
-
350
- return eventObject;
351
- }
352
- function error(id, data) {
353
- var type = "".concat(ActionTypes.ErrorPlatform, ".").concat(id);
354
- var eventObject = {
355
- type: type,
356
- data: data
357
- };
358
-
359
- eventObject.toString = function () {
360
- return type;
361
- };
362
-
363
- return eventObject;
364
- }
365
- function pure(getActions) {
366
- return {
367
- type: ActionTypes.Pure,
368
- get: getActions
369
- };
370
- }
371
- /**
372
- * Forwards (sends) an event to a specified service.
373
- *
374
- * @param target The target service to forward the event to.
375
- * @param options Options to pass into the send action creator.
376
- */
377
-
378
- function forwardTo(target, options) {
379
- if (!IS_PRODUCTION && (!target || typeof target === 'function')) {
380
- var originalTarget_1 = target;
381
-
382
- target = function () {
383
- var args = [];
384
-
385
- for (var _i = 0; _i < arguments.length; _i++) {
386
- args[_i] = arguments[_i];
387
- }
388
-
389
- var resolvedTarget = typeof originalTarget_1 === 'function' ? originalTarget_1.apply(void 0, __spreadArray([], __read(args), false)) : originalTarget_1;
390
-
391
- if (!resolvedTarget) {
392
- throw new Error("Attempted to forward event to undefined actor. This risks an infinite loop in the sender.");
393
- }
394
-
395
- return resolvedTarget;
396
- };
397
- }
398
-
399
- return send(function (_, event) {
400
- return event;
401
- }, __assign(__assign({}, options), {
402
- to: target
403
- }));
404
- }
405
- /**
406
- * Escalates an error by sending it as an event to this machine's parent.
407
- *
408
- * @param errorData The error data to send, or the expression function that
409
- * takes in the `context`, `event`, and `meta`, and returns the error data to send.
410
- * @param options Options to pass into the send action creator.
411
- */
412
-
413
- function escalate(errorData, options) {
414
- return sendParent(function (context, event, meta) {
415
- return {
416
- type: error$1,
417
- data: isFunction(errorData) ? errorData(context, event, meta) : errorData
418
- };
419
- }, __assign(__assign({}, options), {
420
- to: SpecialTargets.Parent
421
- }));
422
- }
423
- function choose(conds) {
424
- return {
425
- type: ActionTypes.Choose,
426
- conds: conds
427
- };
428
- }
429
-
430
- var pluckAssigns = function (actionBlocks) {
431
- var e_1, _a;
432
-
433
- var assignActions = [];
434
-
435
- try {
436
- for (var actionBlocks_1 = __values(actionBlocks), actionBlocks_1_1 = actionBlocks_1.next(); !actionBlocks_1_1.done; actionBlocks_1_1 = actionBlocks_1.next()) {
437
- var block = actionBlocks_1_1.value;
438
- var i = 0;
439
-
440
- while (i < block.actions.length) {
441
- if (block.actions[i].type === assign$1) {
442
- assignActions.push(block.actions[i]);
443
- block.actions.splice(i, 1);
444
- continue;
445
- }
446
-
447
- i++;
448
- }
449
- }
450
- } catch (e_1_1) {
451
- e_1 = {
452
- error: e_1_1
453
- };
454
- } finally {
455
- try {
456
- if (actionBlocks_1_1 && !actionBlocks_1_1.done && (_a = actionBlocks_1.return)) _a.call(actionBlocks_1);
457
- } finally {
458
- if (e_1) throw e_1.error;
459
- }
460
- }
461
-
462
- return assignActions;
463
- };
464
-
465
- function resolveActions(machine, currentState, currentContext, _event, actionBlocks, predictableExec, preserveActionOrder) {
466
- if (preserveActionOrder === void 0) {
467
- preserveActionOrder = false;
468
- }
469
-
470
- var assignActions = preserveActionOrder ? [] : pluckAssigns(actionBlocks);
471
- var updatedContext = assignActions.length ? updateContext(currentContext, _event, assignActions, currentState) : currentContext;
472
- var preservedContexts = preserveActionOrder ? [currentContext] : undefined;
473
- var deferredToBlockEnd = [];
474
-
475
- function handleAction(blockType, actionObject) {
476
- var _a;
477
-
478
- switch (actionObject.type) {
479
- case raise$1:
480
- {
481
- return resolveRaise(actionObject);
482
- }
483
-
484
- case send$1:
485
- var sendAction = resolveSend(actionObject, updatedContext, _event, machine.options.delays); // TODO: fix ActionTypes.Init
486
-
487
- if (!IS_PRODUCTION) {
488
- // warn after resolving as we can create better contextual message here
489
- warn(!isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length
490
- "No delay reference for delay expression '".concat(actionObject.delay, "' was found on machine '").concat(machine.id, "'"));
491
- }
492
-
493
- if (predictableExec && sendAction.to !== SpecialTargets.Internal) {
494
- if (blockType === 'entry') {
495
- deferredToBlockEnd.push(sendAction);
496
- } else {
497
- predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(sendAction, updatedContext, _event);
498
- }
499
- }
500
-
501
- return sendAction;
502
-
503
- case log$1:
504
- {
505
- var resolved = resolveLog(actionObject, updatedContext, _event);
506
- predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(resolved, updatedContext, _event);
507
- return resolved;
508
- }
509
-
510
- case choose$1:
511
- {
512
- var chooseAction = actionObject;
513
- var matchedActions = (_a = chooseAction.conds.find(function (condition) {
514
- var guard = toGuard(condition.cond, machine.options.guards);
515
- return !guard || evaluateGuard(machine, guard, updatedContext, _event, !predictableExec ? currentState : undefined);
516
- })) === null || _a === void 0 ? void 0 : _a.actions;
517
-
518
- if (!matchedActions) {
519
- return [];
520
- }
521
-
522
- var _b = __read(resolveActions(machine, currentState, updatedContext, _event, [{
523
- type: blockType,
524
- actions: toActionObjects(toArray(matchedActions), machine.options.actions)
525
- }], predictableExec, preserveActionOrder), 2),
526
- resolvedActionsFromChoose = _b[0],
527
- resolvedContextFromChoose = _b[1];
528
-
529
- updatedContext = resolvedContextFromChoose;
530
- preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);
531
- return resolvedActionsFromChoose;
532
- }
533
-
534
- case pure$1:
535
- {
536
- var matchedActions = actionObject.get(updatedContext, _event.data);
537
-
538
- if (!matchedActions) {
539
- return [];
540
- }
541
-
542
- var _c = __read(resolveActions(machine, currentState, updatedContext, _event, [{
543
- type: blockType,
544
- actions: toActionObjects(toArray(matchedActions), machine.options.actions)
545
- }], predictableExec, preserveActionOrder), 2),
546
- resolvedActionsFromPure = _c[0],
547
- resolvedContext = _c[1];
548
-
549
- updatedContext = resolvedContext;
550
- preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);
551
- return resolvedActionsFromPure;
552
- }
553
-
554
- case stop$1:
555
- {
556
- var resolved = resolveStop(actionObject, updatedContext, _event);
557
- predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(resolved, currentContext, _event);
558
- return resolved;
559
- }
560
-
561
- case assign$1:
562
- {
563
- updatedContext = updateContext(updatedContext, _event, [actionObject], !predictableExec ? currentState : undefined);
564
- preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);
565
- break;
566
- }
567
-
568
- default:
569
- var resolvedActionObject = toActionObject(actionObject, machine.options.actions);
570
- var exec_1 = resolvedActionObject.exec;
571
-
572
- if (predictableExec) {
573
- predictableExec(resolvedActionObject, updatedContext, _event);
574
- } else if (exec_1 && preservedContexts) {
575
- var contextIndex_1 = preservedContexts.length - 1;
576
- resolvedActionObject = __assign(__assign({}, resolvedActionObject), {
577
- exec: function (_ctx) {
578
- var args = [];
579
-
580
- for (var _i = 1; _i < arguments.length; _i++) {
581
- args[_i - 1] = arguments[_i];
582
- }
583
-
584
- exec_1.apply(void 0, __spreadArray([preservedContexts[contextIndex_1]], __read(args), false));
585
- }
586
- });
587
- }
588
-
589
- return resolvedActionObject;
590
- }
591
- }
592
-
593
- function processBlock(block) {
594
- var e_2, _a;
595
-
596
- var resolvedActions = [];
597
-
598
- try {
599
- for (var _b = __values(block.actions), _c = _b.next(); !_c.done; _c = _b.next()) {
600
- var action = _c.value;
601
- var resolved = handleAction(block.type, action);
602
-
603
- if (resolved) {
604
- resolvedActions = resolvedActions.concat(resolved);
605
- }
606
- }
607
- } catch (e_2_1) {
608
- e_2 = {
609
- error: e_2_1
610
- };
611
- } finally {
612
- try {
613
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
614
- } finally {
615
- if (e_2) throw e_2.error;
616
- }
617
- }
618
-
619
- deferredToBlockEnd.forEach(function (action) {
620
- predictableExec(action, updatedContext, _event);
621
- });
622
- deferredToBlockEnd.length = 0;
623
- return resolvedActions;
624
- }
625
-
626
- var resolvedActions = flatten(actionBlocks.map(processBlock));
627
- return [resolvedActions, updatedContext];
628
- }
629
-
630
- export { after, assign, cancel, choose, done, doneInvoke, error, escalate, forwardTo, getActionFunction, initEvent, isActionObject, log, pure, raise, resolveActions, resolveLog, resolveRaise, resolveSend, resolveStop, respond, send, sendParent, sendTo, sendUpdate, start, stop, toActionObject, toActionObjects, toActivityDefinition };
package/es/behaviors.d.ts DELETED
@@ -1,37 +0,0 @@
1
- import { ActorContext, ActorRef, Behavior, EventObject } from './types';
2
- /**
3
- * Returns an actor behavior from a reducer and its initial state.
4
- *
5
- * @param transition The pure reducer that returns the next state given the current state and event.
6
- * @param initialState The initial state of the reducer.
7
- * @returns An actor behavior
8
- */
9
- export declare function fromReducer<TState, TEvent extends EventObject>(transition: (state: TState, event: TEvent, actorContext: ActorContext<TEvent, TState>) => TState, initialState: TState): Behavior<TEvent, TState>;
10
- declare type PromiseEvents<T> = {
11
- type: 'fulfill';
12
- data: T;
13
- } | {
14
- type: 'reject';
15
- error: unknown;
16
- };
17
- declare type PromiseState<T> = {
18
- status: 'pending';
19
- data: undefined;
20
- error: undefined;
21
- } | {
22
- status: 'fulfilled';
23
- data: T;
24
- error: undefined;
25
- } | {
26
- status: 'rejected';
27
- data: undefined;
28
- error: any;
29
- };
30
- export declare function fromPromise<T>(promiseFn: () => Promise<T>): Behavior<PromiseEvents<T>, PromiseState<T>>;
31
- interface SpawnBehaviorOptions {
32
- id?: string;
33
- parent?: ActorRef<any>;
34
- }
35
- export declare function spawnBehavior<TEvent extends EventObject, TEmitted>(behavior: Behavior<TEvent, TEmitted>, options?: SpawnBehaviorOptions): ActorRef<TEvent, TEmitted>;
36
- export {};
37
- //# sourceMappingURL=behaviors.d.ts.map