foldkit 0.150.0 → 0.151.0

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 (97) hide show
  1. package/README.md +13 -13
  2. package/dist/asyncData/asyncData.d.ts +3 -4
  3. package/dist/asyncData/asyncData.d.ts.map +1 -1
  4. package/dist/asyncData/asyncData.js +3 -4
  5. package/dist/command/index.d.ts +14 -13
  6. package/dist/command/index.d.ts.map +1 -1
  7. package/dist/command/index.js +13 -12
  8. package/dist/experimental/machine/machine.d.ts +9 -2
  9. package/dist/experimental/machine/machine.d.ts.map +1 -1
  10. package/dist/experimental/machine/machine.js +3 -3
  11. package/dist/experimental/server/server.d.ts +6 -5
  12. package/dist/experimental/server/server.d.ts.map +1 -1
  13. package/dist/experimental/server/server.js +1 -2
  14. package/dist/html/submodel.d.ts +4 -4
  15. package/dist/html/submodel.d.ts.map +1 -1
  16. package/dist/runtime/runtime.d.ts +11 -47
  17. package/dist/runtime/runtime.d.ts.map +1 -1
  18. package/dist/runtime/runtime.js +9 -5
  19. package/dist/test/apps/attributes.d.ts +11 -4
  20. package/dist/test/apps/attributes.d.ts.map +1 -1
  21. package/dist/test/apps/attributes.js +1 -1
  22. package/dist/test/apps/bubbling.d.ts +13 -4
  23. package/dist/test/apps/bubbling.d.ts.map +1 -1
  24. package/dist/test/apps/bubbling.js +8 -6
  25. package/dist/test/apps/colorPicker.d.ts +11 -3
  26. package/dist/test/apps/colorPicker.d.ts.map +1 -1
  27. package/dist/test/apps/colorPicker.js +3 -1
  28. package/dist/test/apps/contextMenu.d.ts +16 -8
  29. package/dist/test/apps/contextMenu.d.ts.map +1 -1
  30. package/dist/test/apps/contextMenu.js +3 -4
  31. package/dist/test/apps/counter.d.ts +10 -10
  32. package/dist/test/apps/counter.d.ts.map +1 -1
  33. package/dist/test/apps/counter.js +26 -20
  34. package/dist/test/apps/crashOnRender.d.ts +12 -12
  35. package/dist/test/apps/crashOnRender.d.ts.map +1 -1
  36. package/dist/test/apps/crashOnRender.js +6 -7
  37. package/dist/test/apps/drafts.d.ts +10 -10
  38. package/dist/test/apps/drafts.d.ts.map +1 -1
  39. package/dist/test/apps/drafts.js +7 -5
  40. package/dist/test/apps/feedSocket.d.ts +19 -4
  41. package/dist/test/apps/feedSocket.d.ts.map +1 -1
  42. package/dist/test/apps/feedSocket.js +12 -7
  43. package/dist/test/apps/fileUpload.d.ts +11 -3
  44. package/dist/test/apps/fileUpload.d.ts.map +1 -1
  45. package/dist/test/apps/fileUpload.js +3 -1
  46. package/dist/test/apps/formChild.d.ts +48 -3
  47. package/dist/test/apps/formChild.d.ts.map +1 -1
  48. package/dist/test/apps/formChild.js +33 -38
  49. package/dist/test/apps/interactions.d.ts +25 -7
  50. package/dist/test/apps/interactions.d.ts.map +1 -1
  51. package/dist/test/apps/interactions.js +20 -10
  52. package/dist/test/apps/keypress.d.ts +15 -4
  53. package/dist/test/apps/keypress.d.ts.map +1 -1
  54. package/dist/test/apps/keypress.js +13 -5
  55. package/dist/test/apps/login.d.ts +13 -13
  56. package/dist/test/apps/login.d.ts.map +1 -1
  57. package/dist/test/apps/login.js +28 -18
  58. package/dist/test/apps/logoutButton.d.ts +15 -6
  59. package/dist/test/apps/logoutButton.d.ts.map +1 -1
  60. package/dist/test/apps/logoutButton.js +6 -3
  61. package/dist/test/apps/mountPanel.d.ts +25 -5
  62. package/dist/test/apps/mountPanel.d.ts.map +1 -1
  63. package/dist/test/apps/mountPanel.js +14 -10
  64. package/dist/test/apps/multiRole.d.ts +10 -3
  65. package/dist/test/apps/multiRole.d.ts.map +1 -1
  66. package/dist/test/apps/multiRole.js +5 -2
  67. package/dist/test/apps/pointer.d.ts +16 -5
  68. package/dist/test/apps/pointer.d.ts.map +1 -1
  69. package/dist/test/apps/pointer.js +6 -8
  70. package/dist/test/apps/resumeUpload.d.ts +25 -4
  71. package/dist/test/apps/resumeUpload.d.ts.map +1 -1
  72. package/dist/test/apps/resumeUpload.js +16 -15
  73. package/dist/test/apps/scorePanel.d.ts +10 -3
  74. package/dist/test/apps/scorePanel.d.ts.map +1 -1
  75. package/dist/test/apps/scorePanel.js +3 -1
  76. package/dist/test/apps/selectiveKeys.d.ts +14 -3
  77. package/dist/test/apps/selectiveKeys.d.ts.map +1 -1
  78. package/dist/test/apps/selectiveKeys.js +7 -3
  79. package/dist/test/apps/uploads.d.ts +13 -13
  80. package/dist/test/apps/uploads.d.ts.map +1 -1
  81. package/dist/test/apps/uploads.js +23 -24
  82. package/dist/test/internal.d.ts +18 -3
  83. package/dist/test/internal.d.ts.map +1 -1
  84. package/dist/test/internal.js +8 -16
  85. package/dist/test/scene.d.ts +16 -19
  86. package/dist/test/scene.d.ts.map +1 -1
  87. package/dist/test/scene.js +11 -27
  88. package/dist/test/story.d.ts +16 -8
  89. package/dist/test/story.d.ts.map +1 -1
  90. package/dist/test/story.js +12 -17
  91. package/dist/update/public.d.ts +2 -2
  92. package/dist/update/public.d.ts.map +1 -1
  93. package/dist/update/public.js +1 -1
  94. package/dist/update/update.d.ts +143 -69
  95. package/dist/update/update.d.ts.map +1 -1
  96. package/dist/update/update.js +72 -42
  97. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
