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.
- package/README.md +13 -13
- package/dist/asyncData/asyncData.d.ts +3 -4
- package/dist/asyncData/asyncData.d.ts.map +1 -1
- package/dist/asyncData/asyncData.js +3 -4
- package/dist/command/index.d.ts +14 -13
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +13 -12
- package/dist/experimental/machine/machine.d.ts +9 -2
- package/dist/experimental/machine/machine.d.ts.map +1 -1
- package/dist/experimental/machine/machine.js +3 -3
- package/dist/experimental/server/server.d.ts +6 -5
- package/dist/experimental/server/server.d.ts.map +1 -1
- package/dist/experimental/server/server.js +1 -2
- package/dist/html/submodel.d.ts +4 -4
- package/dist/html/submodel.d.ts.map +1 -1
- package/dist/runtime/runtime.d.ts +11 -47
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +9 -5
- package/dist/test/apps/attributes.d.ts +11 -4
- package/dist/test/apps/attributes.d.ts.map +1 -1
- package/dist/test/apps/attributes.js +1 -1
- package/dist/test/apps/bubbling.d.ts +13 -4
- package/dist/test/apps/bubbling.d.ts.map +1 -1
- package/dist/test/apps/bubbling.js +8 -6
- package/dist/test/apps/colorPicker.d.ts +11 -3
- package/dist/test/apps/colorPicker.d.ts.map +1 -1
- package/dist/test/apps/colorPicker.js +3 -1
- package/dist/test/apps/contextMenu.d.ts +16 -8
- package/dist/test/apps/contextMenu.d.ts.map +1 -1
- package/dist/test/apps/contextMenu.js +3 -4
- package/dist/test/apps/counter.d.ts +10 -10
- package/dist/test/apps/counter.d.ts.map +1 -1
- package/dist/test/apps/counter.js +26 -20
- package/dist/test/apps/crashOnRender.d.ts +12 -12
- package/dist/test/apps/crashOnRender.d.ts.map +1 -1
- package/dist/test/apps/crashOnRender.js +6 -7
- package/dist/test/apps/drafts.d.ts +10 -10
- package/dist/test/apps/drafts.d.ts.map +1 -1
- package/dist/test/apps/drafts.js +7 -5
- package/dist/test/apps/feedSocket.d.ts +19 -4
- package/dist/test/apps/feedSocket.d.ts.map +1 -1
- package/dist/test/apps/feedSocket.js +12 -7
- package/dist/test/apps/fileUpload.d.ts +11 -3
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +3 -1
- package/dist/test/apps/formChild.d.ts +48 -3
- package/dist/test/apps/formChild.d.ts.map +1 -1
- package/dist/test/apps/formChild.js +33 -38
- package/dist/test/apps/interactions.d.ts +25 -7
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +20 -10
- package/dist/test/apps/keypress.d.ts +15 -4
- package/dist/test/apps/keypress.d.ts.map +1 -1
- package/dist/test/apps/keypress.js +13 -5
- package/dist/test/apps/login.d.ts +13 -13
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +28 -18
- package/dist/test/apps/logoutButton.d.ts +15 -6
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +6 -3
- package/dist/test/apps/mountPanel.d.ts +25 -5
- package/dist/test/apps/mountPanel.d.ts.map +1 -1
- package/dist/test/apps/mountPanel.js +14 -10
- package/dist/test/apps/multiRole.d.ts +10 -3
- package/dist/test/apps/multiRole.d.ts.map +1 -1
- package/dist/test/apps/multiRole.js +5 -2
- package/dist/test/apps/pointer.d.ts +16 -5
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +6 -8
- package/dist/test/apps/resumeUpload.d.ts +25 -4
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +16 -15
- package/dist/test/apps/scorePanel.d.ts +10 -3
- package/dist/test/apps/scorePanel.d.ts.map +1 -1
- package/dist/test/apps/scorePanel.js +3 -1
- package/dist/test/apps/selectiveKeys.d.ts +14 -3
- package/dist/test/apps/selectiveKeys.d.ts.map +1 -1
- package/dist/test/apps/selectiveKeys.js +7 -3
- package/dist/test/apps/uploads.d.ts +13 -13
- package/dist/test/apps/uploads.d.ts.map +1 -1
- package/dist/test/apps/uploads.js +23 -24
- package/dist/test/internal.d.ts +18 -3
- package/dist/test/internal.d.ts.map +1 -1
- package/dist/test/internal.js +8 -16
- package/dist/test/scene.d.ts +16 -19
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +11 -27
- package/dist/test/story.d.ts +16 -8
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +12 -17
- package/dist/update/public.d.ts +2 -2
- package/dist/update/public.d.ts.map +1 -1
- package/dist/update/public.js +1 -1
- package/dist/update/update.d.ts +143 -69
- package/dist/update/update.d.ts.map +1 -1
- package/dist/update/update.js +72 -42
- 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: () =>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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) =>
|
|
13
|
-
|
|
14
|
-
|
|
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,
|
|
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: () =>
|
|
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) =>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
39
|
-
|
|
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,
|
|
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: () =>
|
|
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: () =>
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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) =>
|
|
15
|
-
|
|
16
|
-
|
|
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;
|
|
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: () =>
|
|
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
|
-
|
|
21
|
-
|
|
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;
|
|
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: () =>
|
|
25
|
-
Reset: () =>
|
|
26
|
-
|
|
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) =>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
readonly
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
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
|
|
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;
|
|
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
|
-
|
|
76
|
-
|
|
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, {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
Interrupted: () => ({
|
|
79
|
+
model: evo(model, {
|
|
80
|
+
uploads: setStatusById(uploadId, 'Cancelled'),
|
|
81
|
+
}),
|
|
82
|
+
}),
|
|
83
|
+
NotFound: () => ({ model }),
|
|
85
84
|
})),
|
|
86
85
|
});
|
|
87
86
|
// VIEW
|
package/dist/test/internal.d.ts
CHANGED
|
@@ -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
|
-
|
|
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) =>
|
|
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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"}
|
package/dist/test/internal.js
CHANGED
|
@@ -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
|
|
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:
|
|
60
|
+
model: messageUpdate.model,
|
|
65
61
|
message: resolverMessage,
|
|
66
|
-
commands: Array.appendAll(remainingCommands,
|
|
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
|
|
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:
|
|
243
|
+
model: messageUpdate.model,
|
|
252
244
|
message: resolverMessage,
|
|
253
|
-
commands: Array.appendAll(internal.commands,
|
|
254
|
-
outMessage,
|
|
245
|
+
commands: Array.appendAll(internal.commands, messageUpdate.commands ?? []),
|
|
246
|
+
outMessage: messageUpdate.outMessage,
|
|
255
247
|
},
|
|
256
248
|
pendingMounts: remaining,
|
|
257
249
|
};
|