foldkit 0.165.0 → 0.166.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 +2 -1
- package/dist/devTools/serialize.d.ts +8 -4
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +12 -8
- package/dist/experimental/index.d.ts +1 -0
- package/dist/experimental/index.d.ts.map +1 -1
- package/dist/experimental/index.js +1 -0
- package/dist/experimental/query/define.d.ts +15 -0
- package/dist/experimental/query/define.d.ts.map +1 -0
- package/dist/experimental/query/define.js +10 -0
- package/dist/experimental/query/index.d.ts +4 -0
- package/dist/experimental/query/index.d.ts.map +1 -0
- package/dist/experimental/query/index.js +1 -0
- package/dist/experimental/query/internal.d.ts +57 -0
- package/dist/experimental/query/internal.d.ts.map +1 -0
- package/dist/experimental/query/internal.js +25 -0
- package/dist/experimental/query/keyedQuery.d.ts +89 -0
- package/dist/experimental/query/keyedQuery.d.ts.map +1 -0
- package/dist/experimental/query/keyedQuery.js +144 -0
- package/dist/experimental/query/public.d.ts +4 -0
- package/dist/experimental/query/public.d.ts.map +1 -0
- package/dist/experimental/query/public.js +1 -0
- package/dist/experimental/query/query.d.ts +78 -0
- package/dist/experimental/query/query.d.ts.map +1 -0
- package/dist/experimental/query/query.js +102 -0
- package/dist/managedResource/managedResource.d.ts +7 -7
- package/dist/managedResource/managedResource.d.ts.map +1 -1
- package/dist/managedResource/managedResource.js +7 -7
- package/dist/runtime/devToolsConfig.d.ts +2 -0
- package/dist/runtime/devToolsConfig.d.ts.map +1 -1
- package/dist/subscription/subscription.d.ts +33 -72
- package/dist/subscription/subscription.d.ts.map +1 -1
- package/dist/subscription/subscription.js +31 -61
- package/package.json +5 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/experimental/query/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Effect, Number, Schema, pipe } from 'effect';
|
|
2
|
+
import * as AsyncData from '../../asyncData/index.js';
|
|
3
|
+
import * as Command from '../../command/index.js';
|
|
4
|
+
import { defineMessageUnion } from '../../message/index.js';
|
|
5
|
+
import { modifyFields } from '../../struct/index.js';
|
|
6
|
+
import * as Update from '../../update/index.js';
|
|
7
|
+
import { applyTransition, isParentFieldConfig, parentFieldToLens, runExecute, } from './internal.js';
|
|
8
|
+
const makeQueryMessage = (data, error) => defineMessageUnion({
|
|
9
|
+
CompletedFetch: {
|
|
10
|
+
generation: Schema.Number,
|
|
11
|
+
result: Schema.Result(data, error),
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
/** Builds the Model Schema for a Query. */
|
|
15
|
+
export const makeQueryModel = (data, error) => Schema.Struct({
|
|
16
|
+
data: AsyncData.Schema(data, error).schema,
|
|
17
|
+
generation: Schema.Number,
|
|
18
|
+
});
|
|
19
|
+
export function defineQuery(config) {
|
|
20
|
+
const Model = makeQueryModel(config.data, config.error);
|
|
21
|
+
const Message = makeQueryMessage(config.data, config.error);
|
|
22
|
+
const Fetch = Command.define(`Fetch${config.name}`, {
|
|
23
|
+
args: { generation: Schema.Number },
|
|
24
|
+
messages: [Message.CompletedFetch],
|
|
25
|
+
execute: ({ generation }) => pipe(config.execute, Effect.result, Effect.map(result => Message.CompletedFetch({ generation, result }))),
|
|
26
|
+
});
|
|
27
|
+
const store = {
|
|
28
|
+
read: model => model.data,
|
|
29
|
+
start: (model, _args, data) => {
|
|
30
|
+
const nextGeneration = Number.increment(model.generation);
|
|
31
|
+
return {
|
|
32
|
+
model: modifyFields(model, {
|
|
33
|
+
data: () => data,
|
|
34
|
+
generation: () => nextGeneration,
|
|
35
|
+
}),
|
|
36
|
+
generation: nextGeneration,
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
fetch: (_args, generation) => Fetch({ generation }),
|
|
40
|
+
};
|
|
41
|
+
const init = () => Model.make({ data: AsyncData.Idle(), generation: 0 });
|
|
42
|
+
const reset = (model) => ({
|
|
43
|
+
model: modifyFields(model, { data: () => AsyncData.Idle() }),
|
|
44
|
+
});
|
|
45
|
+
const read = (model) => model.data;
|
|
46
|
+
const revalidate = (model) => applyTransition(store, model, undefined, AsyncData.revalidate);
|
|
47
|
+
const revalidateOrLoad = (model) => applyTransition(store, model, undefined, AsyncData.revalidateOrLoad);
|
|
48
|
+
const loadIfMissing = (model) => applyTransition(store, model, undefined, AsyncData.loadIfMissing);
|
|
49
|
+
const update = (model, message) => Message.match(message, {
|
|
50
|
+
CompletedFetch({ generation, result }) {
|
|
51
|
+
const data = read(model);
|
|
52
|
+
if (!AsyncData.isPending(data) || generation !== model.generation) {
|
|
53
|
+
return { model };
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
model: modifyFields(model, {
|
|
57
|
+
data: () => AsyncData.settle(data, result),
|
|
58
|
+
}),
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
const liftFromLens = (lens) => ({
|
|
63
|
+
fold: Update.foldChild({ update, ...lens }),
|
|
64
|
+
reset: Update.foldChildStep({
|
|
65
|
+
update: reset,
|
|
66
|
+
...lens,
|
|
67
|
+
}),
|
|
68
|
+
revalidate: Update.foldChildStep({
|
|
69
|
+
update: revalidate,
|
|
70
|
+
...lens,
|
|
71
|
+
}),
|
|
72
|
+
revalidateOrLoad: Update.foldChildStep({
|
|
73
|
+
update: revalidateOrLoad,
|
|
74
|
+
...lens,
|
|
75
|
+
}),
|
|
76
|
+
loadIfMissing: Update.foldChildStep({
|
|
77
|
+
update: loadIfMissing,
|
|
78
|
+
...lens,
|
|
79
|
+
}),
|
|
80
|
+
});
|
|
81
|
+
function lift(config) {
|
|
82
|
+
if (isParentFieldConfig(config)) {
|
|
83
|
+
return liftFromLens(parentFieldToLens(config));
|
|
84
|
+
}
|
|
85
|
+
return liftFromLens(config);
|
|
86
|
+
}
|
|
87
|
+
const run = runExecute(config.execute);
|
|
88
|
+
return {
|
|
89
|
+
Model,
|
|
90
|
+
Message,
|
|
91
|
+
Fetch,
|
|
92
|
+
init,
|
|
93
|
+
reset,
|
|
94
|
+
read,
|
|
95
|
+
update,
|
|
96
|
+
revalidate,
|
|
97
|
+
revalidateOrLoad,
|
|
98
|
+
loadIfMissing,
|
|
99
|
+
lift,
|
|
100
|
+
run,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
@@ -213,15 +213,15 @@ type ChildMessageOf<Resources> = Resources[keyof Resources] extends Entry<any, i
|
|
|
213
213
|
* context, applying a Model accessor and a Message wrapper uniformly to every
|
|
214
214
|
* entry. Per-entry requirements schemas and resource services are preserved.
|
|
215
215
|
*
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
216
|
+
* `read` returns `Some(childModel)` while the child exists and `None` while
|
|
217
|
+
* it is absent.
|
|
218
|
+
* An absent child releases its resources without reading their requirements.
|
|
219
|
+
* Use `Option.some` for a child that is always present. Each child's
|
|
220
|
+
* requirements must be `Schema.Option`-wrapped so child absence and the
|
|
221
|
+
* child's own release condition follow the same acquire/release lifecycle.
|
|
222
222
|
*/
|
|
223
223
|
export declare const lift: <Resources extends Record<string, Entry<any, any, Option.Option<any>, any, any>>>(resources: Resources) => <ParentModel, ParentMessage>(config: {
|
|
224
|
-
readonly
|
|
224
|
+
readonly read: (parentModel: ParentModel) => Option.Option<ChildModelOf<Resources>>;
|
|
225
225
|
readonly toParentMessage: (message: ChildMessageOf<Resources>) => ParentMessage;
|
|
226
226
|
}) => { 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; };
|
|
227
227
|
type RuntimeKey<Key> = Key extends string ? Key : Key extends number ? `${Key}` : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managedResource.d.ts","sourceRoot":"","sources":["../../src/managedResource/managedResource.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"managedResource.d.ts","sourceRoot":"","sources":["../../src/managedResource/managedResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,19 +125,19 @@ export const make = () =>
|
|
|
125
125
|
* context, applying a Model accessor and a Message wrapper uniformly to every
|
|
126
126
|
* entry. Per-entry requirements schemas and resource services are preserved.
|
|
127
127
|
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
128
|
+
* `read` returns `Some(childModel)` while the child exists and `None` while
|
|
129
|
+
* it is absent.
|
|
130
|
+
* An absent child releases its resources without reading their requirements.
|
|
131
|
+
* Use `Option.some` for a child that is always present. Each child's
|
|
132
|
+
* requirements must be `Schema.Option`-wrapped so child absence and the
|
|
133
|
+
* child's own release condition follow the same acquire/release lifecycle.
|
|
134
134
|
*/
|
|
135
135
|
export const lift = (resources) => (config) =>
|
|
136
136
|
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
137
137
|
Record.map(resources, resource => ({
|
|
138
138
|
schema: resource.schema,
|
|
139
139
|
resource: resource.resource,
|
|
140
|
-
modelToMaybeRequirements: (parentModel) => Option.flatMap(config.
|
|
140
|
+
modelToMaybeRequirements: (parentModel) => Option.flatMap(config.read(parentModel), resource.modelToMaybeRequirements),
|
|
141
141
|
acquire: resource.acquire,
|
|
142
142
|
release: resource.release,
|
|
143
143
|
onAcquired: (value) => config.toParentMessage(resource.onAcquired(value)),
|
|
@@ -41,6 +41,8 @@ export type DevToolsOverlay = (store: DevToolsStore, position: DevToolsPosition,
|
|
|
41
41
|
* - `excludeFromHistory`: Message `_tag` values whose dispatches should not be recorded in DevTools history. The Messages still drive `update` and the runtime as usual; they just don't appear in the history panel and don't pay the per-Message diff cost. Use for high-frequency Messages (animation frames, pointer moves, scroll events) that would flood history without adding insight.
|
|
42
42
|
* - `maxEntries`: Maximum number of recorded Messages retained in history before the oldest is evicted. Defaults to 100. Clamped to the range 20-500: smaller values keep the panel snappy under high message rates, larger values give you more scroll-back. Each retained entry stores a full Model snapshot, so memory cost scales linearly with both `maxEntries` and your Model size.
|
|
43
43
|
* - `keyframeInterval`: Number of recorded Messages between full Model snapshots. Defaults to 31. Time-travel to an index replays `update` forward from the nearest earlier keyframe, so this is a memory/time tradeoff: smaller values store more snapshots (more memory) but make each jump cheaper, down to `1` where every jump is a constant-time snapshot lookup with no replay. Reach for a denser interval when the app has a heavy `update` and time-travel jumps feel sluggish. Clamped to a minimum of 1. Forced to 1 automatically when `excludeFromHistory` is active, since excluded Messages are never replayed.
|
|
44
|
+
*
|
|
45
|
+
* DevTools records Models, Message payloads, Command args, and Mount args. A connected DevTools MCP agent can read that data. Keep secrets out of browser state where possible and use Effect `Redacted` for sensitive values the browser must temporarily hold. `excludeFromHistory` does not hide changes that enter the Model, and omitting `Message` disables agent dispatch without disabling inspection.
|
|
44
46
|
*/
|
|
45
47
|
export type DevToolsConfig = false | Readonly<{
|
|
46
48
|
show?: Visibility;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devToolsConfig.d.ts","sourceRoot":"","sources":["../../src/runtime/devToolsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,iBAAiB,CAAA;AAE5D,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,YAAY,GACZ,UAAU,GACV,SAAS,CAAA;AAEb;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,CAAA;AAEnD;;;;gFAIgF;AAChF,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,QAAQ,CAAC;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,YAAY,CAAA;CAAE,CAAC,CAAA;AAErE;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;AAE5C
|
|
1
|
+
{"version":3,"file":"devToolsConfig.d.ts","sourceRoot":"","sources":["../../src/runtime/devToolsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,iBAAiB,CAAA;AAE5D,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,YAAY,GACZ,UAAU,GACV,SAAS,CAAA;AAEb;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,CAAA;AAEnD;;;;gFAIgF;AAChF,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,QAAQ,CAAC;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,YAAY,CAAA;CAAE,CAAC,CAAA;AAErE;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,QAAQ,CAAC;IACP,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;CACnD,CAAC,CAAA;AAIN,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,YACtB,eAAe,GAAG,SAAS,KACnC,IAEF,CAAA;AAiBD;+BAC+B;AAC/B,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,IAAI,EAAE,YAAY,CAAA;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;CAC7C,CAAC,CAAA;AAEF;;;gDAGgD;AAChD,eAAO,MAAM,qBAAqB,aACtB,cAAc,GAAG,SAAS,KACnC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAmBtC,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,aAC9B,cAAc,GAAG,SAAS,KACnC,WAAW,CAAC,MAAM,CASlB,CAAA;AAEH,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,aAC1B,cAAc,GAAG,SAAS,KACnC,MAAM,GAAG,SAaT,CAAA;AAEH,6EAA6E;AAC7E,eAAO,MAAM,+BAA+B,aAChC,cAAc,GAAG,SAAS,KACnC,MAAM,GAAG,SAUT,CAAA"}
|
|
@@ -194,83 +194,47 @@ export declare const persistent: <Message, Services = never>(stream: Stream.Stre
|
|
|
194
194
|
type ChildModelOf<ChildSubscriptions> = ChildSubscriptions[keyof ChildSubscriptions] extends Subscription<infer ChildModel, any, any, any> ? ChildModel : never;
|
|
195
195
|
type ChildMessageOf<ChildSubscriptions> = ChildSubscriptions[keyof ChildSubscriptions] extends Subscription<any, infer ChildMessage, any, any> ? ChildMessage : never;
|
|
196
196
|
/**
|
|
197
|
-
* The dependencies of a
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
* A closed gate is a real teardown rather than a paused Stream. The entry's
|
|
202
|
-
* Stream is torn down, and the child's `modelToDependencies` does not run
|
|
203
|
-
* again until the parent reopens the gate, so child state that changes behind
|
|
204
|
-
* a closed gate causes no restarts.
|
|
197
|
+
* The dependencies of a lifted Subscription. `maybeDependencies` holds the
|
|
198
|
+
* child's dependencies while `read` returns `Some` and its `when` gate is
|
|
199
|
+
* open. Otherwise it holds `None`, which tears down the entry's Stream and
|
|
200
|
+
* skips the child's `modelToDependencies`.
|
|
205
201
|
*/
|
|
206
202
|
export type GatedDependencies<Dependencies> = Readonly<{
|
|
207
203
|
maybeDependencies: Option.Option<Dependencies>;
|
|
208
204
|
}>;
|
|
209
205
|
type WhenPredicate<ParentModel> = (parentModel: ParentModel) => boolean;
|
|
210
206
|
/**
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
* ungated.
|
|
207
|
+
* Additional parent conditions for named entries in a lift's `when` map.
|
|
208
|
+
* Entries omitted from the map run whenever `read` returns a child Model.
|
|
214
209
|
*/
|
|
215
210
|
export type EntryGates<ParentModel, Subscriptions> = Readonly<Partial<Record<keyof Subscriptions, WhenPredicate<ParentModel>>>>;
|
|
216
211
|
type LiftConfig<ParentModel, ParentMessage, Subscriptions> = Readonly<{
|
|
217
|
-
|
|
212
|
+
read: (parentModel: ParentModel) => Option.Option<ChildModelOf<Subscriptions>>;
|
|
218
213
|
toParentMessage: (message: ChildMessageOf<Subscriptions>) => ParentMessage;
|
|
219
|
-
|
|
220
|
-
type GatedLiftConfig<ParentModel, ParentMessage, Subscriptions> = LiftConfig<ParentModel, ParentMessage, Subscriptions> & Readonly<{
|
|
221
|
-
when: WhenPredicate<ParentModel>;
|
|
222
|
-
}>;
|
|
223
|
-
type PerEntryGatedLiftConfig<ParentModel, ParentMessage, Subscriptions, Gates> = LiftConfig<ParentModel, ParentMessage, Subscriptions> & Readonly<{
|
|
224
|
-
when: Gates;
|
|
214
|
+
when?: WhenPredicate<ParentModel> | EntryGates<ParentModel, Subscriptions>;
|
|
225
215
|
}>;
|
|
226
216
|
type LiftedSubscriptions<ParentModel, ParentMessage, Subscriptions> = {
|
|
227
|
-
readonly [K in keyof Subscriptions]: Subscriptions[K] extends Subscription<any, any, infer Dependencies, infer Services> ? Subscription<ParentModel, ParentMessage, Dependencies, Services> : never;
|
|
228
|
-
};
|
|
229
|
-
type GatedLiftedSubscriptions<ParentModel, ParentMessage, Subscriptions> = {
|
|
230
217
|
readonly [K in keyof Subscriptions]: Subscriptions[K] extends Subscription<any, any, infer Dependencies, infer Services> ? Subscription<ParentModel, ParentMessage, GatedDependencies<Dependencies>, Services> : never;
|
|
231
218
|
};
|
|
232
219
|
/**
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
* carries both possibilities.
|
|
239
|
-
*/
|
|
240
|
-
type PerEntryGatedLiftedSubscriptions<ParentModel, ParentMessage, Subscriptions, Gates> = {
|
|
241
|
-
readonly [K in keyof Subscriptions]: Subscriptions[K] extends Subscription<any, any, infer Dependencies, infer Services> ? K extends keyof Gates ? undefined extends Gates[K] ? Subscription<ParentModel, ParentMessage, Dependencies | GatedDependencies<Dependencies>, Services> : Subscription<ParentModel, ParentMessage, GatedDependencies<Dependencies>, Services> : Subscription<ParentModel, ParentMessage, Dependencies, Services> : never;
|
|
242
|
-
};
|
|
243
|
-
/**
|
|
244
|
-
* Lifts a record of child Subscriptions into a parent's Model and Message
|
|
245
|
-
* context, applying a Model accessor and a Message wrapper uniformly to
|
|
246
|
-
* every entry. Per-entry dependency types, schemas, and `keepAliveEquivalence`
|
|
247
|
-
* settings are preserved; each lifted entry's variant (with or without
|
|
248
|
-
* `readDependencies`) matches its source entry's.
|
|
220
|
+
* Lifts child Subscriptions into a parent's Model and Message context.
|
|
221
|
+
* `read` returns `Some(childModel)` while the child exists and `None` while
|
|
222
|
+
* it is absent, matching `Update.foldChild` and `ManagedResource.lift`.
|
|
223
|
+
* An absent child tears down every entry's Stream without reading the
|
|
224
|
+
* child's dependencies. Use `Option.some` for a child that is always present.
|
|
249
225
|
*
|
|
250
|
-
* The optional `when`
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
* down.
|
|
226
|
+
* The optional `when` adds conditions from the parent Model. One predicate
|
|
227
|
+
* gates every entry; an {@link EntryGates} map adds a gate only to its named
|
|
228
|
+
* entries. An entry runs only while its gate is open and `read` returns
|
|
229
|
+
* `Some`. A closed gate skips `read` as well as the child's dependency
|
|
230
|
+
* projection. Entries omitted from a gate map still stop when the child
|
|
231
|
+
* is absent.
|
|
257
232
|
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
* Subscriptions answer to different parent conditions. Entries the map
|
|
264
|
-
* omits are lifted ungated. A child never has to organize its records
|
|
265
|
-
* around its parent's gating.
|
|
266
|
-
*
|
|
267
|
-
* Gating rewrites a gated entry's dependencies to {@link GatedDependencies},
|
|
268
|
-
* so its `readDependencies` returns the last dependencies seen through an
|
|
269
|
-
* open gate. Ungated entries keep the child's dependencies untouched. Passing
|
|
270
|
-
* `ParentModel` and `ParentMessage` explicitly suppresses inference on the
|
|
271
|
-
* gate map, which leaves each named entry's dependencies as either shape; let
|
|
272
|
-
* both infer from an annotated `toChildModel` when you want the exact per
|
|
273
|
-
* entry types.
|
|
233
|
+
* Every lifted entry wraps its dependencies in {@link GatedDependencies}.
|
|
234
|
+
* The child's dependency Schema, service requirements, and
|
|
235
|
+
* `keepAliveEquivalence` are preserved inside that wrapper. A running child
|
|
236
|
+
* Stream's `readDependencies` receives current child dependencies while
|
|
237
|
+
* active, with its starting dependencies as a fallback during teardown.
|
|
274
238
|
*
|
|
275
239
|
* @example
|
|
276
240
|
* ```ts
|
|
@@ -278,23 +242,20 @@ type PerEntryGatedLiftedSubscriptions<ParentModel, ParentMessage, Subscriptions,
|
|
|
278
242
|
* Model,
|
|
279
243
|
* Message
|
|
280
244
|
* >({
|
|
281
|
-
*
|
|
282
|
-
* toParentMessage: message => GotHomeMessage({ message }),
|
|
283
|
-
* when: ({ route }) => route._tag === 'Home',
|
|
245
|
+
* read: model => model.maybeHome,
|
|
246
|
+
* toParentMessage: message => Message.GotHomeMessage({ message }),
|
|
284
247
|
* })
|
|
285
248
|
*
|
|
286
|
-
* const roomSubscriptions = Subscription.lift(Room.subscriptions)
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
249
|
+
* const roomSubscriptions = Subscription.lift(Room.subscriptions)<
|
|
250
|
+
* Model,
|
|
251
|
+
* Message
|
|
252
|
+
* >({
|
|
253
|
+
* read: model => Option.some(model.room),
|
|
254
|
+
* toParentMessage: message => Message.GotRoomMessage({ message }),
|
|
290
255
|
* when: { roomKeyboard: ({ route }) => route._tag === 'Room' },
|
|
291
256
|
* })
|
|
292
257
|
* ```
|
|
293
258
|
*/
|
|
294
|
-
export declare const lift: <Subscriptions extends Readonly<Record<string, Subscription<any, any, any, any>>>>(subscriptions: Subscriptions) =>
|
|
295
|
-
<ParentModel, ParentMessage>(config: GatedLiftConfig<ParentModel, ParentMessage, Subscriptions>): GatedLiftedSubscriptions<ParentModel, ParentMessage, Subscriptions>;
|
|
296
|
-
<ParentModel, ParentMessage, Gates extends EntryGates<ParentModel, Subscriptions> = EntryGates<ParentModel, Subscriptions>>(config: PerEntryGatedLiftConfig<ParentModel, ParentMessage, Subscriptions, Gates>): PerEntryGatedLiftedSubscriptions<ParentModel, ParentMessage, Subscriptions, Gates>;
|
|
297
|
-
<ParentModel, ParentMessage>(config: LiftConfig<ParentModel, ParentMessage, Subscriptions>): LiftedSubscriptions<ParentModel, ParentMessage, Subscriptions>;
|
|
298
|
-
};
|
|
259
|
+
export declare const lift: <Subscriptions extends Readonly<Record<string, Subscription<any, any, any, any>>>>(subscriptions: Subscriptions) => <ParentModel, ParentMessage>(config: LiftConfig<ParentModel, ParentMessage, Subscriptions>) => LiftedSubscriptions<ParentModel, ParentMessage, Subscriptions>;
|
|
299
260
|
export {};
|
|
300
261
|
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/subscription/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/subscription/subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Array, Option, Record, Schema, Stream, pipe, } from 'effect';
|
|
1
|
+
import { Array, Function, Option, Record, Schema, Stream, pipe, } from 'effect';
|
|
2
2
|
/**
|
|
3
3
|
* Declares a Subscriptions record. The Model, Message, and optional Services
|
|
4
4
|
* generics are provided up front; the entries record follows, built from
|
|
@@ -108,38 +108,22 @@ export const persistent = (stream) => ({
|
|
|
108
108
|
});
|
|
109
109
|
const toEntryWhen = (when, key) => {
|
|
110
110
|
if (when === undefined) {
|
|
111
|
-
return
|
|
111
|
+
return Function.constTrue;
|
|
112
112
|
}
|
|
113
113
|
else if (typeof when === 'function') {
|
|
114
|
-
return
|
|
114
|
+
return when;
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
|
-
return pipe(Record.get(when, key), Option.flatMap(Option.fromNullishOr));
|
|
117
|
+
return pipe(Record.get(when, key), Option.flatMap(Option.fromNullishOr), Option.getOrElse(() => Function.constTrue));
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
120
|
const toParentStream = (config, stream) => Stream.map(stream, config.toParentMessage);
|
|
121
|
-
const toLiftedEntry = (subscription, config) => {
|
|
122
|
-
const modelToDependencies = (parentModel) => subscription.modelToDependencies(config.toChildModel(parentModel));
|
|
123
|
-
if (subscription.keepAliveEquivalence !== undefined) {
|
|
124
|
-
return {
|
|
125
|
-
dependenciesSchema: subscription.dependenciesSchema,
|
|
126
|
-
modelToDependencies,
|
|
127
|
-
keepAliveEquivalence: subscription.keepAliveEquivalence,
|
|
128
|
-
dependenciesToStream: (dependencies, readDependencies) => toParentStream(config, subscription.dependenciesToStream(dependencies, readDependencies)),
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
return {
|
|
132
|
-
dependenciesSchema: subscription.dependenciesSchema,
|
|
133
|
-
modelToDependencies,
|
|
134
|
-
dependenciesToStream: (dependencies) => toParentStream(config, subscription.dependenciesToStream(dependencies)),
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
const toGatedEntry = (subscription, config, when) => {
|
|
121
|
+
const toLiftedEntry = (subscription, config, when) => {
|
|
138
122
|
const dependenciesSchema = Schema.Struct({
|
|
139
123
|
maybeDependencies: Schema.Option(subscription.dependenciesSchema),
|
|
140
124
|
});
|
|
141
125
|
const modelToDependencies = (parentModel) => ({
|
|
142
|
-
maybeDependencies: pipe(parentModel, Option.liftPredicate(when), Option.
|
|
126
|
+
maybeDependencies: pipe(parentModel, Option.liftPredicate(when), Option.flatMap(config.read), Option.map(subscription.modelToDependencies)),
|
|
143
127
|
});
|
|
144
128
|
if (subscription.keepAliveEquivalence !== undefined) {
|
|
145
129
|
const maybeKeepAliveEquivalence = Option.makeEquivalence(subscription.keepAliveEquivalence);
|
|
@@ -163,36 +147,24 @@ const toGatedEntry = (subscription, config, when) => {
|
|
|
163
147
|
};
|
|
164
148
|
};
|
|
165
149
|
/**
|
|
166
|
-
* Lifts
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* `
|
|
171
|
-
*
|
|
172
|
-
* The optional `when` is the parent's own gate. The parent writes it here on
|
|
173
|
-
* its `lift` call and answers it from the parent Model, which is what makes
|
|
174
|
-
* it useful: it carries the half of a condition the child cannot see, such as
|
|
175
|
-
* the route a page Submodel sits behind. The child neither declares nor sees
|
|
176
|
-
* the gate, and keeps holding its own half in `modelToDependencies`. A gated
|
|
177
|
-
* entry runs only while its gate returns `true`, and a closed gate tears it
|
|
178
|
-
* down.
|
|
179
|
-
*
|
|
180
|
-
* `when` takes either shape:
|
|
150
|
+
* Lifts child Subscriptions into a parent's Model and Message context.
|
|
151
|
+
* `read` returns `Some(childModel)` while the child exists and `None` while
|
|
152
|
+
* it is absent, matching `Update.foldChild` and `ManagedResource.lift`.
|
|
153
|
+
* An absent child tears down every entry's Stream without reading the
|
|
154
|
+
* child's dependencies. Use `Option.some` for a child that is always present.
|
|
181
155
|
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
156
|
+
* The optional `when` adds conditions from the parent Model. One predicate
|
|
157
|
+
* gates every entry; an {@link EntryGates} map adds a gate only to its named
|
|
158
|
+
* entries. An entry runs only while its gate is open and `read` returns
|
|
159
|
+
* `Some`. A closed gate skips `read` as well as the child's dependency
|
|
160
|
+
* projection. Entries omitted from a gate map still stop when the child
|
|
161
|
+
* is absent.
|
|
188
162
|
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
* both infer from an annotated `toChildModel` when you want the exact per
|
|
195
|
-
* entry types.
|
|
163
|
+
* Every lifted entry wraps its dependencies in {@link GatedDependencies}.
|
|
164
|
+
* The child's dependency Schema, service requirements, and
|
|
165
|
+
* `keepAliveEquivalence` are preserved inside that wrapper. A running child
|
|
166
|
+
* Stream's `readDependencies` receives current child dependencies while
|
|
167
|
+
* active, with its starting dependencies as a fallback during teardown.
|
|
196
168
|
*
|
|
197
169
|
* @example
|
|
198
170
|
* ```ts
|
|
@@ -200,22 +172,20 @@ const toGatedEntry = (subscription, config, when) => {
|
|
|
200
172
|
* Model,
|
|
201
173
|
* Message
|
|
202
174
|
* >({
|
|
203
|
-
*
|
|
204
|
-
* toParentMessage: message => GotHomeMessage({ message }),
|
|
205
|
-
* when: ({ route }) => route._tag === 'Home',
|
|
175
|
+
* read: model => model.maybeHome,
|
|
176
|
+
* toParentMessage: message => Message.GotHomeMessage({ message }),
|
|
206
177
|
* })
|
|
207
178
|
*
|
|
208
|
-
* const roomSubscriptions = Subscription.lift(Room.subscriptions)
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
179
|
+
* const roomSubscriptions = Subscription.lift(Room.subscriptions)<
|
|
180
|
+
* Model,
|
|
181
|
+
* Message
|
|
182
|
+
* >({
|
|
183
|
+
* read: model => Option.some(model.room),
|
|
184
|
+
* toParentMessage: message => Message.GotRoomMessage({ message }),
|
|
212
185
|
* when: { roomKeyboard: ({ route }) => route._tag === 'Room' },
|
|
213
186
|
* })
|
|
214
187
|
* ```
|
|
215
188
|
*/
|
|
216
189
|
export const lift = (subscriptions) => (config) =>
|
|
217
190
|
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
218
|
-
Record.map(subscriptions, (subscription, key) =>
|
|
219
|
-
onNone: () => toLiftedEntry(subscription, config),
|
|
220
|
-
onSome: entryWhen => toGatedEntry(subscription, config, entryWhen),
|
|
221
|
-
}));
|
|
191
|
+
Record.map(subscriptions, (subscription, key) => toLiftedEntry(subscription, config, toEntryWhen(config.when, key)));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "foldkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.166.0",
|
|
4
4
|
"description": "A TypeScript frontend framework, built on Effect and architected like Elm",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -47,6 +47,10 @@
|
|
|
47
47
|
"types": "./dist/experimental/machine/public.d.ts",
|
|
48
48
|
"import": "./dist/experimental/machine/public.js"
|
|
49
49
|
},
|
|
50
|
+
"./experimental/query": {
|
|
51
|
+
"types": "./dist/experimental/query/public.d.ts",
|
|
52
|
+
"import": "./dist/experimental/query/public.js"
|
|
53
|
+
},
|
|
50
54
|
"./experimental/server": {
|
|
51
55
|
"types": "./dist/experimental/server/public.d.ts",
|
|
52
56
|
"import": "./dist/experimental/server/public.js"
|