- import { Effect, Option, Schema as S } from 'effect';
1
+ import { Effect, Number, Option, Schema as S } from 'effect';
2
2
  import { defineMessageUnion } from '../../message/index.js';
3
3
  import * as Mount from '../../mount/index.js';
4
+ import { evo } from '../../struct/index.js';
4
5
  // MODEL
5
6
  export const Model = S.Struct({
6
7
  isOpen: S.Boolean,
@@ -39,15 +40,18 @@ export const initialModel = {
39
40
  };
40
41
  // UPDATE
41
42
  export const update = (model, message) => Message.match(message, {
42
- ClickedToggle: () => [{ ...model, isOpen: !model.isOpen }, []],
43
- MeasuredPanel: ({ width }) => [
44
- { ...model, measuredWidth: Option.some(width) },
45
- [],
46
- ],
47
- CompletedFocusButton: () => [model, []],
48
- FailedMountSidebar: () => [model, []],
49
- ClickedIncrement: () => [{ ...model, count: model.count + 1 }, []],
50
- ScrolledTo: () => [model, []],
43
+ ClickedToggle: () => ({
44
+ model: evo(model, { isOpen: isOpen => !isOpen }),
45
+ }),
46
+ MeasuredPanel: ({ width }) => ({
47
+ model: evo(model, { measuredWidth: () => Option.some(width) }),
48
+ }),
49
+ CompletedFocusButton: () => ({ model }),
50
+ FailedMountSidebar: () => ({ model }),
51
+ ClickedIncrement: () => ({
52
+ model: evo(model, { count: Number.increment }),
53
+ }),
54
+ ScrolledTo: () => ({ model }),
51
55
  });
52
56
  // VIEW
53
57
  export const view = (model, h) => {
@@ -1,5 +1,6 @@
1
1
  import { Schema as S } from 'effect';
2
2
  import type { Html, HtmlBuilder } from '../../html/index.js';
3
+ import type * as Update from '../../update/index.js';
3
4
  export declare const Model: S.Struct<{
4
5
  readonly clicks: S.Number;
5
6
  }>;
@@ -9,8 +10,14 @@ export declare const Message: import("../../schema/index.js").MessageUnion<{
9
10
  }>;
10
11
  export type Message = typeof Message.Type;
11
12
  export declare const initialModel: Model;
12
- export declare const update: (model: Model, message: Message) => readonly [{
13
- readonly clicks: number;
14
- }, readonly never[]];
13
+ export declare const update: (model: Model, message: Message) => Readonly<{
14
+ model: {
15
+ readonly clicks: number;
16
+ };
17
+ commands?: Update.Commands<{
18
+ readonly _tag: "ClickedFallback";
19
+ }, never>;
20
+ outMessage?: never;
21
+ }>;
15
22
  export declare const view: (model: Model, h: HtmlBuilder<Message>) => Html;
16
23
  //# sourceMappingURL=multiRole.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiRole.d.ts","sourceRoot":"","sources":["../../../src/test/apps/multiRole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAK5D,eAAO,MAAM,KAAK;;EAAiC,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;EAElB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAAqB,CAAA;AAIhD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;oBAGjD,CAAA;AAIJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAU5D,CAAA"}
1
+ {"version":3,"file":"multiRole.d.ts","sourceRoot":"","sources":["../../../src/test/apps/multiRole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAG5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;EAAiC,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;EAElB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAAqB,CAAA;AAIhD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;EAKjD,CAAA;AAIJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAU5D,CAAA"}
@@ -1,5 +1,6 @@
1
- import { Schema as S } from 'effect';
1
+ import { Number, Schema as S } from 'effect';
2
2
  import { defineMessageUnion } from '../../message/index.js';
3
+ import { evo } from '../../struct/index.js';
3
4
  // MODEL
4
5
  export const Model = S.Struct({ clicks: S.Number });
5
6
  // MESSAGE
@@ -10,7 +11,9 @@ export const Message = defineMessageUnion({
10
11
  export const initialModel = { clicks: 0 };
11
12
  // UPDATE
12
13
  export const update = (model, message) => Message.match(message, {
13
- ClickedFallback: () => [{ ...model, clicks: model.clicks + 1 }, []],
14
+ ClickedFallback: () => ({
15
+ model: evo(model, { clicks: Number.increment }),
16
+ }),
14
17
  });
15
18
  // VIEW
16
19
  export const view = (model, h) => {
@@ -1,5 +1,6 @@
1
1
  import { Schema as S } from 'effect';
2
2
  import type { Html, HtmlBuilder } from '../../html/index.js';
3
+ import type * as Update from '../../update/index.js';
3
4
  export declare const Model: S.Struct<{
4
5
  readonly pointerDownCount: S.Number;
5
6
  readonly pointerUpCount: S.Number;
@@ -16,11 +17,21 @@ declare const Message: import("../../schema/index.js").MessageUnion<{
16
17
  }>;
17
18
  type Message = typeof Message.Type;
18
19
  export declare const initialModel: Model;
19
- export declare const update: (model: Model, message: Message) => readonly [{
20
- readonly pointerDownCount: number;
21
- readonly pointerUpCount: number;
22
- readonly lastPointerType: string;
23
- }, readonly never[]];
20
+ export declare const update: (model: Model, message: Message) => Readonly<{
21
+ model: {
22
+ readonly pointerDownCount: number;
23
+ readonly pointerUpCount: number;
24
+ readonly lastPointerType: string;
25
+ };
26
+ commands?: Update.Commands<{
27
+ readonly _tag: "PressedPointerDown";
28
+ readonly pointerType: string;
29
+ } | {
30
+ readonly _tag: "ReleasedPointerUp";
31
+ readonly pointerType: string;
32
+ }, never>;
33
+ outMessage?: never;
34
+ }>;
24
35
  export declare const view: (model: Model, h: HtmlBuilder<Message>) => Html;
25
36
  export {};
26
37
  //# sourceMappingURL=pointer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/test/apps/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAK5D,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,QAAA,MAAM,OAAO;;;;;;;EAGX,CAAA;AACF,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;oBAkBjD,CAAA;AAIJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IA4B5D,CAAA"}
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/test/apps/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,QAAA,MAAM,OAAO;;;;;;;EAGX,CAAA;AACF,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;;;EAgBjD,CAAA;AAIJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IA4B5D,CAAA"}
@@ -19,22 +19,20 @@ export const initialModel = {
19
19
  };
20
20
  // UPDATE
21
21
  export const update = (model, message) => Message.match(message, {
22
- PressedPointerDown: ({ pointerType }) => [
23
- {
22
+ PressedPointerDown: ({ pointerType }) => ({
23
+ model: {
24
24
  ...model,
25
25
  pointerDownCount: model.pointerDownCount + 1,
26
26
  lastPointerType: pointerType,
27
27
  },
28
- [],
29
- ],
30
- ReleasedPointerUp: ({ pointerType }) => [
31
- {
28
+ }),
29
+ ReleasedPointerUp: ({ pointerType }) => ({
30
+ model: {
32
31
  ...model,
33
32
  pointerUpCount: model.pointerUpCount + 1,
34
33
  lastPointerType: pointerType,
35
34
  },
36
- [],
37
- ],
35
+ }),
38
36
  });
39
37
  // VIEW
40
38
  export const view = (model, h) => {
@@ -1,6 +1,7 @@
1
- import { Effect, Schema as S } from 'effect';
1
+ import { Effect, Option, Schema as S } from 'effect';
2
2
  import * as Command from '../../command/index.js';
3
3
  import type { Html, HtmlBuilder } from '../../html/index.js';
4
+ import type * as Update from '../../update/index.js';
4
5
  export declare const Model: S.Struct<{
5
6
  readonly maybeResume: S.Option<S.Schema<File>>;
6
7
  readonly maybePreviewDataUrl: S.Option<S.String>;
@@ -35,8 +36,28 @@ export declare const ReadResumePreview: Command.CommandDefinitionWithArgs<"ReadR
35
36
  readonly _tag: "FailedReadPreview";
36
37
  }, never, never>>;
37
38
  export declare const initialModel: Model;
38
- type UpdateReturn = readonly [Model, ReadonlyArray<Command.Command<Message>>];
39
- export declare const update: (model: Model, message: Message) => UpdateReturn;
39
+ export declare const update: (model: Model, message: Message) => Readonly<{
40
+ model: {
41
+ readonly maybeResume: Option.Option<File>;
42
+ readonly maybePreviewDataUrl: Option.Option<string>;
43
+ readonly readStatus: "Idle" | "Failed" | "Reading";
44
+ };
45
+ commands?: Update.Commands<{
46
+ readonly _tag: "ClickedChooseResume";
47
+ } | {
48
+ readonly _tag: "CompletedSelectResume";
49
+ readonly file: File;
50
+ } | {
51
+ readonly _tag: "CancelledSelectResume";
52
+ } | {
53
+ readonly _tag: "SucceededReadPreview";
54
+ readonly dataUrl: string;
55
+ } | {
56
+ readonly _tag: "FailedReadPreview";
57
+ } | {
58
+ readonly _tag: "ClickedRemoveResume";
59
+ }, never>;
60
+ outMessage?: never;
61
+ }>;
40
62
  export declare const view: (model: Model, h: HtmlBuilder<Message>) => Html;
41
- export {};
42
63
  //# sourceMappingURL=resumeUpload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resumeUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/resumeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAM5D,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;;;;;;;;EAOlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;;;iBAUvB,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;iBAQ5B,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,KAAK,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,iBA4BjD,CAAA;AAsBJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAsB5D,CAAA"}
1
+ {"version":3,"file":"resumeUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/resumeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAG5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;;;;;;;;EAOlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;;;iBAUvB,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;iBAQ5B,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;EA4BjD,CAAA;AAsBJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAsB5D,CAAA"}
@@ -37,33 +37,34 @@ export const initialModel = {
37
37
  maybePreviewDataUrl: Option.none(),
38
38
  readStatus: 'Idle',
39
39
  };
40
+ // UPDATE
40
41
  export const update = (model, message) => Message.match(message, {
41
- ClickedChooseResume: () => [model, [SelectResume()]],
42
- CompletedSelectResume: ({ file }) => [
43
- evo(model, {
42
+ ClickedChooseResume: () => ({ model, commands: [SelectResume()] }),
43
+ CompletedSelectResume: ({ file }) => ({
44
+ model: evo(model, {
44
45
  maybeResume: () => Option.some(file),
45
46
  maybePreviewDataUrl: () => Option.none(),
46
47
  readStatus: () => 'Reading',
47
48
  }),
48
- [ReadResumePreview({ file })],
49
- ],
50
- CancelledSelectResume: () => [model, []],
51
- SucceededReadPreview: ({ dataUrl }) => [
52
- evo(model, {
49
+ commands: [ReadResumePreview({ file })],
50
+ }),
51
+ CancelledSelectResume: () => ({ model }),
52
+ SucceededReadPreview: ({ dataUrl }) => ({
53
+ model: evo(model, {
53
54
  maybePreviewDataUrl: () => Option.some(dataUrl),
54
55
  readStatus: () => 'Idle',
55
56
  }),
56
- [],
57
- ],
58
- FailedReadPreview: () => [evo(model, { readStatus: () => 'Failed' }), []],
59
- ClickedRemoveResume: () => [
60
- evo(model, {
57
+ }),
58
+ FailedReadPreview: () => ({
59
+ model: evo(model, { readStatus: () => 'Failed' }),
60
+ }),
61
+ ClickedRemoveResume: () => ({
62
+ model: evo(model, {
61
63
  maybeResume: () => Option.none(),
62
64
  maybePreviewDataUrl: () => Option.none(),
63
65
  readStatus: () => 'Idle',
64
66
  }),
65
- [],
66
- ],
67
+ }),
67
68
  });
68
69
  // VIEW
69
70
  const previewView = (model, h) => {
@@ -1,5 +1,6 @@
1
1
  import { Schema as S } from 'effect';
2
2
  import type { Html } from '../../html/index.js';
3
+ import type * as Update from '../../update/index.js';
3
4
  export declare const Model: S.Struct<{
4
5
  readonly score: S.Number;
5
6
  }>;
@@ -11,9 +12,15 @@ export type Message = typeof Message.Type;
11
12
  export declare const initialModel: {
12
13
  readonly score: number;
13
14
  };
14
- export declare const update: (model: Model, message: Message) => readonly [{
15
- readonly score: number;
16
- }, readonly never[]];
15
+ export declare const update: (model: Model, message: Message) => Readonly<{
16
+ model: {
17
+ readonly score: number;
18
+ };
19
+ commands?: Update.Commands<{
20
+ readonly _tag: "ClickedIncrement";
21
+ }, never>;
22
+ outMessage?: never;
23
+ }>;
17
24
  export type ViewInputs = Readonly<{
18
25
  label: string;
19
26
  toView: (content: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"scorePanel.d.ts","sourceRoot":"","sources":["../../../src/test/apps/scorePanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAO/C,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;EAElB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;CAA2B,CAAA;AAIpD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;oBAGjD,CAAA;AAIJ,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAA;CACtE,CAAC,CAAA;AAEF,eAAO,MAAM,IAAI;;;;;WAJR,MAAM;YACL,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI;GAetE,CAAA"}
1
+ {"version":3,"file":"scorePanel.d.ts","sourceRoot":"","sources":["../../../src/test/apps/scorePanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI/C,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;EAElB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;CAA2B,CAAA;AAIpD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;EAKjD,CAAA;AAIJ,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAA;CACtE,CAAC,CAAA;AAEF,eAAO,MAAM,IAAI;;;;;WAJR,MAAM;YACL,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI;GAetE,CAAA"}
@@ -12,7 +12,9 @@ export const Message = defineMessageUnion({
12
12
  export const initialModel = Model.make({ score: 0 });
13
13
  // UPDATE
14
14
  export const update = (model, message) => Message.match(message, {
15
- ClickedIncrement: () => [evo(model, { score: Number.increment }), []],
15
+ ClickedIncrement: () => ({
16
+ model: evo(model, { score: Number.increment }),
17
+ }),
16
18
  });
17
19
  export const view = defineView((model, viewInputs, h) => h.div([], [
18
20
  viewInputs.toView({ label: viewInputs.label, score: model.score }),
@@ -1,6 +1,7 @@
1
1
  import { Effect, Schema as S } from 'effect';
2
2
  import * as Command from '../../command/index.js';
3
3
  import type { Html, HtmlBuilder } from '../../html/index.js';
4
+ import type * as Update from '../../update/index.js';
4
5
  export declare const Model: S.Struct<{
5
6
  readonly commits: S.Number;
6
7
  }>;
@@ -17,10 +18,20 @@ export declare const RecordReset: Command.CommandDefinitionNoArgs<"RecordReset",
17
18
  readonly _tag: "CompletedRecordReset";
18
19
  }, never, never>>;
19
20
  export declare const initialModel: Model;
20
- type UpdateReturn = readonly [Model, ReadonlyArray<Command.Command<Message>>];
21
- export declare const update: (model: Model, message: Message) => UpdateReturn;
21
+ export declare const update: (model: Model, message: Message) => Readonly<{
22
+ model: {
23
+ readonly commits: number;
24
+ };
25
+ commands?: Update.Commands<{
26
+ readonly _tag: "Committed";
27
+ } | {
28
+ readonly _tag: "Reset";
29
+ } | {
30
+ readonly _tag: "CompletedRecordReset";
31
+ }, never>;
32
+ outMessage?: never;
33
+ }>;
22
34
  export declare const appId = "selective-keys";
23
35
  export declare const resetId = "selective-keys-reset";
24
36
  export declare const view: (model: Model, h: HtmlBuilder<Message>) => Html;
25
- export {};
26
37
  //# sourceMappingURL=selectiveKeys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectiveKeys.d.ts","sourceRoot":"","sources":["../../../src/test/apps/selectiveKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAM5D,eAAO,MAAM,KAAK;;EAEhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;EAIlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC;mEACmE;AACnE,eAAO,MAAM,WAAW;;iBAGtB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAAsB,CAAA;AAIjD,KAAK,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,iBAKjD,CAAA;AAIJ,eAAO,MAAM,KAAK,mBAAmB,CAAA;AACrC,eAAO,MAAM,OAAO,yBAAyB,CAAA;AAE7C,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAY1D,CAAA"}
1
+ {"version":3,"file":"selectiveKeys.d.ts","sourceRoot":"","sources":["../../../src/test/apps/selectiveKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE5D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAG5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;EAEhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;EAIlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC;mEACmE;AACnE,eAAO,MAAM,WAAW;;iBAGtB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAAsB,CAAA;AAIjD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;EAQjD,CAAA;AAIJ,eAAO,MAAM,KAAK,mBAAmB,CAAA;AACrC,eAAO,MAAM,OAAO,yBAAyB,CAAA;AAE7C,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAY1D,CAAA"}
@@ -20,10 +20,14 @@ export const RecordReset = Command.define('RecordReset', {
20
20
  });
21
21
  // INIT
22
22
  export const initialModel = { commits: 0 };
23
+ // UPDATE
23
24
  export const update = (model, message) => Message.match(message, {
24
- Committed: () => [evo(model, { commits: Number.increment }), []],
25
- Reset: () => [evo(model, { commits: () => 0 }), [RecordReset()]],
26
- CompletedRecordReset: () => [model, []],
25
+ Committed: () => ({ model: evo(model, { commits: Number.increment }) }),
26
+ Reset: () => ({
27
+ model: evo(model, { commits: () => 0 }),
28
+ commands: [RecordReset()],
29
+ }),
30
+ CompletedRecordReset: () => ({ model }),
27
31
  });
28
32
  // VIEW
29
33
  export const appId = 'selective-keys';
@@ -1,6 +1,7 @@
1
1
  import { Effect, Schema as S } from 'effect';
2
2
  import * as Interruptible from '../../command/interruptible/index.js';
3
3
  import type { Document, HtmlBuilder } from '../../html/index.js';
4
+ import type * as Update from '../../update/index.js';
4
5
  export declare const UploadStatus: S.Literals<readonly ["Uploading", "Done", "Cancelled", "Failed"]>;
5
6
  export type UploadStatus = typeof UploadStatus.Type;
6
7
  export declare const Upload: S.Struct<{
@@ -65,17 +66,15 @@ export declare const CancelUploadFile: ({ uploadId }: UploadFileArgs) => Readonl
65
66
  }, never, never>;
66
67
  }>;
67
68
  export declare const initialModel: Model;
68
- export declare const update: (model: Model, message: Message) => readonly [{
69
- readonly uploadId: number;
70
- readonly uploads: readonly {
71
- readonly id: number;
72
- readonly status: "Failed" | "Uploading" | "Done" | "Cancelled";
73
- }[];
74
- }, readonly Readonly<{
75
- name: string;
76
- args?: Record<string, unknown>;
77
- key?: string;
78
- effect: Effect.Effect<{
69
+ export declare const update: (model: Model, message: Message) => Readonly<{
70
+ model: {
71
+ readonly uploadId: number;
72
+ readonly uploads: readonly {
73
+ readonly id: number;
74
+ readonly status: "Failed" | "Uploading" | "Done" | "Cancelled";
75
+ }[];
76
+ };
77
+ commands?: Update.Commands<{
79
78
  readonly _tag: "ClickedStartUpload";
80
79
  } | {
81
80
  readonly _tag: "ClickedRetryUpload";
@@ -97,7 +96,8 @@ export declare const update: (model: Model, message: Message) => readonly [{
97
96
  } | {
98
97
  readonly _tag: "NotFound";
99
98
  };
100
- }, never, never>;
101
- }>[]];
99
+ }, never>;
100
+ outMessage?: never;
101
+ }>;
102
102
  export declare const view: (model: Model, h: HtmlBuilder<Message>) => Document;
103
103
  //# sourceMappingURL=uploads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/test/apps/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGvE,OAAO,KAAK,aAAa,MAAM,sCAAsC,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMhE,eAAO,MAAM,YAAY,mEAKvB,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,MAAM;;;EAGjB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,KAAK;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;EAUlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,cAAc;;EAAmC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,UAAU;;;;;;;iBASrB,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc,cAAc;;;;;;;;;;;;;;;EAG1D,CAAA;AAIH,eAAO,MAAM,YAAY,EAAE,KAAoC,CAAA;AAS/D,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+ClD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,QA6B5D,CAAA"}
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/test/apps/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGvE,OAAO,KAAK,aAAa,MAAM,sCAAsC,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGhE,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,YAAY,mEAKvB,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,MAAM;;;EAGjB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,KAAK;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;EAUlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,cAAc;;EAAmC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,UAAU;;;;;;;iBASrB,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc,cAAc;;;;;;;;;;;;;;;EAG1D,CAAA;AAIH,eAAO,MAAM,YAAY,EAAE,KAAoC,CAAA;AAW/D,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCjD,CAAA;AAIJ,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,QA6B5D,CAAA"}
@@ -52,36 +52,35 @@ export const update = (model, message) => Message.match(message, {
52
52
  id: model.uploadId,
53
53
  status: 'Uploading',
54
54
  };
55
- return [
56
- evo(model, {
55
+ return {
56
+ model: evo(model, {
57
57
  uploadId: Number.increment,
58
58
  uploads: Array.append(startedUpload),
59
59
  }),
60
- [UploadFile({ uploadId: model.uploadId })],
61
- ];
60
+ commands: [UploadFile({ uploadId: model.uploadId })],
61
+ };
62
62
  },
63
- ClickedRetryUpload: ({ uploadId }) => [
64
- evo(model, { uploads: setStatusById(uploadId, 'Uploading') }),
65
- [UploadFile({ uploadId })],
66
- ],
67
- ClickedCancelUpload: ({ uploadId }) => [
63
+ ClickedRetryUpload: ({ uploadId }) => ({
64
+ model: evo(model, { uploads: setStatusById(uploadId, 'Uploading') }),
65
+ commands: [UploadFile({ uploadId })],
66
+ }),
67
+ ClickedCancelUpload: ({ uploadId }) => ({
68
68
  model,
69
- [CancelUploadFile({ uploadId })],
70
- ],
71
- SucceededUploadFile: ({ uploadId }) => [
72
- evo(model, { uploads: setStatusById(uploadId, 'Done') }),
73
- [],
74
- ],
75
- FailedUploadFile: ({ uploadId }) => [
76
- evo(model, { uploads: setStatusById(uploadId, 'Failed') }),
77
- [],
78
- ],
69
+ commands: [CancelUploadFile({ uploadId })],
70
+ }),
71
+ SucceededUploadFile: ({ uploadId }) => ({
72
+ model: evo(model, { uploads: setStatusById(uploadId, 'Done') }),
73
+ }),
74
+ FailedUploadFile: ({ uploadId }) => ({
75
+ model: evo(model, { uploads: setStatusById(uploadId, 'Failed') }),
76
+ }),
79
77
  CompletedCancelUploadFile: ({ uploadId, outcome }) => M.value(outcome).pipe(M.withReturnType(), M.tagsExhaustive({
80
- Interrupted: () => [
81
- evo(model, { uploads: setStatusById(uploadId, 'Cancelled') }),
82
- [],
83
- ],
84
- NotFound: () => [model, []],
78
+ Interrupted: () => ({
79
+ model: evo(model, {
80
+ uploads: setStatusById(uploadId, 'Cancelled'),
81
+ }),
82
+ }),
83
+ NotFound: () => ({ model }),
85
84
  })),
86
85
  });
87
86
  // VIEW
@@ -92,7 +92,22 @@ export declare const mountMatches: (matcher: MountMatcher, mount: AnyMount) => b
92
92
  /** Formats a Mount matcher for display in error messages. Definition
93
93
  * matchers render as just the name; Instance matchers append the args. */
94
94
  export declare const formatMountMatcher: (matcher: MountMatcher) => string;
95
- type UpdateResult<Model, OutMessage> = readonly [Model, ReadonlyArray<AnyCommand>] | readonly [Model, ReadonlyArray<AnyCommand>, OutMessage];
95
+ /**
96
+ * Result shape used after Story and Scene replace executable Commands with
97
+ * assertion metadata. Plain returns retain `outMessage?: never`, so code that
98
+ * consumes only the Model and Commands cannot discard an OutMessage.
99
+ *
100
+ * @internal
101
+ */
102
+ export type SimulationUpdateReturn<Model, OutMessage> = Readonly<{
103
+ model: Model;
104
+ commands?: ReadonlyArray<AnyCommand>;
105
+ outMessage?: never;
106
+ }> | Readonly<{
107
+ model: Model;
108
+ commands?: ReadonlyArray<AnyCommand>;
109
+ outMessage?: OutMessage;
110
+ }>;
96
111
  /** A Command matcher (Definition or Instance) paired with the raw result
97
112
  * Message to resolve a pending Command with. Definition matchers resolve by
98
113
  * name; an Instance matcher resolves only the pending Command whose name AND
@@ -124,8 +139,8 @@ export type BaseInternal<Model, Message, OutMessage = undefined> = Readonly<{
124
139
  model: Model;
125
140
  message: Message | undefined;
126
141
  commands: ReadonlyArray<AnyCommand>;
127
- outMessage: OutMessage;
128
- updateFn: (model: Model, message: Message) => UpdateResult<Model, OutMessage>;
142
+ outMessage: OutMessage | undefined;
143
+ updateFn: (model: Model, message: Message) => SimulationUpdateReturn<Model, OutMessage>;
129
144
  resolvers: ReadonlyArray<ResolverEntry>;
130
145
  }>;
131
146
  /** Resolves the first pending Command that matches the given matcher and feeds
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/test/internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/test/internal.ts"],"names":[],"mappings":"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"}
@@ -54,17 +54,13 @@ export const resolveByMatcher = (internal, matcher, resultMessage) => pipe(inter
54
54
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
55
55
  const resolverMessage = foldMessageMappers(matchedCommand.messageMappers, resultMessage);
56
56
  const remainingCommands = dropInterruptedCommands(Array.remove(internal.commands, commandIndex), matchedCommand);
57
- const [nextModel, newCommands, ...rest] = internal.updateFn(internal.model, resolverMessage);
58
- const outMessage = Array.matchLeft(rest, {
59
- onEmpty: () => internal.outMessage,
60
- onNonEmpty: firstOutMessage => firstOutMessage,
61
- });
57
+ const messageUpdate = internal.updateFn(internal.model, resolverMessage);
62
58
  return {
63
59
  ...internal,
64
- model: nextModel,
60
+ model: messageUpdate.model,
65
61
  message: resolverMessage,
66
- commands: Array.appendAll(remainingCommands, newCommands),
67
- outMessage,
62
+ commands: Array.appendAll(remainingCommands, messageUpdate.commands ?? []),
63
+ outMessage: messageUpdate.outMessage,
68
64
  };
69
65
  }))), Option.getOrUndefined);
70
66
  const MAX_CASCADE_DEPTH = 100;
@@ -240,18 +236,14 @@ export const resolveMountByMatcher = (internal, pendingMounts, matcher, resultMe
240
236
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
241
237
  const resolverMessage = foldMessageMappers(matchedMount.messageMappers, resultMessage);
242
238
  const remaining = Array.remove(pendingMounts, index);
243
- const [nextModel, newCommands, ...rest] = internal.updateFn(internal.model, resolverMessage);
244
- const outMessage = Array.matchLeft(rest, {
245
- onEmpty: () => internal.outMessage,
246
- onNonEmpty: firstOutMessage => firstOutMessage,
247
- });
239
+ const messageUpdate = internal.updateFn(internal.model, resolverMessage);
248
240
  return {
249
241
  internal: {
250
242
  ...internal,
251
- model: nextModel,
243
+ model: messageUpdate.model,
252
244
  message: resolverMessage,
253
- commands: Array.appendAll(internal.commands, newCommands),
254
- outMessage,
245
+ commands: Array.appendAll(internal.commands, messageUpdate.commands ?? []),
246
+ outMessage: messageUpdate.outMessage,
255
247
  },
256
248
  pendingMounts: remaining,
257
249
  };