foldkit 0.134.0 → 0.136.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/dist/asyncData/asyncData.d.ts +4 -6
- package/dist/asyncData/asyncData.d.ts.map +1 -1
- package/dist/asyncData/asyncData.js +4 -6
- package/dist/command/brand.d.ts +9 -0
- package/dist/command/brand.d.ts.map +1 -0
- package/dist/command/brand.js +15 -0
- package/dist/command/index.d.ts +119 -24
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +66 -26
- package/dist/command/interruptible/interruptible.d.ts +9 -94
- package/dist/command/interruptible/interruptible.d.ts.map +1 -1
- package/dist/command/interruptible/interruptible.js +9 -75
- package/dist/command/interruptible/public.d.ts +1 -1
- package/dist/command/interruptible/public.d.ts.map +1 -1
- package/dist/command/interruptible/public.js +1 -1
- package/dist/command/public.d.ts +1 -1
- package/dist/command/public.d.ts.map +1 -1
- package/dist/customElement/index.d.ts +3 -0
- package/dist/customElement/index.d.ts.map +1 -1
- package/dist/customElement/index.js +3 -1
- package/dist/http/http.d.ts +4 -7
- package/dist/http/http.d.ts.map +1 -1
- package/dist/http/http.js +4 -7
- package/dist/managedResource/managedResource.d.ts +21 -10
- package/dist/managedResource/managedResource.d.ts.map +1 -1
- package/dist/managedResource/managedResource.js +6 -1
- package/dist/port/port.d.ts +8 -9
- package/dist/port/port.d.ts.map +1 -1
- package/dist/port/port.js +8 -9
- package/dist/test/apps/colorPicker.d.ts +28 -0
- package/dist/test/apps/colorPicker.d.ts.map +1 -0
- package/dist/test/apps/colorPicker.js +43 -0
- package/dist/test/apps/counter.d.ts +3 -1
- package/dist/test/apps/counter.d.ts.map +1 -1
- package/dist/test/apps/counter.js +20 -6
- package/dist/test/apps/crashOnRender.d.ts.map +1 -1
- package/dist/test/apps/crashOnRender.js +4 -1
- package/dist/test/apps/drafts.d.ts +1 -2
- package/dist/test/apps/drafts.d.ts.map +1 -1
- package/dist/test/apps/drafts.js +7 -2
- package/dist/test/apps/feedSocket.d.ts +74 -0
- package/dist/test/apps/feedSocket.d.ts.map +1 -0
- package/dist/test/apps/feedSocket.js +69 -0
- package/dist/test/apps/formChild.d.ts.map +1 -1
- package/dist/test/apps/formChild.js +8 -2
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +4 -1
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +12 -5
- package/dist/test/apps/scorePanel.d.ts +32 -0
- package/dist/test/apps/scorePanel.d.ts.map +1 -0
- package/dist/test/apps/scorePanel.js +19 -0
- package/dist/test/apps/uploads.d.ts +4 -4
- package/dist/test/apps/uploads.d.ts.map +1 -1
- package/dist/test/apps/uploads.js +10 -1
- package/dist/test/internal.d.ts +2 -2
- package/dist/test/internal.js +1 -1
- package/dist/test/scene.d.ts +79 -7
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +204 -24
- package/dist/test/story.d.ts +5 -6
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +1 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Array, Context, Effect, Fiber, Option,
|
|
1
|
+
import { Array, Context, Effect, Fiber, Option, Schema } from 'effect';
|
|
2
2
|
import { ts } from '../../schema/index.js';
|
|
3
|
-
import { CommandDefinitionTypeId } from '../
|
|
3
|
+
import { CommandDefinitionTypeId, brandAsDefinition } from '../brand.js';
|
|
4
4
|
/** At least one in-flight Command held the interrupt key, and every holder
|
|
5
5
|
* has been stopped. Their declared result Messages are guaranteed never to
|
|
6
6
|
* dispatch. */
|
|
@@ -64,7 +64,7 @@ export const __CurrentRegistry = Context.Reference('foldkit/Command/Interruptibl
|
|
|
64
64
|
// `register` but before `ensuring` attached, the fiber would die without
|
|
65
65
|
// ever removing itself from the registry, and every later Interrupt would
|
|
66
66
|
// report `Interrupted` against that dead entry forever.
|
|
67
|
-
const
|
|
67
|
+
export const __registerKeyWhileRunning = (key, effect) => Effect.withFiber(fiber => Effect.gen(function* () {
|
|
68
68
|
const registry = yield* __CurrentRegistry;
|
|
69
69
|
return yield* Effect.uninterruptibleMask(restore => Effect.suspend(() => {
|
|
70
70
|
registry.register(key, fiber);
|
|
@@ -76,16 +76,9 @@ const makeInterruptEffect = (key, toMessage) => Effect.gen(function* () {
|
|
|
76
76
|
const outcome = yield* registry.interrupt(key);
|
|
77
77
|
return toMessage(outcome);
|
|
78
78
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
configurable: true,
|
|
83
|
-
});
|
|
84
|
-
Object.defineProperty(definition, CommandDefinitionTypeId, {
|
|
85
|
-
value: CommandDefinitionTypeId,
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
const makeInterruptDefinitionNoArgs = (name, key) => {
|
|
79
|
+
/** @internal Builds the `Interrupt` constructor for an interruptible definition
|
|
80
|
+
* whose key is the Command name. Internal to the Command module. */
|
|
81
|
+
export const __makeInterruptDefinitionNoArgs = (name, key) => {
|
|
89
82
|
const interruptName = `${name}.Interrupt`;
|
|
90
83
|
const definition = (toMessage) => ({
|
|
91
84
|
name: interruptName,
|
|
@@ -96,7 +89,9 @@ const makeInterruptDefinitionNoArgs = (name, key) => {
|
|
|
96
89
|
brandAsDefinition(definition, interruptName);
|
|
97
90
|
return definition;
|
|
98
91
|
};
|
|
99
|
-
|
|
92
|
+
/** @internal Builds the `Interrupt` constructor for an interruptible definition
|
|
93
|
+
* whose key is derived from its args. Internal to the Command module. */
|
|
94
|
+
export const __makeInterruptDefinitionWithArgs = (name, toFullKey) => {
|
|
100
95
|
const interruptName = `${name}.Interrupt`;
|
|
101
96
|
const definition = (keyArgs, toMessage) => {
|
|
102
97
|
const key = toFullKey(keyArgs);
|
|
@@ -111,64 +106,3 @@ const makeInterruptDefinitionWithArgs = (name, toFullKey) => {
|
|
|
111
106
|
brandAsDefinition(definition, interruptName);
|
|
112
107
|
return definition;
|
|
113
108
|
};
|
|
114
|
-
export function define(name, ...rest) {
|
|
115
|
-
const [maybeArgs, maybeToKey] = rest;
|
|
116
|
-
const isArgsRecord = Predicate.isObject(maybeArgs) && !Schema.isSchema(maybeArgs);
|
|
117
|
-
if (!isArgsRecord) {
|
|
118
|
-
const key = name;
|
|
119
|
-
return (effect) => {
|
|
120
|
-
const definition = () => ({
|
|
121
|
-
name,
|
|
122
|
-
key,
|
|
123
|
-
effect: registerKeyWhileRunning(key, effect),
|
|
124
|
-
messageMappers: [],
|
|
125
|
-
});
|
|
126
|
-
brandAsDefinition(definition, name);
|
|
127
|
-
Object.defineProperty(definition, 'Interrupt', {
|
|
128
|
-
value: makeInterruptDefinitionNoArgs(name, key),
|
|
129
|
-
});
|
|
130
|
-
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
131
|
-
return definition;
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
const isToKeyFunction = Predicate.isFunction(maybeToKey) && !Schema.isSchema(maybeToKey);
|
|
135
|
-
if (!isToKeyFunction) {
|
|
136
|
-
const key = name;
|
|
137
|
-
return (effectBuilder) => {
|
|
138
|
-
const definition = (args) => ({
|
|
139
|
-
name,
|
|
140
|
-
args,
|
|
141
|
-
key,
|
|
142
|
-
effect: registerKeyWhileRunning(key, effectBuilder(args)),
|
|
143
|
-
messageMappers: [],
|
|
144
|
-
});
|
|
145
|
-
brandAsDefinition(definition, name);
|
|
146
|
-
Object.defineProperty(definition, 'Interrupt', {
|
|
147
|
-
value: makeInterruptDefinitionNoArgs(name, key),
|
|
148
|
-
});
|
|
149
|
-
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
150
|
-
return definition;
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
154
|
-
const toKey = maybeToKey;
|
|
155
|
-
const toFullKey = (keyArgs) => `${name}:${toKey(keyArgs)}`;
|
|
156
|
-
return (effectBuilder) => {
|
|
157
|
-
const definition = (args) => {
|
|
158
|
-
const key = toFullKey(args);
|
|
159
|
-
return {
|
|
160
|
-
name,
|
|
161
|
-
args,
|
|
162
|
-
key,
|
|
163
|
-
effect: registerKeyWhileRunning(key, effectBuilder(args)),
|
|
164
|
-
messageMappers: [],
|
|
165
|
-
};
|
|
166
|
-
};
|
|
167
|
-
brandAsDefinition(definition, name);
|
|
168
|
-
Object.defineProperty(definition, 'Interrupt', {
|
|
169
|
-
value: makeInterruptDefinitionWithArgs(name, toFullKey),
|
|
170
|
-
});
|
|
171
|
-
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
172
|
-
return definition;
|
|
173
|
-
};
|
|
174
|
-
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type { DefinitionNoArgs, DefinitionWithArgs, DefinitionWithArgsNameKeyed, InterruptDefinitionNoArgs, InterruptDefinitionWithArgs, } from './index.js';
|
|
2
|
-
export {
|
|
2
|
+
export { Interrupted, NotFound, Outcome } from './index.js';
|
|
3
3
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/command/interruptible/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/command/interruptible/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { Interrupted, NotFound, Outcome } from './index.js';
|
package/dist/command/public.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { Command, CommandDefinition, CommandDefinitionNoArgs, CommandDefinitionWithArgs, } from './index.js';
|
|
1
|
+
export type { Command, CommandDefinition, CommandDefinitionNoArgs, CommandDefinitionWithArgs, InterruptOption, } from './index.js';
|
|
2
2
|
export { CommandDefinitionTypeId, define, mapEffect, mapMessage, mapMessages, } from './index.js';
|
|
3
3
|
export * as Interruptible from './interruptible/public.js';
|
|
4
4
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/command/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/command/public.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA"}
|
|
@@ -39,6 +39,9 @@ export interface CustomElementSpec<Tag extends string, Properties extends Record
|
|
|
39
39
|
* the value `Spec.withMessage<Message>()` returns, expressed as a type
|
|
40
40
|
* consumers can name without reaching for `ReturnType<typeof ...>`. */
|
|
41
41
|
export type Builder<Spec, Message> = Spec extends CustomElementSpec<string, infer Properties, infer Events> ? ElementBuilder<Message, Properties, Events> : never;
|
|
42
|
+
/** @internal Shared with the Scene test helpers so their error messages name
|
|
43
|
+
* the same `On*` factory this module generates. */
|
|
44
|
+
export declare const kebabToPascal: (input: string) => string;
|
|
42
45
|
/**
|
|
43
46
|
* Define a typed binding for a custom element. The returned spec describes
|
|
44
47
|
* the element's properties and events with Schema, and exposes a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/customElement/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/customElement/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Array, String, pipe } from 'effect';
|
|
2
2
|
import { OnCustomEvent, Prop, customElement as customElementVNode, } from '../html/index.js';
|
|
3
|
-
|
|
3
|
+
/** @internal Shared with the Scene test helpers so their error messages name
|
|
4
|
+
* the same `On*` factory this module generates. */
|
|
5
|
+
export const kebabToPascal = (input) => pipe(input, String.split('-'), Array.map(String.capitalize), Array.join(''));
|
|
4
6
|
const IDENTIFIER_PATTERN = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
5
7
|
const isValidPropertyName = (name) => IDENTIFIER_PATTERN.test(name);
|
|
6
8
|
const isValidEventName = (name) => {
|
package/dist/http/http.d.ts
CHANGED
|
@@ -24,12 +24,9 @@ import { HttpClient } from 'effect/unstable/http';
|
|
|
24
24
|
* ```typescript
|
|
25
25
|
* import { Http } from 'foldkit'
|
|
26
26
|
*
|
|
27
|
-
* const FetchCount = Command.define(
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* FailedFetchCount,
|
|
31
|
-
* )(
|
|
32
|
-
* Effect.gen(function* () {
|
|
27
|
+
* const FetchCount = Command.define('FetchCount', {
|
|
28
|
+
* messages: [SucceededFetchCount, FailedFetchCount],
|
|
29
|
+
* execute: Effect.gen(function* () {
|
|
33
30
|
* const client = yield* HttpClient.HttpClient
|
|
34
31
|
* const response = yield* client.get('/api/count')
|
|
35
32
|
* const { count } = yield* S.decodeUnknownEffect(CountResponse)(
|
|
@@ -42,7 +39,7 @@ import { HttpClient } from 'effect/unstable/http';
|
|
|
42
39
|
* ),
|
|
43
40
|
* Effect.provide(Http.layer),
|
|
44
41
|
* ),
|
|
45
|
-
* )
|
|
42
|
+
* })
|
|
46
43
|
* ```
|
|
47
44
|
*/
|
|
48
45
|
export declare const layer: Layer.Layer<HttpClient.HttpClient>;
|
package/dist/http/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAElE
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAmB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAGpD,CAAA"}
|
package/dist/http/http.js
CHANGED
|
@@ -24,12 +24,9 @@ import { FetchHttpClient, HttpClient } from 'effect/unstable/http';
|
|
|
24
24
|
* ```typescript
|
|
25
25
|
* import { Http } from 'foldkit'
|
|
26
26
|
*
|
|
27
|
-
* const FetchCount = Command.define(
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* FailedFetchCount,
|
|
31
|
-
* )(
|
|
32
|
-
* Effect.gen(function* () {
|
|
27
|
+
* const FetchCount = Command.define('FetchCount', {
|
|
28
|
+
* messages: [SucceededFetchCount, FailedFetchCount],
|
|
29
|
+
* execute: Effect.gen(function* () {
|
|
33
30
|
* const client = yield* HttpClient.HttpClient
|
|
34
31
|
* const response = yield* client.get('/api/count')
|
|
35
32
|
* const { count } = yield* S.decodeUnknownEffect(CountResponse)(
|
|
@@ -42,7 +39,7 @@ import { FetchHttpClient, HttpClient } from 'effect/unstable/http';
|
|
|
42
39
|
* ),
|
|
43
40
|
* Effect.provide(Http.layer),
|
|
44
41
|
* ),
|
|
45
|
-
* )
|
|
42
|
+
* })
|
|
46
43
|
* ```
|
|
47
44
|
*/
|
|
48
45
|
export const layer = Layer.provide(FetchHttpClient.layer, Layer.succeed(HttpClient.TracerPropagationEnabled, false));
|
|
@@ -49,8 +49,8 @@ export type ManagedResourceConfig<Model, Message> = {
|
|
|
49
49
|
export type ManagedResources<Model, Message, Services = never> = Record<string, ManagedResourceConfig<Model, Message>> & {
|
|
50
50
|
readonly __managedResourceServices?: Services;
|
|
51
51
|
};
|
|
52
|
-
type EntryBrand = {
|
|
53
|
-
readonly __managedResourceEntry:
|
|
52
|
+
type EntryBrand<Model, Message> = {
|
|
53
|
+
readonly __managedResourceEntry: (model: Model) => Message;
|
|
54
54
|
};
|
|
55
55
|
/**
|
|
56
56
|
* The requirements value the runtime hands to `acquire`. When the requirements
|
|
@@ -71,17 +71,22 @@ type AcquireParams<Requirements> = Requirements extends Option.Option<infer Para
|
|
|
71
71
|
* The `Service` parameter carries the resource tag's identity so `make`,
|
|
72
72
|
* `lift`, and `aggregate` can union the services a record requires. Read the
|
|
73
73
|
* union off a finished record with `ManagedResource.ServicesOf`.
|
|
74
|
+
*
|
|
75
|
+
* The `OnAcquired` parameter preserves the arity of the `onAcquired` handler:
|
|
76
|
+
* an entry whose handler ignores the acquired value keeps that fact in its
|
|
77
|
+
* type, so callers that replay the handler (the Scene test steps) only demand
|
|
78
|
+
* the value when the handler consumes it.
|
|
74
79
|
*/
|
|
75
|
-
export type Entry<Model, Message, Requirements, Value, Service = unknown> = {
|
|
80
|
+
export type Entry<Model, Message, Requirements, Value, Service = unknown, OnAcquired extends (...args: any) => Message = (value: Value) => Message> = {
|
|
76
81
|
readonly schema: Schema.Schema<Requirements>;
|
|
77
82
|
readonly resource: ManagedResource<Value, Service>;
|
|
78
83
|
readonly modelToMaybeRequirements: (model: Model) => Requirements;
|
|
79
84
|
readonly acquire: (params: AcquireParams<Requirements>) => Effect.Effect<Value, unknown, Scope.Scope>;
|
|
80
85
|
readonly release: (value: Value) => Effect.Effect<void>;
|
|
81
|
-
readonly onAcquired:
|
|
86
|
+
readonly onAcquired: OnAcquired;
|
|
82
87
|
readonly onReleased: () => Message;
|
|
83
88
|
readonly onAcquireError: (error: unknown) => Message;
|
|
84
|
-
} & EntryBrand
|
|
89
|
+
} & EntryBrand<Model, Message>;
|
|
85
90
|
/** Type-level utility to extract the service union from a Managed Resources record. */
|
|
86
91
|
export type ServicesOf<Resources> = {
|
|
87
92
|
[Key in keyof Resources]: Resources[Key] extends {
|
|
@@ -95,16 +100,22 @@ export type ServicesOf<Resources> = {
|
|
|
95
100
|
* before contextually typing `modelToMaybeRequirements` and `acquire`, so
|
|
96
101
|
* destructuring patterns are inferred correctly even when the schema uses
|
|
97
102
|
* transforms like `S.Option`.
|
|
103
|
+
*
|
|
104
|
+
* The `onAcquired` field is typed as `OnAcquired` intersected with the
|
|
105
|
+
* concrete `(value: Value) => Message` signature: the concrete member keeps
|
|
106
|
+
* contextual typing intact for destructured handler parameters, while the
|
|
107
|
+
* naked generic captures the handler's own type so the Entry records its
|
|
108
|
+
* arity.
|
|
98
109
|
*/
|
|
99
|
-
export type EntryBuilder<Model, Message> = <RequirementsSchema extends Schema.Schema<any>, Value, Service>(schema: RequirementsSchema, config: {
|
|
110
|
+
export type EntryBuilder<Model, Message> = <RequirementsSchema extends Schema.Schema<any>, Value, Service, OnAcquired extends (value: Value) => Message>(schema: RequirementsSchema, config: {
|
|
100
111
|
readonly resource: ManagedResource<Value, Service>;
|
|
101
112
|
readonly modelToMaybeRequirements: (model: Model) => Schema.Schema.Type<RequirementsSchema>;
|
|
102
113
|
readonly acquire: (params: AcquireParams<Schema.Schema.Type<RequirementsSchema>>) => Effect.Effect<Value, unknown, Scope.Scope>;
|
|
103
114
|
readonly release: (value: Value) => Effect.Effect<void>;
|
|
104
|
-
readonly onAcquired: (value: Value) => Message;
|
|
115
|
+
readonly onAcquired: OnAcquired & ((value: Value) => Message);
|
|
105
116
|
readonly onReleased: () => Message;
|
|
106
117
|
readonly onAcquireError: (error: unknown) => Message;
|
|
107
|
-
}) => Entry<Model, Message, Schema.Schema.Type<RequirementsSchema>, Value, Service>;
|
|
118
|
+
}) => Entry<Model, Message, Schema.Schema.Type<RequirementsSchema>, Value, Service, OnAcquired>;
|
|
108
119
|
/**
|
|
109
120
|
* Declares a Managed Resources record. The Model and Message generics are
|
|
110
121
|
* provided up front; the entries record follows, built from calls to the
|
|
@@ -192,7 +203,7 @@ export type EntryBuilder<Model, Message> = <RequirementsSchema extends Schema.Sc
|
|
|
192
203
|
*
|
|
193
204
|
* @see {@link ManagedResource.tag} for creating the resource identity.
|
|
194
205
|
*/
|
|
195
|
-
export declare const make: <Model, Message>() => <Entries extends Record<string,
|
|
206
|
+
export declare const make: <Model, Message>() => <Entries extends Record<string, EntryBrand<Model, Message>>>(build: (entry: EntryBuilder<Model, Message>) => Entries) => Entries;
|
|
196
207
|
type ChildModelOf<Resources> = Resources[keyof Resources] extends Entry<infer ChildModel, any, any, any, any> ? ChildModel : never;
|
|
197
208
|
type ChildMessageOf<Resources> = Resources[keyof Resources] extends Entry<any, infer ChildMessage, any, any, any> ? ChildMessage : never;
|
|
198
209
|
/**
|
|
@@ -210,7 +221,7 @@ type ChildMessageOf<Resources> = Resources[keyof Resources] extends Entry<any, i
|
|
|
210
221
|
export declare const lift: <Resources extends Record<string, Entry<any, any, Option.Option<any>, any, any>>>(resources: Resources) => <ParentModel, ParentMessage>(config: {
|
|
211
222
|
readonly toChildModel: (parentModel: ParentModel) => Option.Option<ChildModelOf<Resources>>;
|
|
212
223
|
readonly toParentMessage: (message: ChildMessageOf<Resources>) => ParentMessage;
|
|
213
|
-
}) => { readonly [Key in keyof Resources]: Resources[Key] extends Entry<any, any, infer Requirements, infer Value, infer Service> ? Entry<ParentModel, ParentMessage, Requirements, Value, Service> : never; };
|
|
224
|
+
}) => { readonly [Key in keyof Resources]: Resources[Key] extends Entry<any, any, infer Requirements, infer Value, infer Service, infer OnAcquired extends (...args: ReadonlyArray<any>) => any> ? Entry<ParentModel, ParentMessage, Requirements, Value, Service, (...args: Parameters<OnAcquired>) => ParentMessage> : never; };
|
|
214
225
|
type MergeRecords<Records extends ReadonlyArray<unknown>> = Records extends readonly [infer Head, ...infer Rest] ? Head & (Rest extends ReadonlyArray<unknown> ? MergeRecords<Rest> : {}) : {};
|
|
215
226
|
/**
|
|
216
227
|
* Combines multiple Managed Resources records into one. Throws on duplicate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managedResource.d.ts","sourceRoot":"","sources":["../../src/managedResource/managedResource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,MAAM,EACN,MAAM,EAGN,KAAK,MAAM,EACX,KAAK,KAAK,EACX,MAAM,QAAQ,CAAA;;;;AAEf,oGAAoG;AACpG,qBAAa,oBAAqB,SAAQ,0BAExC;IACA,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAC;CAAG;AAEL,QAAA,MAAM,qBAAqB,EAAE,OAAO,MAEnC,CAAA;AAED,KAAK,qBAAqB,GAAG,OAAO,qBAAqB,CAAA;AAEzD,OAAO,CAAC,MAAM,oBAAoB,EAAE,OAAO,MAAM,CAAA;AAEjD,kFAAkF;AAClF,MAAM,WAAW,sBAAsB,CAAC,GAAG,SAAS,MAAM;IACxD,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAA;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,OAAO;IAClE,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAA;IACjE,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACzC;AAED,sFAAsF;AACtF,eAAO,MAAM,GAAG,GACb,KAAK,QACL,KAAK,CAAC,GAAG,SAAS,MAAM,EACvB,KAAK,GAAG,KACP,eAAe,CAAC,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAsBpD,CAAA;AAEH,2EAA2E;AAC3E,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1E,sFAAsF;AACtF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE9E,iFAAiF;AACjF,MAAM,MAAM,qBAAqB,CAAC,KAAK,EAAE,OAAO,IAAI;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IACvC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAA;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CACrD,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,IAAI,MAAM,CACrE,MAAM,EACN,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CACtC,GAAG;IACF,QAAQ,CAAC,yBAAyB,CAAC,EAAE,QAAQ,CAAA;CAC9C,CAAA;AAED,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"managedResource.d.ts","sourceRoot":"","sources":["../../src/managedResource/managedResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,7 +105,12 @@ export const tag = () => (key) => {
|
|
|
105
105
|
*
|
|
106
106
|
* @see {@link ManagedResource.tag} for creating the resource identity.
|
|
107
107
|
*/
|
|
108
|
-
export const make = () =>
|
|
108
|
+
export const make = () =>
|
|
109
|
+
// NOTE: the Entries constraint is the brand alone, not Entry. Naming Entry
|
|
110
|
+
// here hands the checker a concrete onAcquired signature through the return
|
|
111
|
+
// position, which poisons contextual typing of destructured onAcquired
|
|
112
|
+
// parameters at every entry call site (their bindings become any).
|
|
113
|
+
(build) => {
|
|
109
114
|
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
110
115
|
const entry = ((schema, config) => ({
|
|
111
116
|
schema,
|
package/dist/port/port.d.ts
CHANGED
|
@@ -125,15 +125,14 @@ export declare const subscription: <Value, Encoded, Message>(port: Inbound<Value
|
|
|
125
125
|
* Effect:
|
|
126
126
|
*
|
|
127
127
|
* ```ts
|
|
128
|
-
* const ReportCount = Command.define(
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* )
|
|
128
|
+
* const ReportCount = Command.define('ReportCount', {
|
|
129
|
+
* args: { count: S.Number },
|
|
130
|
+
* messages: [CompletedReportCount],
|
|
131
|
+
* execute: ({ count }) =>
|
|
132
|
+
* Port.emit(ports.outbound.countChanged, count).pipe(
|
|
133
|
+
* Effect.as(CompletedReportCount()),
|
|
134
|
+
* ),
|
|
135
|
+
* })
|
|
137
136
|
* ```
|
|
138
137
|
*
|
|
139
138
|
* When the program runs without an embed handle (started with `Runtime.run`),
|
package/dist/port/port.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/port/port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIvE,gDAAgD;AAEhD,eAAO,MAAM,aAAa,EAAE,OAAO,MAEN,CAAA;AAE7B,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA;AAEhD,iDAAiD;AAEjD,eAAO,MAAM,cAAc,EAAE,OAAO,MAEN,CAAA;AAE9B,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAA;AAElD;;;;;GAKG;AACH,MAAM,WAAW,OAAO,CAAC,KAAK,EAAE,OAAO;IACrC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC9C;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ,CAAC,KAAK,EAAE,OAAO;IACtC,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC9C;AAED;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;CACxD,CAAC,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,GAAI,KAAK,EAAE,OAAO,EACpC,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,KAAK,EAAE,OAAO,CAGvB,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,EAAE,OAAO,EACrC,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAGxB,CAAA;AAEF;;;;8DAI8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;CACvD,CAAC,CAAA;AAEF;4CAC4C;AAC5C,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAC3E,cAAc,EAAE,CACd,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KACrB,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;CACpD,CAAC,CAAA;AAQF;;;4DAG4D;AAC5D,eAAO,MAAM,qBAAqB;kBAjBlB,OAAO;mBACN,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBAC3D,CACd,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KACrB,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;GAgBpD,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,QAAO,gBAyBvC,CAAA;AAYD;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,EAAE,OAAO,EACnC,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,KAAK,CAuBnB,CAAA;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,EAAE,OAAO,EAAE,OAAO,EAClD,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAC7B,WAAW,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,oHACc,CAAA;AAEpD
|
|
1
|
+
{"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/port/port.ts"],"names":[],"mappings":"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"}
|
package/dist/port/port.js
CHANGED
|
@@ -128,15 +128,14 @@ export const subscription = (port, toMessage) => persistent(Stream.map(stream(po
|
|
|
128
128
|
* Effect:
|
|
129
129
|
*
|
|
130
130
|
* ```ts
|
|
131
|
-
* const ReportCount = Command.define(
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* )
|
|
131
|
+
* const ReportCount = Command.define('ReportCount', {
|
|
132
|
+
* args: { count: S.Number },
|
|
133
|
+
* messages: [CompletedReportCount],
|
|
134
|
+
* execute: ({ count }) =>
|
|
135
|
+
* Port.emit(ports.outbound.countChanged, count).pipe(
|
|
136
|
+
* Effect.as(CompletedReportCount()),
|
|
137
|
+
* ),
|
|
138
|
+
* })
|
|
140
139
|
* ```
|
|
141
140
|
*
|
|
142
141
|
* When the program runs without an embed handle (started with `Runtime.run`),
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Schema as S } from 'effect';
|
|
2
|
+
import * as CustomElement from '../../customElement/index.js';
|
|
3
|
+
import type { Html, HtmlBuilder } from '../../html/index.js';
|
|
4
|
+
export declare const hexColorPicker: CustomElement.CustomElementSpec<"hex-color-picker", {
|
|
5
|
+
color: S.String;
|
|
6
|
+
}, {
|
|
7
|
+
'color-changed': S.Struct<{
|
|
8
|
+
readonly value: S.String;
|
|
9
|
+
}>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const Model: S.Struct<{
|
|
12
|
+
readonly color: S.String;
|
|
13
|
+
}>;
|
|
14
|
+
export type Model = typeof Model.Type;
|
|
15
|
+
export declare const ChangedColor: import("../../schema/index.js").CallableTaggedStruct<"ChangedColor", {
|
|
16
|
+
value: S.String;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const Message: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"ChangedColor", {
|
|
19
|
+
value: S.String;
|
|
20
|
+
}>]>;
|
|
21
|
+
export type Message = typeof Message.Type;
|
|
22
|
+
export declare const initialModel: {
|
|
23
|
+
readonly color: string;
|
|
24
|
+
};
|
|
25
|
+
export declare const update: (model: Model, message: Message) => readonly [Model, ReadonlyArray<never>];
|
|
26
|
+
export declare const view: (model: Model, h: HtmlBuilder<Message>) => Html;
|
|
27
|
+
export declare const viewWithoutHandler: (model: Model, h: HtmlBuilder<Message>) => Html;
|
|
28
|
+
//# sourceMappingURL=colorPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorPicker.d.ts","sourceRoot":"","sources":["../../../src/test/apps/colorPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,KAAK,aAAa,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAM5D,eAAO,MAAM,cAAc;;;;;;EAQzB,CAAA;AAIF,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,YAAY;;EAAyC,CAAA;AAElE,eAAO,MAAM,OAAO;;IAA0B,CAAA;AAC9C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;CAAmC,CAAA;AAI5D,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAkB5D,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,EACZ,GAAG,WAAW,CAAC,OAAO,CAAC,KACtB,IAUF,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Match as M, Schema as S } from 'effect';
|
|
2
|
+
import * as CustomElement from '../../customElement/index.js';
|
|
3
|
+
import { m } from '../../message/index.js';
|
|
4
|
+
import { evo } from '../../struct/index.js';
|
|
5
|
+
// CUSTOM ELEMENT
|
|
6
|
+
export const hexColorPicker = CustomElement.define({
|
|
7
|
+
tag: 'hex-color-picker',
|
|
8
|
+
properties: {
|
|
9
|
+
color: S.String,
|
|
10
|
+
},
|
|
11
|
+
events: {
|
|
12
|
+
'color-changed': S.Struct({ value: S.String }),
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
// MODEL
|
|
16
|
+
export const Model = S.Struct({ color: S.String });
|
|
17
|
+
// MESSAGE
|
|
18
|
+
export const ChangedColor = m('ChangedColor', { value: S.String });
|
|
19
|
+
export const Message = S.Union([ChangedColor]);
|
|
20
|
+
// INIT
|
|
21
|
+
export const initialModel = Model.make({ color: '#000000' });
|
|
22
|
+
// UPDATE
|
|
23
|
+
export const update = (model, message) => M.value(message).pipe(M.withReturnType(), M.tagsExhaustive({
|
|
24
|
+
ChangedColor: ({ value }) => [evo(model, { color: () => value }), []],
|
|
25
|
+
}));
|
|
26
|
+
// VIEW
|
|
27
|
+
export const view = (model, h) => {
|
|
28
|
+
const picker = hexColorPicker.withMessage(h);
|
|
29
|
+
return h.div([], [
|
|
30
|
+
picker([
|
|
31
|
+
picker.Color(model.color),
|
|
32
|
+
picker.OnColorChanged(detail => ChangedColor({ value: detail.value })),
|
|
33
|
+
], []),
|
|
34
|
+
h.span([h.Role('status')], [model.color]),
|
|
35
|
+
]);
|
|
36
|
+
};
|
|
37
|
+
export const viewWithoutHandler = (model, h) => {
|
|
38
|
+
const picker = hexColorPicker.withMessage(h);
|
|
39
|
+
return h.div([], [
|
|
40
|
+
picker([picker.Color(model.color)], []),
|
|
41
|
+
h.span([h.Role('status')], [model.color]),
|
|
42
|
+
]);
|
|
43
|
+
};
|
|
@@ -12,6 +12,8 @@ export declare const ClickedFetch: import("../../schema/index.js").CallableTagge
|
|
|
12
12
|
export declare const ClickedFetchById: import("../../schema/index.js").CallableTaggedStruct<"ClickedFetchById", {
|
|
13
13
|
id: S.Number;
|
|
14
14
|
}>;
|
|
15
|
+
export declare const Ticked: import("../../schema/index.js").CallableTaggedStruct<"Ticked", {}>;
|
|
16
|
+
export declare const PolledCount: import("../../schema/index.js").CallableTaggedStruct<"PolledCount", {}>;
|
|
15
17
|
export declare const StartedThreeFetches: import("../../schema/index.js").CallableTaggedStruct<"StartedThreeFetches", {}>;
|
|
16
18
|
export declare const StartedTwoFetchesById: import("../../schema/index.js").CallableTaggedStruct<"StartedTwoFetchesById", {}>;
|
|
17
19
|
export declare const StartedMixedFetches: import("../../schema/index.js").CallableTaggedStruct<"StartedMixedFetches", {}>;
|
|
@@ -23,7 +25,7 @@ export declare const FailedFetchCount: import("../../schema/index.js").CallableT
|
|
|
23
25
|
}>;
|
|
24
26
|
export declare const Message: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"ClickedIncrement", {}>, import("../../schema/index.js").CallableTaggedStruct<"ClickedDecrement", {}>, import("../../schema/index.js").CallableTaggedStruct<"ClickedFetch", {}>, import("../../schema/index.js").CallableTaggedStruct<"ClickedFetchById", {
|
|
25
27
|
id: S.Number;
|
|
26
|
-
}>, import("../../schema/index.js").CallableTaggedStruct<"StartedThreeFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedTwoFetchesById", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedMixedFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"SucceededFetchCount", {
|
|
28
|
+
}>, import("../../schema/index.js").CallableTaggedStruct<"Ticked", {}>, import("../../schema/index.js").CallableTaggedStruct<"PolledCount", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedThreeFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedTwoFetchesById", {}>, import("../../schema/index.js").CallableTaggedStruct<"StartedMixedFetches", {}>, import("../../schema/index.js").CallableTaggedStruct<"SucceededFetchCount", {
|
|
27
29
|
count: S.Number;
|
|
28
30
|
}>, import("../../schema/index.js").CallableTaggedStruct<"FailedFetchCount", {
|
|
29
31
|
error: S.String;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAM5D,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,gBAAgB;;EAA0C,CAAA;AACvE,eAAO,MAAM,MAAM,oEAAc,CAAA;AACjC,eAAO,MAAM,WAAW,yEAAmB,CAAA;AAC3C,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,mBAAmB;;EAAgD,CAAA;AAChF,eAAO,MAAM,gBAAgB;;EAA6C,CAAA;AAE1E,eAAO,MAAM,OAAO;;;;;;IAYlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,UAAU;;;iBAGrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;iBAIzB,CAAA;AAIF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAmCxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,IAe5D,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Effect, Match as M, Schema as S } from 'effect';
|
|
1
|
+
import { Array, Effect, Match as M, Number, Schema as S } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { m } from '../../message/index.js';
|
|
4
|
+
import { evo } from '../../struct/index.js';
|
|
4
5
|
// MODEL
|
|
5
6
|
export const Model = S.Struct({
|
|
6
7
|
count: S.Number,
|
|
@@ -11,6 +12,8 @@ export const ClickedIncrement = m('ClickedIncrement');
|
|
|
11
12
|
export const ClickedDecrement = m('ClickedDecrement');
|
|
12
13
|
export const ClickedFetch = m('ClickedFetch');
|
|
13
14
|
export const ClickedFetchById = m('ClickedFetchById', { id: S.Number });
|
|
15
|
+
export const Ticked = m('Ticked');
|
|
16
|
+
export const PolledCount = m('PolledCount');
|
|
14
17
|
export const StartedThreeFetches = m('StartedThreeFetches');
|
|
15
18
|
export const StartedTwoFetchesById = m('StartedTwoFetchesById');
|
|
16
19
|
export const StartedMixedFetches = m('StartedMixedFetches');
|
|
@@ -21,6 +24,8 @@ export const Message = S.Union([
|
|
|
21
24
|
ClickedDecrement,
|
|
22
25
|
ClickedFetch,
|
|
23
26
|
ClickedFetchById,
|
|
27
|
+
Ticked,
|
|
28
|
+
PolledCount,
|
|
24
29
|
StartedThreeFetches,
|
|
25
30
|
StartedTwoFetchesById,
|
|
26
31
|
StartedMixedFetches,
|
|
@@ -28,16 +33,25 @@ export const Message = S.Union([
|
|
|
28
33
|
FailedFetchCount,
|
|
29
34
|
]);
|
|
30
35
|
// COMMAND
|
|
31
|
-
export const FetchCount = Command.define('FetchCount',
|
|
32
|
-
|
|
36
|
+
export const FetchCount = Command.define('FetchCount', {
|
|
37
|
+
messages: [SucceededFetchCount, FailedFetchCount],
|
|
38
|
+
execute: Effect.sync(() => SucceededFetchCount({ count: 0 })),
|
|
39
|
+
});
|
|
40
|
+
export const FetchCountById = Command.define('FetchCountById', {
|
|
41
|
+
args: { id: S.Number },
|
|
42
|
+
messages: [SucceededFetchCount, FailedFetchCount],
|
|
43
|
+
execute: ({ id }) => Effect.sync(() => SucceededFetchCount({ count: id })),
|
|
44
|
+
});
|
|
33
45
|
// INIT
|
|
34
46
|
export const initialModel = { count: 0, log: [] };
|
|
35
47
|
// UPDATE
|
|
36
48
|
export const update = (model, message) => M.value(message).pipe(M.withReturnType(), M.tagsExhaustive({
|
|
37
|
-
ClickedIncrement: () => [
|
|
38
|
-
ClickedDecrement: () => [
|
|
49
|
+
ClickedIncrement: () => [evo(model, { count: Number.increment }), []],
|
|
50
|
+
ClickedDecrement: () => [evo(model, { count: Number.decrement }), []],
|
|
39
51
|
ClickedFetch: () => [model, [FetchCount()]],
|
|
40
52
|
ClickedFetchById: ({ id }) => [model, [FetchCountById({ id })]],
|
|
53
|
+
Ticked: () => [evo(model, { count: Number.increment }), []],
|
|
54
|
+
PolledCount: () => [model, [FetchCount()]],
|
|
41
55
|
StartedThreeFetches: () => [
|
|
42
56
|
model,
|
|
43
57
|
[FetchCount(), FetchCount(), FetchCount()],
|
|
@@ -56,7 +70,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
56
70
|
],
|
|
57
71
|
],
|
|
58
72
|
SucceededFetchCount: ({ count }) => [
|
|
59
|
-
{ count, log:
|
|
73
|
+
evo(model, { count: () => count, log: Array.append(count) }),
|
|
60
74
|
[],
|
|
61
75
|
],
|
|
62
76
|
FailedFetchCount: () => [model, []],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crashOnRender.d.ts","sourceRoot":"","sources":["../../../src/test/apps/crashOnRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMhE,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,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;;;;EAAsD,CAAA;AAChF,eAAO,MAAM,cAAc;;;;;EAA0C,CAAA;AACrE,eAAO,MAAM,oBAAoB;;EAA8C,CAAA;AAE/E,eAAO,MAAM,OAAO;;;;;;;;;;;;IAKlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAMzC,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAGpD,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;
|
|
1
|
+
{"version":3,"file":"crashOnRender.d.ts","sourceRoot":"","sources":["../../../src/test/apps/crashOnRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMhE,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,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;;;;EAAsD,CAAA;AAChF,eAAO,MAAM,cAAc;;;;;EAA0C,CAAA;AACrE,eAAO,MAAM,oBAAoB;;EAA8C,CAAA;AAE/E,eAAO,MAAM,OAAO;;;;;;;;;;;;IAKlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAMzC,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAGpD,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;iBAGxB,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,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiBxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,KAAG,QA4B5D,CAAA"}
|