foldkit 0.156.0 → 0.157.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 +3 -3
- package/dist/asyncData/asyncData.d.ts +7 -7
- package/dist/asyncData/asyncData.d.ts.map +1 -1
- package/dist/asyncData/asyncData.js +12 -12
- package/dist/calendar/calendarDate.d.ts +15 -15
- package/dist/calendar/calendarDate.d.ts.map +1 -1
- package/dist/calendar/calendarDate.js +14 -14
- package/dist/calendar/comparison.d.ts +2 -2
- package/dist/calendar/comparison.d.ts.map +1 -1
- package/dist/calendar/comparison.js +5 -5
- package/dist/calendar/info.d.ts +2 -2
- package/dist/calendar/info.d.ts.map +1 -1
- package/dist/calendar/info.js +2 -2
- package/dist/calendar/locale.d.ts +7 -7
- package/dist/calendar/locale.d.ts.map +1 -1
- package/dist/calendar/locale.js +23 -23
- package/dist/canvas/shape.d.ts +89 -89
- package/dist/canvas/shape.d.ts.map +1 -1
- package/dist/canvas/shape.js +65 -53
- package/dist/command/index.d.ts +3 -3
- package/dist/customElement/index.d.ts +2 -2
- package/dist/customElement/index.js +2 -2
- package/dist/devTools/protocol.d.ts +278 -278
- package/dist/devTools/protocol.d.ts.map +1 -1
- package/dist/devTools/protocol.js +98 -92
- package/dist/devTools/schemaSummarize.d.ts.map +1 -1
- package/dist/devTools/schemaSummarize.js +24 -24
- package/dist/devTools/serialize.d.ts +1 -1
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +10 -10
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +52 -28
- package/dist/devTools/submodelPath.d.ts.map +1 -1
- package/dist/devTools/submodelPath.js +3 -3
- package/dist/devTools/summarize.d.ts +6 -6
- package/dist/devTools/summarize.d.ts.map +1 -1
- package/dist/devTools/summarize.js +13 -13
- package/dist/devTools/webSocketBridge.d.ts +3 -3
- package/dist/devTools/webSocketBridge.d.ts.map +1 -1
- package/dist/devTools/webSocketBridge.js +8 -8
- package/dist/dom/dom.d.ts +2 -0
- package/dist/dom/dom.d.ts.map +1 -1
- package/dist/dom/dom.js +47 -13
- package/dist/experimental/machine/machine.d.ts +29 -6
- package/dist/experimental/machine/machine.d.ts.map +1 -1
- package/dist/experimental/machine/machine.js +9 -8
- package/dist/experimental/server/entry.js +2 -2
- package/dist/experimental/server/serialize.js +2 -2
- package/dist/experimental/server/server.js +4 -4
- package/dist/fieldValidation/fieldValidation.d.ts +12 -12
- package/dist/fieldValidation/fieldValidation.d.ts.map +1 -1
- package/dist/fieldValidation/fieldValidation.js +9 -9
- package/dist/fieldValidation/rule.d.ts +2 -2
- package/dist/fieldValidation/rule.d.ts.map +1 -1
- package/dist/fieldValidation/rule.js +6 -6
- package/dist/file/file.d.ts +3 -3
- package/dist/file/file.d.ts.map +1 -1
- package/dist/file/file.js +3 -3
- package/dist/html/boundary.d.ts +93 -36
- package/dist/html/boundary.d.ts.map +1 -1
- package/dist/html/boundary.js +242 -75
- package/dist/html/childAttribute.d.ts +6 -4
- package/dist/html/childAttribute.d.ts.map +1 -1
- package/dist/html/childAttribute.js +7 -1
- package/dist/html/index.d.ts +31 -16
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +97 -40
- package/dist/html/lazy.d.ts +6 -6
- package/dist/html/lazy.d.ts.map +1 -1
- package/dist/html/lazy.js +37 -15
- package/dist/html/public.d.ts +1 -1
- package/dist/html/public.d.ts.map +1 -1
- package/dist/html/runtimeSingleton.d.ts +27 -6
- package/dist/html/runtimeSingleton.d.ts.map +1 -1
- package/dist/html/runtimeSingleton.js +46 -29
- package/dist/html/submodel.d.ts.map +1 -1
- package/dist/html/submodel.js +28 -39
- package/dist/http/http.d.ts +1 -1
- package/dist/http/http.js +1 -1
- package/dist/managedResource/managedResource.d.ts +5 -5
- package/dist/managedResource/managedResource.js +3 -3
- package/dist/mount/index.d.ts +92 -39
- package/dist/mount/index.d.ts.map +1 -1
- package/dist/mount/index.js +28 -8
- package/dist/mount/public.d.ts +1 -1
- package/dist/mount/public.d.ts.map +1 -1
- package/dist/mount/public.js +1 -1
- package/dist/navigation/urlRequest.d.ts +9 -9
- package/dist/navigation/urlRequest.d.ts.map +1 -1
- package/dist/navigation/urlRequest.js +2 -2
- package/dist/onUnmountModule.d.ts +19 -0
- package/dist/onUnmountModule.d.ts.map +1 -0
- package/dist/onUnmountModule.js +80 -0
- package/dist/port/port.d.ts +5 -5
- package/dist/port/port.js +5 -5
- package/dist/route/parser.d.ts +2 -2
- package/dist/route/parser.js +2 -2
- package/dist/runtime/hmrProtocol.d.ts +10 -10
- package/dist/runtime/hmrProtocol.d.ts.map +1 -1
- package/dist/runtime/hmrProtocol.js +10 -10
- package/dist/runtime/runtime.d.ts +4 -4
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +168 -51
- package/dist/schema/index.d.ts +41 -29
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +9 -9
- package/dist/snabbdom/init.d.ts +1 -1
- package/dist/snabbdom/init.d.ts.map +1 -1
- package/dist/snabbdom/init.js +5 -1
- package/dist/snabbdom/vnode.d.ts +1 -0
- package/dist/snabbdom/vnode.d.ts.map +1 -1
- package/dist/snabbdom/vnode.js +1 -0
- package/dist/subscription/animationFrame.d.ts +3 -3
- package/dist/subscription/animationFrame.d.ts.map +1 -1
- package/dist/subscription/animationFrame.js +2 -2
- package/dist/subscription/fromEvent.d.ts +2 -2
- package/dist/subscription/fromEvent.js +2 -2
- package/dist/subscription/subscription.d.ts +3 -3
- package/dist/subscription/subscription.js +1 -1
- package/dist/test/apps/bubbling.d.ts +6 -6
- package/dist/test/apps/bubbling.d.ts.map +1 -1
- package/dist/test/apps/bubbling.js +6 -6
- package/dist/test/apps/colorPicker.d.ts +7 -7
- package/dist/test/apps/colorPicker.d.ts.map +1 -1
- package/dist/test/apps/colorPicker.js +5 -5
- package/dist/test/apps/contextMenu.d.ts +5 -5
- package/dist/test/apps/contextMenu.d.ts.map +1 -1
- package/dist/test/apps/contextMenu.js +4 -4
- package/dist/test/apps/counter.d.ts +8 -8
- package/dist/test/apps/counter.d.ts.map +1 -1
- package/dist/test/apps/counter.js +8 -8
- package/dist/test/apps/crashOnRender.d.ts +18 -18
- package/dist/test/apps/crashOnRender.d.ts.map +1 -1
- package/dist/test/apps/crashOnRender.js +11 -11
- package/dist/test/apps/drafts.d.ts +9 -9
- package/dist/test/apps/drafts.d.ts.map +1 -1
- package/dist/test/apps/drafts.js +6 -6
- package/dist/test/apps/feedSocket.d.ts +6 -6
- package/dist/test/apps/feedSocket.d.ts.map +1 -1
- package/dist/test/apps/feedSocket.js +8 -8
- package/dist/test/apps/fileUpload.d.ts +2 -2
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +2 -2
- package/dist/test/apps/focusBoundary.d.ts +3 -3
- package/dist/test/apps/focusBoundary.d.ts.map +1 -1
- package/dist/test/apps/focusBoundary.js +3 -3
- package/dist/test/apps/formChild.d.ts +11 -11
- package/dist/test/apps/formChild.d.ts.map +1 -1
- package/dist/test/apps/formChild.js +13 -12
- package/dist/test/apps/interactions.d.ts +8 -8
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +8 -8
- package/dist/test/apps/keypress.d.ts +6 -6
- package/dist/test/apps/keypress.d.ts.map +1 -1
- package/dist/test/apps/keypress.js +6 -6
- package/dist/test/apps/login.d.ts +11 -11
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +15 -15
- package/dist/test/apps/logoutButton.d.ts +3 -3
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +2 -2
- package/dist/test/apps/mountPanel.d.ts +9 -9
- package/dist/test/apps/mountPanel.d.ts.map +1 -1
- package/dist/test/apps/mountPanel.js +9 -9
- package/dist/test/apps/multiRole.d.ts +3 -3
- package/dist/test/apps/multiRole.d.ts.map +1 -1
- package/dist/test/apps/multiRole.js +2 -2
- package/dist/test/apps/pointer.d.ts +7 -7
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +7 -7
- package/dist/test/apps/resumeUpload.d.ts +8 -8
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +7 -7
- package/dist/test/apps/scorePanel.d.ts +3 -3
- package/dist/test/apps/scorePanel.d.ts.map +1 -1
- package/dist/test/apps/scorePanel.js +2 -2
- package/dist/test/apps/selectiveKeys.d.ts +3 -3
- package/dist/test/apps/selectiveKeys.d.ts.map +1 -1
- package/dist/test/apps/selectiveKeys.js +3 -3
- package/dist/test/apps/uploads.d.ts +18 -18
- package/dist/test/apps/uploads.d.ts.map +1 -1
- package/dist/test/apps/uploads.js +13 -13
- package/dist/test/matchers.d.ts.map +1 -1
- package/dist/test/matchers.js +4 -4
- package/dist/test/query.d.ts.map +1 -1
- package/dist/test/query.js +28 -28
- package/dist/test/scene.d.ts +37 -8
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +58 -15
- package/dist/test/story.d.ts +35 -8
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +44 -22
- package/dist/update/update.d.ts +17 -20
- package/dist/update/update.d.ts.map +1 -1
- package/dist/url/index.d.ts +8 -8
- package/dist/url/index.d.ts.map +1 -1
- package/dist/url/index.js +19 -19
- package/dist/vdom.d.ts +3 -2
- package/dist/vdom.d.ts.map +1 -1
- package/dist/vdom.js +16 -6
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Effect, Schema
|
|
1
|
+
import { Effect, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import type { Html, HtmlBuilder } from '../../html/index.js';
|
|
4
4
|
import type * as Update from '../../update/index.js';
|
|
5
|
-
export declare const Model:
|
|
6
|
-
readonly count:
|
|
7
|
-
readonly log:
|
|
5
|
+
export declare const Model: Schema.Struct<{
|
|
6
|
+
readonly count: Schema.Number;
|
|
7
|
+
readonly log: Schema.$Array<Schema.Number>;
|
|
8
8
|
}>;
|
|
9
9
|
export type Model = typeof Model.Type;
|
|
10
10
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
@@ -12,7 +12,7 @@ export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
|
12
12
|
readonly ClickedDecrement: {};
|
|
13
13
|
readonly ClickedFetch: {};
|
|
14
14
|
readonly ClickedFetchById: {
|
|
15
|
-
id:
|
|
15
|
+
id: Schema.Number;
|
|
16
16
|
};
|
|
17
17
|
readonly Ticked: {};
|
|
18
18
|
readonly PolledCount: {};
|
|
@@ -20,10 +20,10 @@ export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
|
20
20
|
readonly StartedTwoFetchesById: {};
|
|
21
21
|
readonly StartedMixedFetches: {};
|
|
22
22
|
readonly SucceededFetchCount: {
|
|
23
|
-
count:
|
|
23
|
+
count: Schema.Number;
|
|
24
24
|
};
|
|
25
25
|
readonly FailedFetchCount: {
|
|
26
|
-
error:
|
|
26
|
+
error: Schema.String;
|
|
27
27
|
};
|
|
28
28
|
}>;
|
|
29
29
|
export type Message = typeof Message.Type;
|
|
@@ -32,7 +32,7 @@ export declare const FetchCount: Command.CommandDefinitionNoArgs<"FetchCount", E
|
|
|
32
32
|
readonly count: number;
|
|
33
33
|
}, never, never>>;
|
|
34
34
|
export declare const FetchCountById: Command.CommandDefinitionWithArgs<"FetchCountById", {
|
|
35
|
-
id:
|
|
35
|
+
id: Schema.Number;
|
|
36
36
|
}, Effect.Effect<{
|
|
37
37
|
readonly _tag: "SucceededFetchCount";
|
|
38
38
|
readonly count: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEtD,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;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;;QAIE,EAAE;;;;;;;;QAMC,KAAK;;;QACR,KAAK;;EACzB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,UAAU;;;iBAGrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCjD,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAe5D,CAAA"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { Array, Effect, Number, Schema
|
|
1
|
+
import { Array, Effect, Number, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { defineMessageUnion } from '../../message/index.js';
|
|
4
4
|
import { evo } from '../../struct/index.js';
|
|
5
5
|
// MODEL
|
|
6
|
-
export const Model =
|
|
7
|
-
count:
|
|
8
|
-
log:
|
|
6
|
+
export const Model = Schema.Struct({
|
|
7
|
+
count: Schema.Number,
|
|
8
|
+
log: Schema.Array(Schema.Number),
|
|
9
9
|
});
|
|
10
10
|
// MESSAGE
|
|
11
11
|
export const Message = defineMessageUnion({
|
|
12
12
|
ClickedIncrement: {},
|
|
13
13
|
ClickedDecrement: {},
|
|
14
14
|
ClickedFetch: {},
|
|
15
|
-
ClickedFetchById: { id:
|
|
15
|
+
ClickedFetchById: { id: Schema.Number },
|
|
16
16
|
Ticked: {},
|
|
17
17
|
PolledCount: {},
|
|
18
18
|
StartedThreeFetches: {},
|
|
19
19
|
StartedTwoFetchesById: {},
|
|
20
20
|
StartedMixedFetches: {},
|
|
21
|
-
SucceededFetchCount: { count:
|
|
22
|
-
FailedFetchCount: { error:
|
|
21
|
+
SucceededFetchCount: { count: Schema.Number },
|
|
22
|
+
FailedFetchCount: { error: Schema.String },
|
|
23
23
|
});
|
|
24
24
|
// COMMAND
|
|
25
25
|
export const FetchCount = Command.define('FetchCount', {
|
|
@@ -27,7 +27,7 @@ export const FetchCount = Command.define('FetchCount', {
|
|
|
27
27
|
execute: Effect.sync(() => Message.SucceededFetchCount({ count: 0 })),
|
|
28
28
|
});
|
|
29
29
|
export const FetchCountById = Command.define('FetchCountById', {
|
|
30
|
-
args: { id:
|
|
30
|
+
args: { id: Schema.Number },
|
|
31
31
|
messages: [Message.SucceededFetchCount, Message.FailedFetchCount],
|
|
32
32
|
execute: ({ id }) => Effect.sync(() => Message.SucceededFetchCount({ count: id })),
|
|
33
33
|
});
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Effect, Schema
|
|
1
|
+
import { Effect, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import type { Document, HtmlBuilder } from '../../html/index.js';
|
|
4
4
|
import type * as Update from '../../update/index.js';
|
|
5
|
-
export declare const RawSource:
|
|
6
|
-
readonly kind:
|
|
7
|
-
readonly id:
|
|
5
|
+
export declare const RawSource: Schema.Struct<{
|
|
6
|
+
readonly kind: Schema.Literal<"Book">;
|
|
7
|
+
readonly id: Schema.String;
|
|
8
8
|
}>;
|
|
9
9
|
export type RawSource = typeof RawSource.Type;
|
|
10
|
-
export declare const Source:
|
|
11
|
-
readonly kind:
|
|
12
|
-
readonly id:
|
|
10
|
+
export declare const Source: Schema.Struct<{
|
|
11
|
+
readonly kind: Schema.Literal<"Book">;
|
|
12
|
+
readonly id: Schema.String;
|
|
13
13
|
}>;
|
|
14
14
|
export type Source = typeof Source.Type;
|
|
15
|
-
export declare const Model:
|
|
16
|
-
readonly sources:
|
|
17
|
-
readonly kind:
|
|
18
|
-
readonly id:
|
|
15
|
+
export declare const Model: Schema.Struct<{
|
|
16
|
+
readonly sources: Schema.$Array<Schema.Struct<{
|
|
17
|
+
readonly kind: Schema.Literal<"Book">;
|
|
18
|
+
readonly id: Schema.String;
|
|
19
19
|
}>>;
|
|
20
20
|
}>;
|
|
21
21
|
export type Model = typeof Model.Type;
|
|
22
22
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
23
23
|
readonly ClickedReload: {};
|
|
24
24
|
readonly CompletedReloadSources: {
|
|
25
|
-
sources:
|
|
26
|
-
readonly kind:
|
|
27
|
-
readonly id:
|
|
25
|
+
sources: Schema.$Array<Schema.Struct<{
|
|
26
|
+
readonly kind: Schema.Literal<"Book">;
|
|
27
|
+
readonly id: Schema.String;
|
|
28
28
|
}>>;
|
|
29
29
|
};
|
|
30
30
|
readonly SelectedSource: {
|
|
31
|
-
source:
|
|
32
|
-
readonly kind:
|
|
33
|
-
readonly id:
|
|
31
|
+
source: Schema.Struct<{
|
|
32
|
+
readonly kind: Schema.Literal<"Book">;
|
|
33
|
+
readonly id: Schema.String;
|
|
34
34
|
}>;
|
|
35
35
|
};
|
|
36
36
|
readonly SubmittedNewSourceId: {
|
|
37
|
-
id:
|
|
37
|
+
id: Schema.String;
|
|
38
38
|
};
|
|
39
39
|
}>;
|
|
40
40
|
export type Message = typeof Message.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crashOnRender.d.ts","sourceRoot":"","sources":["../../../src/test/apps/crashOnRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"crashOnRender.d.ts","sourceRoot":"","sources":["../../../src/test/apps/crashOnRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE9C,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGhE,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,SAAS;;;EAGpB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAK7C,eAAO,MAAM,MAAM;;;EAGjB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,KAAK;;;;;EAEhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;QAEQ,OAAO;;;;;;QACf,MAAM;;;;;;QACA,EAAE;;EAC1B,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAMzC,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAGpD,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;iBAKxB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,SAAS,CAEjD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAErD,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAiC,CAAA;AAI5D,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;EAWjD,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,QAkC5D,CAAA"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { Array, Effect, Schema
|
|
1
|
+
import { Array, Effect, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { defineMessageUnion } from '../../message/index.js';
|
|
4
4
|
import { evo } from '../../struct/index.js';
|
|
5
5
|
// MODEL
|
|
6
|
-
export const RawSource =
|
|
7
|
-
kind:
|
|
8
|
-
id:
|
|
6
|
+
export const RawSource = Schema.Struct({
|
|
7
|
+
kind: Schema.Literal('Book'),
|
|
8
|
+
id: Schema.String,
|
|
9
9
|
});
|
|
10
10
|
// NOTE: the strict counterpart of RawSource, requiring a non-empty id.
|
|
11
11
|
// Constructing one (or a SelectedSource Message carrying one) from an empty id
|
|
12
12
|
// throws at construction time, which is what drives the render and update crash.
|
|
13
|
-
export const Source =
|
|
14
|
-
kind:
|
|
15
|
-
id:
|
|
13
|
+
export const Source = Schema.Struct({
|
|
14
|
+
kind: Schema.Literal('Book'),
|
|
15
|
+
id: Schema.String.check(Schema.isNonEmpty()),
|
|
16
16
|
});
|
|
17
|
-
export const Model =
|
|
18
|
-
sources:
|
|
17
|
+
export const Model = Schema.Struct({
|
|
18
|
+
sources: Schema.Array(RawSource),
|
|
19
19
|
});
|
|
20
20
|
// MESSAGE
|
|
21
21
|
export const Message = defineMessageUnion({
|
|
22
22
|
ClickedReload: {},
|
|
23
|
-
CompletedReloadSources: { sources:
|
|
23
|
+
CompletedReloadSources: { sources: Schema.Array(RawSource) },
|
|
24
24
|
SelectedSource: { source: Source },
|
|
25
|
-
SubmittedNewSourceId: { id:
|
|
25
|
+
SubmittedNewSourceId: { id: Schema.String },
|
|
26
26
|
});
|
|
27
27
|
// COMMAND
|
|
28
28
|
// NOTE: the malformed entry (empty id) sits inertly as a RawSource until the
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { Effect, Schema
|
|
1
|
+
import { Effect, Schema } from 'effect';
|
|
2
2
|
import type { Document, HtmlBuilder } from '../../html/index.js';
|
|
3
3
|
import type * as Update from '../../update/index.js';
|
|
4
|
-
export declare const SaveStatus:
|
|
4
|
+
export declare const SaveStatus: Schema.Literals<readonly ["Editing", "Saving", "Saved"]>;
|
|
5
5
|
export type SaveStatus = typeof SaveStatus.Type;
|
|
6
|
-
export declare const Model:
|
|
7
|
-
readonly revision:
|
|
8
|
-
readonly status:
|
|
6
|
+
export declare const Model: Schema.Struct<{
|
|
7
|
+
readonly revision: Schema.Number;
|
|
8
|
+
readonly status: Schema.Literals<readonly ["Editing", "Saving", "Saved"]>;
|
|
9
9
|
}>;
|
|
10
10
|
export type Model = typeof Model.Type;
|
|
11
11
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
12
12
|
readonly ClickedSaveDraft: {};
|
|
13
13
|
readonly SucceededSaveDraft: {
|
|
14
|
-
revision:
|
|
14
|
+
revision: Schema.Number;
|
|
15
15
|
};
|
|
16
16
|
}>;
|
|
17
17
|
export type Message = typeof Message.Type;
|
|
18
|
-
export declare const SaveDraftArgs:
|
|
19
|
-
readonly revision:
|
|
18
|
+
export declare const SaveDraftArgs: Schema.Struct<{
|
|
19
|
+
readonly revision: Schema.Number;
|
|
20
20
|
}>;
|
|
21
21
|
export type SaveDraftArgs = typeof SaveDraftArgs.Type;
|
|
22
22
|
export declare const SaveDraft: import("../../command/interruptible/interruptible.js").DefinitionWithArgsNameKeyed<"SaveDraft", {
|
|
23
|
-
readonly revision:
|
|
23
|
+
readonly revision: Schema.Number;
|
|
24
24
|
}, Effect.Effect<{
|
|
25
25
|
readonly _tag: "SucceededSaveDraft";
|
|
26
26
|
readonly revision: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../src/test/apps/drafts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"drafts.d.ts","sourceRoot":"","sources":["../../../src/test/apps/drafts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGvC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGhE,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,UAAU,0DAAkD,CAAA;AACzE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;QAEI,QAAQ;;EAC9B,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,aAAa;;EAA6C,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,eAAO,MAAM,SAAS;;;;;iBAMpB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAA0C,CAAA;AAIrE,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;EASjD,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,QAU5D,CAAA"}
|
package/dist/test/apps/drafts.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Effect, Schema
|
|
1
|
+
import { Effect, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { defineMessageUnion } from '../../message/index.js';
|
|
4
4
|
import { evo } from '../../struct/index.js';
|
|
5
5
|
// MODEL
|
|
6
|
-
export const SaveStatus =
|
|
7
|
-
export const Model =
|
|
8
|
-
revision:
|
|
6
|
+
export const SaveStatus = Schema.Literals(['Editing', 'Saving', 'Saved']);
|
|
7
|
+
export const Model = Schema.Struct({
|
|
8
|
+
revision: Schema.Number,
|
|
9
9
|
status: SaveStatus,
|
|
10
10
|
});
|
|
11
11
|
// MESSAGE
|
|
12
12
|
export const Message = defineMessageUnion({
|
|
13
13
|
ClickedSaveDraft: {},
|
|
14
|
-
SucceededSaveDraft: { revision:
|
|
14
|
+
SucceededSaveDraft: { revision: Schema.Number },
|
|
15
15
|
});
|
|
16
16
|
// COMMAND
|
|
17
|
-
export const SaveDraftArgs =
|
|
17
|
+
export const SaveDraftArgs = Schema.Struct({ revision: Schema.Number });
|
|
18
18
|
export const SaveDraft = Command.define('SaveDraft', {
|
|
19
19
|
args: SaveDraftArgs.fields,
|
|
20
20
|
messages: [Message.SucceededSaveDraft],
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Option, Schema
|
|
1
|
+
import { Option, Schema } from 'effect';
|
|
2
2
|
import type { Html, HtmlBuilder } from '../../html/index.js';
|
|
3
3
|
import * as ManagedResource from '../../managedResource/index.js';
|
|
4
4
|
import type * as Update from '../../update/index.js';
|
|
5
|
-
export declare const Model:
|
|
6
|
-
readonly isFeedOpen:
|
|
7
|
-
readonly status:
|
|
5
|
+
export declare const Model: Schema.Struct<{
|
|
6
|
+
readonly isFeedOpen: Schema.Boolean;
|
|
7
|
+
readonly status: Schema.Literals<readonly ["Disconnected", "Connected", "Failed"]>;
|
|
8
8
|
}>;
|
|
9
9
|
export type Model = typeof Model.Type;
|
|
10
10
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
11
11
|
readonly ClickedToggleFeed: {};
|
|
12
12
|
readonly AcquiredFeedSocket: {
|
|
13
|
-
socketId:
|
|
13
|
+
socketId: Schema.String;
|
|
14
14
|
};
|
|
15
15
|
readonly ReleasedFeedSocket: {};
|
|
16
16
|
readonly FailedAcquireFeedSocket: {
|
|
17
|
-
error:
|
|
17
|
+
error: Schema.String;
|
|
18
18
|
};
|
|
19
19
|
}>;
|
|
20
20
|
export type Message = typeof Message.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedSocket.d.ts","sourceRoot":"","sources":["../../../src/test/apps/feedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"feedSocket.d.ts","sourceRoot":"","sources":["../../../src/test/apps/feedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAA;AAGjE,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;QAEI,QAAQ;;;;QAEH,KAAK;;EAChC,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAMvD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;kBANoB,MAAM;;kBAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;CA8BjD,CAAA;AAIH,eAAO,MAAM,YAAY;;;CAGvB,CAAA;AAIF,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;EAcjD,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAU1D,CAAA"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Boolean, Effect, Option, Schema
|
|
1
|
+
import { Boolean, Effect, Option, Schema } from 'effect';
|
|
2
2
|
import * as ManagedResource from '../../managedResource/index.js';
|
|
3
3
|
import { defineMessageUnion } from '../../message/index.js';
|
|
4
4
|
import { evo } from '../../struct/index.js';
|
|
5
5
|
// MODEL
|
|
6
|
-
export const Model =
|
|
7
|
-
isFeedOpen:
|
|
8
|
-
status:
|
|
6
|
+
export const Model = Schema.Struct({
|
|
7
|
+
isFeedOpen: Schema.Boolean,
|
|
8
|
+
status: Schema.Literals(['Disconnected', 'Connected', 'Failed']),
|
|
9
9
|
});
|
|
10
10
|
// MESSAGE
|
|
11
11
|
export const Message = defineMessageUnion({
|
|
12
12
|
ClickedToggleFeed: {},
|
|
13
|
-
AcquiredFeedSocket: { socketId:
|
|
13
|
+
AcquiredFeedSocket: { socketId: Schema.String },
|
|
14
14
|
ReleasedFeedSocket: {},
|
|
15
|
-
FailedAcquireFeedSocket: { error:
|
|
15
|
+
FailedAcquireFeedSocket: { error: Schema.String },
|
|
16
16
|
});
|
|
17
17
|
const FeedSocketResource = ManagedResource.tag()('FeedSocket');
|
|
18
18
|
const PresenceResource = ManagedResource.tag()('Presence');
|
|
19
19
|
export const feedResources = ManagedResource.make()(entry => ({
|
|
20
|
-
feedSocket: entry(
|
|
20
|
+
feedSocket: entry(Schema.Option(Schema.Struct({ channel: Schema.String })), {
|
|
21
21
|
resource: FeedSocketResource,
|
|
22
22
|
modelToMaybeRequirements: model => model.isFeedOpen ? Option.some({ channel: 'general' }) : Option.none(),
|
|
23
23
|
acquire: () => Effect.succeed({ socketId: 'live' }),
|
|
@@ -26,7 +26,7 @@ export const feedResources = ManagedResource.make()(entry => ({
|
|
|
26
26
|
onReleased: () => Message.ReleasedFeedSocket(),
|
|
27
27
|
onAcquireError: error => Message.FailedAcquireFeedSocket({ error: String(error) }),
|
|
28
28
|
}),
|
|
29
|
-
presence: entry(
|
|
29
|
+
presence: entry(Schema.Option(Schema.Null), {
|
|
30
30
|
resource: PresenceResource,
|
|
31
31
|
modelToMaybeRequirements: model => model.isFeedOpen ? Option.some(null) : Option.none(),
|
|
32
32
|
acquire: () => Effect.succeed('online'),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Schema
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
2
|
import { File } from '../../file/index.js';
|
|
3
3
|
import type { Html, HtmlBuilder } from '../../html/index.js';
|
|
4
4
|
import type * as Update from '../../update/index.js';
|
|
@@ -8,7 +8,7 @@ export type Model = Readonly<{
|
|
|
8
8
|
export declare const initialModel: Model;
|
|
9
9
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
10
10
|
readonly ReceivedFiles: {
|
|
11
|
-
files:
|
|
11
|
+
files: Schema.$Array<Schema.Schema<globalThis.File>>;
|
|
12
12
|
};
|
|
13
13
|
}>;
|
|
14
14
|
export type Message = typeof Message.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/fileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/fileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CACnC,CAAC,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,OAAO;;QACD,KAAK;;EACtB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;uBAfpC,aAAa,CAAC,IAAI,CAAC;;;;;;;EAoBhC,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IA4B5D,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Schema
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
2
|
import { File } from '../../file/index.js';
|
|
3
3
|
import { defineMessageUnion } from '../../message/index.js';
|
|
4
4
|
export const initialModel = { receivedFiles: [] };
|
|
5
5
|
// MESSAGE
|
|
6
6
|
export const Message = defineMessageUnion({
|
|
7
|
-
ReceivedFiles: { files:
|
|
7
|
+
ReceivedFiles: { files: Schema.Array(File) },
|
|
8
8
|
});
|
|
9
9
|
// UPDATE
|
|
10
10
|
export const update = (model, message) => Message.match(message, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Schema
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
2
|
import type { Html, HtmlBuilder } from '../../html/index.js';
|
|
3
3
|
import type * as Update from '../../update/index.js';
|
|
4
|
-
export declare const Model:
|
|
5
|
-
readonly focusState:
|
|
4
|
+
export declare const Model: Schema.Struct<{
|
|
5
|
+
readonly focusState: Schema.Literals<readonly ["Outside", "Within"]>;
|
|
6
6
|
}>;
|
|
7
7
|
export type Model = typeof Model.Type;
|
|
8
8
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focusBoundary.d.ts","sourceRoot":"","sources":["../../../src/test/apps/focusBoundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"focusBoundary.d.ts","sourceRoot":"","sources":["../../../src/test/apps/focusBoundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAG5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAMpD,eAAO,MAAM,KAAK;;EAEhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;EAGlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAA;AAID,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;EAQjD,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IAa1D,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Schema
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
2
|
import { defineMessageUnion } from '../../message/index.js';
|
|
3
3
|
import { evo } from '../../struct/index.js';
|
|
4
4
|
// MODEL
|
|
5
|
-
const FocusState =
|
|
6
|
-
export const Model =
|
|
5
|
+
const FocusState = Schema.Literals(['Outside', 'Within']);
|
|
6
|
+
export const Model = Schema.Struct({
|
|
7
7
|
focusState: FocusState,
|
|
8
8
|
});
|
|
9
9
|
// MESSAGE
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Effect, Schema
|
|
1
|
+
import { Effect, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import * as Update from '../../update/index.js';
|
|
4
|
-
export declare const ChildModel:
|
|
5
|
-
readonly status:
|
|
4
|
+
export declare const ChildModel: Schema.Struct<{
|
|
5
|
+
readonly status: Schema.Literals<readonly ["Idle", "Submitting", "Submitted"]>;
|
|
6
6
|
}>;
|
|
7
7
|
export type ChildModel = typeof ChildModel.Type;
|
|
8
8
|
export declare const ChildMessage: import("../../schema/index.js").MessageUnion<{
|
|
9
9
|
readonly SubmittedForm: {};
|
|
10
10
|
readonly SucceededSubmitForm: {
|
|
11
|
-
id:
|
|
11
|
+
id: Schema.String;
|
|
12
12
|
};
|
|
13
13
|
readonly CancelledForm: {};
|
|
14
14
|
readonly CompletedResetForm: {};
|
|
@@ -16,7 +16,7 @@ export declare const ChildMessage: import("../../schema/index.js").MessageUnion<
|
|
|
16
16
|
export type ChildMessage = typeof ChildMessage.Type;
|
|
17
17
|
export declare const ChildOutMessage: import("../../schema/index.js").MessageUnion<{
|
|
18
18
|
readonly RequestedSave: {
|
|
19
|
-
id:
|
|
19
|
+
id: Schema.String;
|
|
20
20
|
};
|
|
21
21
|
readonly RequestedCancel: {};
|
|
22
22
|
}>;
|
|
@@ -50,12 +50,12 @@ export declare const childUpdate: (_model: ChildModel, message: ChildMessage) =>
|
|
|
50
50
|
readonly id: string;
|
|
51
51
|
};
|
|
52
52
|
}>;
|
|
53
|
-
export declare const ParentModel:
|
|
54
|
-
readonly child:
|
|
55
|
-
readonly status:
|
|
53
|
+
export declare const ParentModel: Schema.Struct<{
|
|
54
|
+
readonly child: Schema.Struct<{
|
|
55
|
+
readonly status: Schema.Literals<readonly ["Idle", "Submitting", "Submitted"]>;
|
|
56
56
|
}>;
|
|
57
|
-
readonly savedIds:
|
|
58
|
-
readonly cancelled:
|
|
57
|
+
readonly savedIds: Schema.$Array<Schema.String>;
|
|
58
|
+
readonly cancelled: Schema.Boolean;
|
|
59
59
|
}>;
|
|
60
60
|
export type ParentModel = typeof ParentModel.Type;
|
|
61
61
|
export declare const ParentMessage: import("../../schema/index.js").MessageUnion<{
|
|
@@ -63,7 +63,7 @@ export declare const ParentMessage: import("../../schema/index.js").MessageUnion
|
|
|
63
63
|
message: import("../../schema/index.js").MessageUnion<{
|
|
64
64
|
readonly SubmittedForm: {};
|
|
65
65
|
readonly SucceededSubmitForm: {
|
|
66
|
-
id:
|
|
66
|
+
id: Schema.String;
|
|
67
67
|
};
|
|
68
68
|
readonly CancelledForm: {};
|
|
69
69
|
readonly CompletedResetForm: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formChild.d.ts","sourceRoot":"","sources":["../../../src/test/apps/formChild.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"formChild.d.ts","sourceRoot":"","sources":["../../../src/test/apps/formChild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEtD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAGjD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAI/C,eAAO,MAAM,UAAU;;EAErB,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAI/C,eAAO,MAAM,YAAY;;;QAEA,EAAE;;;;EAGzB,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAInD,eAAO,MAAM,eAAe;;QACT,EAAE;;;EAEnB,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAIzD,eAAO,MAAM,UAAU;;;iBAGrB,CAAA;AAEF,eAAO,MAAM,SAAS;;iBAGpB,CAAA;AAIF,eAAO,MAAM,iBAAiB,EAAE,UAA+B,CAAA;AAI/D,eAAO,MAAM,WAAW,WAAY,UAAU,WAAW,YAAY;;;;;;;;;;;;;;;;;;;;EAkBjE,CAAA;AAIJ,eAAO,MAAM,WAAW;;;;;;EAItB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAIjD,eAAO,MAAM,aAAa;;QACL,OAAO;;;gBAhEH,EAAE;;;;;;;EAkEzB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAIrD,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAA;AAyBD,eAAO,MAAM,YAAY,gBACV,WAAW,WACf,aAAa;;;;;;;;;;;;;;;;;;;;;;;;EAMpB,CAAA"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Array, Effect, Option, Schema } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { defineMessageUnion } from '../../message/index.js';
|
|
4
|
+
import { evo } from '../../struct/index.js';
|
|
4
5
|
import * as Update from '../../update/index.js';
|
|
5
6
|
// CHILD MODEL
|
|
6
|
-
export const ChildModel =
|
|
7
|
-
status:
|
|
7
|
+
export const ChildModel = Schema.Struct({
|
|
8
|
+
status: Schema.Literals(['Idle', 'Submitting', 'Submitted']),
|
|
8
9
|
});
|
|
9
10
|
// CHILD MESSAGE
|
|
10
11
|
export const ChildMessage = defineMessageUnion({
|
|
11
12
|
SubmittedForm: {},
|
|
12
|
-
SucceededSubmitForm: { id:
|
|
13
|
+
SucceededSubmitForm: { id: Schema.String },
|
|
13
14
|
CancelledForm: {},
|
|
14
15
|
CompletedResetForm: {},
|
|
15
16
|
});
|
|
16
17
|
// CHILD OUT MESSAGE
|
|
17
18
|
export const ChildOutMessage = defineMessageUnion({
|
|
18
|
-
RequestedSave: { id:
|
|
19
|
+
RequestedSave: { id: Schema.String },
|
|
19
20
|
RequestedCancel: {},
|
|
20
21
|
});
|
|
21
22
|
// CHILD COMMAND
|
|
@@ -47,10 +48,10 @@ export const childUpdate = (_model, message) => ChildMessage.match(message, {
|
|
|
47
48
|
CompletedResetForm: () => ({ model: { status: 'Idle' } }),
|
|
48
49
|
});
|
|
49
50
|
// PARENT MODEL
|
|
50
|
-
export const ParentModel =
|
|
51
|
+
export const ParentModel = Schema.Struct({
|
|
51
52
|
child: ChildModel,
|
|
52
|
-
savedIds:
|
|
53
|
-
cancelled:
|
|
53
|
+
savedIds: Schema.Array(Schema.String),
|
|
54
|
+
cancelled: Schema.Boolean,
|
|
54
55
|
});
|
|
55
56
|
// PARENT MESSAGE
|
|
56
57
|
export const ParentMessage = defineMessageUnion({
|
|
@@ -64,14 +65,14 @@ export const initialParentModel = {
|
|
|
64
65
|
cancelled: false,
|
|
65
66
|
};
|
|
66
67
|
// PARENT UPDATE
|
|
67
|
-
const foldChildOutMessage =
|
|
68
|
+
const foldChildOutMessage = ChildOutMessage.match({
|
|
68
69
|
RequestedSave: ({ id }) => model => ({
|
|
69
|
-
model:
|
|
70
|
+
model: evo(model, { savedIds: Array.append(id) }),
|
|
70
71
|
}),
|
|
71
72
|
RequestedCancel: () => model => ({
|
|
72
|
-
model:
|
|
73
|
+
model: evo(model, { cancelled: () => true }),
|
|
73
74
|
}),
|
|
74
|
-
})
|
|
75
|
+
});
|
|
75
76
|
const foldChildUpdate = Update.foldChild({
|
|
76
77
|
update: childUpdate,
|
|
77
78
|
read: (model) => Option.some(model.child),
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Schema
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
2
|
import type { Html, HtmlBuilder } from '../../html/index.js';
|
|
3
3
|
import type * as Update from '../../update/index.js';
|
|
4
|
-
export declare const Model:
|
|
5
|
-
readonly clicks:
|
|
6
|
-
readonly doubleClicks:
|
|
7
|
-
readonly hovered:
|
|
8
|
-
readonly focused:
|
|
9
|
-
readonly changed:
|
|
4
|
+
export declare const Model: Schema.Struct<{
|
|
5
|
+
readonly clicks: Schema.Number;
|
|
6
|
+
readonly doubleClicks: Schema.Number;
|
|
7
|
+
readonly hovered: Schema.Boolean;
|
|
8
|
+
readonly focused: Schema.Boolean;
|
|
9
|
+
readonly changed: Schema.String;
|
|
10
10
|
}>;
|
|
11
11
|
export type Model = typeof Model.Type;
|
|
12
12
|
export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
@@ -16,7 +16,7 @@ export declare const Message: import("../../schema/index.js").MessageUnion<{
|
|
|
16
16
|
readonly FocusedInput: {};
|
|
17
17
|
readonly BlurredInput: {};
|
|
18
18
|
readonly ChangedSelect: {
|
|
19
|
-
value:
|
|
19
|
+
value: Schema.String;
|
|
20
20
|
};
|
|
21
21
|
}>;
|
|
22
22
|
export type Message = typeof Message.Type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/test/apps/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/test/apps/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEvC,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAG5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAIpD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,OAAO;;;;;;;QAMD,KAAK;;EACtB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,UAAW,KAAK,WAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;EAoBjD,CAAA;AAIJ,eAAO,MAAM,IAAI,UAAW,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,KAAG,IA+B5D,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Number, Schema
|
|
1
|
+
import { Number, Schema } from 'effect';
|
|
2
2
|
import { defineMessageUnion } from '../../message/index.js';
|
|
3
3
|
import { evo } from '../../struct/index.js';
|
|
4
4
|
// MODEL
|
|
5
|
-
export const Model =
|
|
6
|
-
clicks:
|
|
7
|
-
doubleClicks:
|
|
8
|
-
hovered:
|
|
9
|
-
focused:
|
|
10
|
-
changed:
|
|
5
|
+
export const Model = Schema.Struct({
|
|
6
|
+
clicks: Schema.Number,
|
|
7
|
+
doubleClicks: Schema.Number,
|
|
8
|
+
hovered: Schema.Boolean,
|
|
9
|
+
focused: Schema.Boolean,
|
|
10
|
+
changed: Schema.String,
|
|
11
11
|
});
|
|
12
12
|
// MESSAGE
|
|
13
13
|
export const Message = defineMessageUnion({
|
|
@@ -16,7 +16,7 @@ export const Message = defineMessageUnion({
|
|
|
16
16
|
HoveredTarget: {},
|
|
17
17
|
FocusedInput: {},
|
|
18
18
|
BlurredInput: {},
|
|
19
|
-
ChangedSelect: { value:
|
|
19
|
+
ChangedSelect: { value: Schema.String },
|
|
20
20
|
});
|
|
21
21
|
// INIT
|
|
22
22
|
export const initialModel = {
|