@pumped-fn/core-next 0.5.43 → 0.5.44
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/CHANGELOG.md +7 -0
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
4
4
|
|
5
|
+
## [0.5.44](https://github.com/pumped-fn/pumped-fn/compare/@pumped-fn/next@0.5.43...@pumped-fn/next@0.5.44) (2025-06-27)
|
6
|
+
|
7
|
+
|
8
|
+
### Features
|
9
|
+
|
10
|
+
* **core:** added event listening for resolve, update and dispose ([238001b](https://github.com/pumped-fn/pumped-fn/commit/238001b2d972fd1d48d5f7abc98d85a5495c1306))
|
11
|
+
|
5
12
|
## [0.5.43](https://github.com/pumped-fn/pumped-fn/compare/@pumped-fn/next@0.5.42...@pumped-fn/next@0.5.43) (2025-06-24)
|
6
13
|
|
7
14
|
|
package/dist/index.d.ts
CHANGED
@@ -143,6 +143,15 @@ declare namespace Core {
|
|
143
143
|
value: T;
|
144
144
|
}
|
145
145
|
export type InferOutput<T> = T extends Executor<infer U> | Reactive<infer U> | PreparedExecutor<infer U> ? Awaited<U> : T extends Lazy<infer U> | Static<infer U> ? Accessor<Awaited<U>> : T extends AdaptedExecutor<infer A, infer U> ? (...args: A) => Promise<Awaited<U>> : never;
|
146
|
+
export type Event = "resolve" | "update" | "release";
|
147
|
+
export type Replacer = Preset<unknown>;
|
148
|
+
type EventCallbackResult = void | Replacer;
|
149
|
+
export type ChangeCallback = (event: "resolve" | "update", executor: Executor<unknown>, resolved: unknown, scope: Scope) => EventCallbackResult;
|
150
|
+
export type ReleaseCallback = (event: "release", executor: Executor<unknown>, scope: Scope) => void | Promise<void>;
|
151
|
+
export type Middleware = {
|
152
|
+
init?: (scope: Scope) => void | Promise<void>;
|
153
|
+
dispose?: (scope: Scope) => void | Promise<void>;
|
154
|
+
};
|
146
155
|
export interface Scope {
|
147
156
|
accessor<T>(executor: Core.Executor<T>, eager?: boolean): Accessor<T>;
|
148
157
|
resolve<T>(executor: Core.Executor<T>): Promise<T>;
|
@@ -151,6 +160,9 @@ declare namespace Core {
|
|
151
160
|
release(executor: Executor<any>, soft?: boolean): Promise<void>;
|
152
161
|
dispose(): Promise<void>;
|
153
162
|
onUpdate<T>(executor: Executor<T>, callback: (accessor: Accessor<T>) => void): Cleanup;
|
163
|
+
onChange(cb: ChangeCallback): Cleanup;
|
164
|
+
onRelease(cb: ReleaseCallback): Cleanup;
|
165
|
+
use(middleware: Middleware): Cleanup;
|
154
166
|
}
|
155
167
|
}
|
156
168
|
|
@@ -176,6 +188,7 @@ declare function findValue<V>(executor: Meta.MetaContainer | Meta.Meta[] | undef
|
|
176
188
|
//#endregion
|
177
189
|
//#region src/scope.d.ts
|
178
190
|
declare function createScope(...presets: Core.Preset<unknown>[]): Core.Scope;
|
191
|
+
declare function middleware(m: Core.Middleware): Core.Middleware;
|
179
192
|
|
180
193
|
//#endregion
|
181
194
|
//#region src/ssch.d.ts
|
@@ -184,5 +197,5 @@ declare function validateAsync<TSchema extends StandardSchemaV1>(schema: TSchema
|
|
184
197
|
declare function custom<T>(): StandardSchemaV1<T, T>;
|
185
198
|
|
186
199
|
//#endregion
|
187
|
-
export { AdaptedExecutor, Core, Escapable, Meta, PreparedExecutor, SchemaError, StandardSchemaV1, adapt, createScope, custom, derive, executorSymbol, findValue, findValues, getValue, isExecutor, isLazyExecutor, isMainExecutor, isReactiveExecutor, isStaticExecutor, meta, metaSymbol, prepare, preset, provide, resolves, validate, validateAsync };
|
200
|
+
export { AdaptedExecutor, Core, Escapable, Meta, PreparedExecutor, SchemaError, StandardSchemaV1, adapt, createScope, custom, derive, executorSymbol, findValue, findValues, getValue, isExecutor, isLazyExecutor, isMainExecutor, isReactiveExecutor, isStaticExecutor, meta, metaSymbol, middleware, prepare, preset, provide, resolves, validate, validateAsync };
|
188
201
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["scope: Core.Scope","executors: { [K in keyof T]: T[K] }","executor: Core.Executor<T>","executor: Core.Executor<(...args: A) => Promise<T> | T>","executorSymbol: unique symbol","metaSymbol: unique symbol","value: unknown","issues: ReadonlyArray<StandardSchemaV1.Issue>","value: V","d: D","source: MetaContainer | Meta[] | undefined","scope: Controller","dependencies: D","cleanup: Cleanup","force?: boolean","soft?: boolean","updateFn: T | ((current: T) => T)","current: T","callback: (value: T) => void","value: T","executor: Core.Executor<T>","eager?: boolean","executor: Executor<T>","executor: Executor<any>","callback: (accessor: Accessor<T>) => void","accessor: Accessor<T>","executor: Core.BaseExecutor<unknown>","executor: unknown","input: unknown","factory: Core.NoDependencyFn<T>","dependencies: D","factory: Core.DependentFn<T, Core.InferOutput<D>>","dependencies: { [K in keyof D]: D[K] }","factory: Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>","e: Core.Executor<T> | Escapable<T>","v: T","key: string | symbol","schema: StandardSchemaV1<V>","meta: Meta.Meta<V>","executor: Meta.MetaContainer | Meta.Meta[] | undefined","meta: Meta.MetaFn<V>","schema: TSchema","data: unknown"],"sources":["../src/helpers.ts","../src/types.ts","../src/executor.ts","../src/meta.ts","../src/scope.ts","../src/ssch.ts"],"sourcesContent":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.d.ts","names":["scope: Core.Scope","executors: { [K in keyof T]: T[K] }","executor: Core.Executor<T>","executor: Core.Executor<(...args: A) => Promise<T> | T>","executorSymbol: unique symbol","metaSymbol: unique symbol","value: unknown","issues: ReadonlyArray<StandardSchemaV1.Issue>","value: V","d: D","source: MetaContainer | Meta[] | undefined","scope: Controller","dependencies: D","cleanup: Cleanup","force?: boolean","soft?: boolean","updateFn: T | ((current: T) => T)","current: T","callback: (value: T) => void","value: T","event: \"resolve\" | \"update\"","executor: Executor<unknown>","resolved: unknown","scope: Scope","event: \"release\"","executor: Core.Executor<T>","eager?: boolean","executor: Executor<T>","executor: Executor<any>","callback: (accessor: Accessor<T>) => void","accessor: Accessor<T>","cb: ChangeCallback","cb: ReleaseCallback","middleware: Middleware","executor: Core.BaseExecutor<unknown>","executor: unknown","input: unknown","factory: Core.NoDependencyFn<T>","dependencies: D","factory: Core.DependentFn<T, Core.InferOutput<D>>","dependencies: { [K in keyof D]: D[K] }","factory: Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>","e: Core.Executor<T> | Escapable<T>","v: T","key: string | symbol","schema: StandardSchemaV1<V>","meta: Meta.Meta<V>","executor: Meta.MetaContainer | Meta.Meta[] | undefined","meta: Meta.MetaFn<V>","m: Core.Middleware","schema: TSchema","data: unknown"],"sources":["../src/helpers.ts","../src/types.ts","../src/executor.ts","../src/meta.ts","../src/scope.ts","../src/ssch.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
@@ -204,6 +204,11 @@ var Scope = class {
|
|
204
204
|
cache = new Map();
|
205
205
|
cleanups = new Map();
|
206
206
|
onUpdates = new Map();
|
207
|
+
onEvents = {
|
208
|
+
change: new Set(),
|
209
|
+
release: new Set()
|
210
|
+
};
|
211
|
+
middlewares = [];
|
207
212
|
constructor(...presets) {
|
208
213
|
for (const preset$1 of presets) {
|
209
214
|
const accessor = this["~makeAccessor"](preset$1.executor);
|
@@ -282,15 +287,21 @@ var Scope = class {
|
|
282
287
|
else if (cached.kind === "rejected") throw cached.error;
|
283
288
|
else return cached.promise;
|
284
289
|
const promise = new Promise((resolve$1, reject) => {
|
285
|
-
this["~resolveDependencies"](requestor.dependencies, requestor).then((dependencies) => factory(dependencies, controller)).then((result) => {
|
290
|
+
this["~resolveDependencies"](requestor.dependencies, requestor).then((dependencies) => factory(dependencies, controller)).then(async (result) => {
|
291
|
+
let current = result;
|
292
|
+
const events = this.onEvents.change;
|
293
|
+
for (const event of events) {
|
294
|
+
const updated = event("resolve", requestor, current, this);
|
295
|
+
if (updated !== void 0 && updated.executor === requestor) current = updated.value;
|
296
|
+
}
|
286
297
|
this.cache.set(requestor, {
|
287
298
|
accessor,
|
288
299
|
value: {
|
289
300
|
kind: "resolved",
|
290
|
-
value:
|
301
|
+
value: current
|
291
302
|
}
|
292
303
|
});
|
293
|
-
resolve$1(
|
304
|
+
resolve$1(current);
|
294
305
|
}).catch((error) => {
|
295
306
|
this.cache.set(requestor, {
|
296
307
|
accessor,
|
@@ -359,21 +370,21 @@ var Scope = class {
|
|
359
370
|
this["~ensureNotDisposed"]();
|
360
371
|
this["~triggerCleanup"](e);
|
361
372
|
const accessor = this["~makeAccessor"](e);
|
373
|
+
let value;
|
362
374
|
if (typeof u === "function") {
|
363
375
|
const fn = u;
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
} else this.cache.set(e, {
|
376
|
+
value = fn(accessor.get());
|
377
|
+
} else value = u;
|
378
|
+
const events = this.onEvents.change;
|
379
|
+
for (const event of events) {
|
380
|
+
const updated = event("update", e, value, this);
|
381
|
+
if (updated !== void 0 && e === updated.executor) value = updated.value;
|
382
|
+
}
|
383
|
+
this.cache.set(e, {
|
373
384
|
accessor,
|
374
385
|
value: {
|
375
386
|
kind: "resolved",
|
376
|
-
value
|
387
|
+
value
|
377
388
|
}
|
378
389
|
});
|
379
390
|
await this["~triggerUpdate"](e);
|
@@ -383,6 +394,8 @@ var Scope = class {
|
|
383
394
|
const ce = this.cache.get(e);
|
384
395
|
if (!ce && !s) throw new Error("Executor is not yet resolved");
|
385
396
|
await this["~triggerCleanup"](e);
|
397
|
+
const events = this.onEvents.release;
|
398
|
+
for (const event of events) await event("release", e, this);
|
386
399
|
const ou = this.onUpdates.get(e);
|
387
400
|
if (ou) {
|
388
401
|
for (const t of Array.from(ou.values())) if (isMainExecutor(t)) await this.release(t, true);
|
@@ -392,11 +405,16 @@ var Scope = class {
|
|
392
405
|
}
|
393
406
|
async dispose() {
|
394
407
|
this["~ensureNotDisposed"]();
|
408
|
+
const disposeEvents = this.middlewares.map((m) => m.dispose?.(this) ?? Promise.resolve());
|
409
|
+
await Promise.all(disposeEvents);
|
395
410
|
const currents = this.cache.keys();
|
396
411
|
for (const current of currents) await this.release(current, true);
|
397
412
|
this.disposed = true;
|
398
413
|
this.cache.clear();
|
399
414
|
this.cleanups.clear();
|
415
|
+
this.onUpdates.clear();
|
416
|
+
this.onEvents.change.clear();
|
417
|
+
this.onEvents.release.clear();
|
400
418
|
}
|
401
419
|
onUpdate(e, cb) {
|
402
420
|
this["~ensureNotDisposed"]();
|
@@ -412,10 +430,38 @@ var Scope = class {
|
|
412
430
|
}
|
413
431
|
};
|
414
432
|
}
|
433
|
+
onChange(callback) {
|
434
|
+
this["~ensureNotDisposed"]();
|
435
|
+
this.onEvents["change"].add(callback);
|
436
|
+
return () => {
|
437
|
+
this["~ensureNotDisposed"]();
|
438
|
+
this.onEvents["change"].delete(callback);
|
439
|
+
};
|
440
|
+
}
|
441
|
+
onRelease(cb) {
|
442
|
+
this["~ensureNotDisposed"]();
|
443
|
+
this.onEvents["release"].add(cb);
|
444
|
+
return () => {
|
445
|
+
this["~ensureNotDisposed"]();
|
446
|
+
this.onEvents["release"].delete(cb);
|
447
|
+
};
|
448
|
+
}
|
449
|
+
use(middleware$1) {
|
450
|
+
this["~ensureNotDisposed"]();
|
451
|
+
this.middlewares.push(middleware$1);
|
452
|
+
middleware$1.init?.(this);
|
453
|
+
return () => {
|
454
|
+
this["~ensureNotDisposed"]();
|
455
|
+
this.middlewares = this.middlewares.filter((m) => m !== middleware$1);
|
456
|
+
};
|
457
|
+
}
|
415
458
|
};
|
416
459
|
function createScope(...presets) {
|
417
460
|
return new Scope(...presets);
|
418
461
|
}
|
462
|
+
function middleware(m) {
|
463
|
+
return m;
|
464
|
+
}
|
419
465
|
|
420
466
|
//#endregion
|
421
467
|
//#region src/helpers.ts
|
@@ -451,5 +497,5 @@ function adapt(scope, executor) {
|
|
451
497
|
}
|
452
498
|
|
453
499
|
//#endregion
|
454
|
-
export { SchemaError, adapt, createScope, custom, derive, executorSymbol, findValue, findValues, getValue, isExecutor, isLazyExecutor, isMainExecutor, isReactiveExecutor, isStaticExecutor, meta, metaSymbol, prepare, preset, provide, resolves, validate, validateAsync };
|
500
|
+
export { SchemaError, adapt, createScope, custom, derive, executorSymbol, findValue, findValues, getValue, isExecutor, isLazyExecutor, isMainExecutor, isReactiveExecutor, isStaticExecutor, meta, metaSymbol, middleware, prepare, preset, provide, resolves, validate, validateAsync };
|
455
501
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["executorSymbol: unique symbol","metaSymbol: unique symbol","issues: ReadonlyArray<StandardSchemaV1.Issue>","factory: Core.NoDependencyFn<T> | Core.DependentFn<T, unknown>","dependencies:\n | undefined\n | Core.UExecutor\n | Array<Core.UExecutor>\n | Record<string, Core.UExecutor>","metas: Meta.Meta[] | undefined","_: unknown","controller: Core.Controller","f","executor: Core.BaseExecutor<unknown>","executor: unknown","input: unknown","factory: Core.NoDependencyFn<T>","pdependencies:\n | Core.BaseExecutor<D>\n | Array<Core.BaseExecutor<D>>\n | Record<string, Core.BaseExecutor<unknown>>","pfactory:\n | Core.DependentFn<T, Core.InferOutput<D>>\n | Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>","e: Core.Executor<T> | Escapable<T>","v: T","schema: TSchema","data: unknown","key: string | symbol","schema: StandardSchemaV1<V>","value: V","d: Partial<V>","source: Meta.MetaContainer | Meta.Meta[] | undefined","meta: Meta.Meta<V>","meta","executor: Meta.MetaContainer | Meta.Meta[] | undefined","meta: Meta.MetaFn<V>","e: Core.UExecutor","preset","e: UE","ie: Core.UExecutor","ref: UE","ie:\n | undefined\n | Core.UExecutor\n | Core.UExecutor[]\n | Record<string, Core.UExecutor>","r: Record<string, unknown>","cleanup: Core.Cleanup","force: boolean","resolve","soft: boolean","updateFn: unknown | ((current: unknown) => unknown)","cb: (value: unknown) => void","executor: Core.Executor<T>","e: Core.Executor<T>","u: T | ((current: T) => T)","e: Core.Executor<unknown>","s: boolean","cb: (a: Core.Accessor<T>) => void | Promise<void>","ou","scope: Core.Scope","executors: { [K in keyof T]: T[K] }","result","executor: Core.Executor<T>","fn: PreparedExecutor<Core.InferOutput<Core.Executor<T>>>","executor: Core.Executor<(...args: A) => Promise<T> | T>","fn: AdaptedExecutor<A, T>","fn"],"sources":["../src/types.ts","../src/executor.ts","../src/ssch.ts","../src/meta.ts","../src/scope.ts","../src/helpers.ts"],"sourcesContent":["import { AdaptedExecutor, PreparedExecutor } from \"./helpers\";\n\nexport const executorSymbol: unique symbol = Symbol.for(\n \"@pumped-fn/core/executor\"\n);\nexport const metaSymbol: unique symbol = Symbol.for(\"@pumped-fn/core/meta\");\n\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly \"~standard\": StandardSchemaV1.Props<Input, Output>;\n}\n\nexport declare namespace StandardSchemaV1 {\n export interface Props<Input = unknown, Output = Input> {\n readonly version: 1;\n readonly vendor: string;\n readonly validate: (\n value: unknown\n ) => Result<Output> | Promise<Result<Output>>;\n readonly types?: Types<Input, Output> | undefined;\n }\n\n export type Result<Output> = SuccessResult<Output> | FailureResult;\n\n export interface SuccessResult<Output> {\n readonly value: Output;\n readonly issues?: undefined;\n }\n\n export interface FailureResult {\n readonly issues: ReadonlyArray<Issue>;\n }\n\n export interface Issue {\n readonly message: string;\n readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;\n }\n\n export interface PathSegment {\n readonly key: PropertyKey;\n }\n\n export interface Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n }\n\n export type InferInput<Schema extends StandardSchemaV1> = NonNullable<\n Schema[\"~standard\"][\"types\"]\n >[\"input\"];\n\n export type InferOutput<Schema extends StandardSchemaV1> = NonNullable<\n Schema[\"~standard\"][\"types\"]\n >[\"output\"];\n}\n\nexport class SchemaError extends Error {\n public readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;\n\n constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>) {\n super(issues[0].message);\n this.name = \"SchemaError\";\n this.issues = issues;\n }\n}\n\nexport declare namespace Meta {\n export interface MetaContainer {\n metas: Meta[] | undefined;\n }\n\n export interface Meta<V = unknown> {\n readonly [metaSymbol]: true;\n readonly key: string | symbol;\n readonly schema: StandardSchemaV1<V>;\n readonly value: V;\n }\n\n export interface MetaFn<V> {\n (value: V): Meta<V>;\n readonly key: string | symbol;\n partial: <D extends Partial<V>>(d: D) => D;\n some: (source: MetaContainer | Meta[] | undefined) => V[];\n find: (source: MetaContainer | Meta[] | undefined) => V | undefined;\n get: (source: MetaContainer | Meta[] | undefined) => V;\n }\n}\n\nexport declare namespace Core {\n export type Output<T> = T | Promise<T>;\n\n export type NoDependencyFn<T> = (scope: Controller) => Output<T>;\n export type DependentFn<T, D> = (\n dependencies: D,\n scope: Controller\n ) => Output<T>;\n export type RecordLike = Record<string, unknown>;\n export type UExecutor = BaseExecutor<unknown>;\n\n export type Cleanup = () => void | Promise<void>;\n\n export type Controller = {\n cleanup: (cleanup: Cleanup) => void;\n release: () => Promise<void>;\n scope: Scope;\n };\n\n export type Kind = \"main\" | \"reactive\" | \"lazy\" | \"static\";\n\n export interface BaseExecutor<T> extends Meta.MetaContainer {\n [executorSymbol]: Kind;\n factory: NoDependencyFn<T> | DependentFn<T, unknown> | undefined;\n dependencies:\n | undefined\n | UExecutor\n | Array<UExecutor>\n | Record<string, UExecutor>;\n }\n\n export interface Executor<T> extends BaseExecutor<T> {\n [executorSymbol]: \"main\";\n factory: NoDependencyFn<T> | DependentFn<T, unknown>;\n\n /** Return an executor controller without resolving Executor */\n readonly lazy: Lazy<T>;\n\n /** Return an resolved executor, and mark the user to be reactived for future changes */\n readonly reactive: Reactive<T>;\n\n /** Return an resolved executor with its controller */\n readonly static: Static<T>;\n }\n\n export interface Reactive<T> extends BaseExecutor<T> {\n [executorSymbol]: \"reactive\";\n factory: undefined;\n readonly executor: Executor<T>;\n }\n\n export interface Lazy<T> extends BaseExecutor<Accessor<T>> {\n [executorSymbol]: \"lazy\";\n factory: undefined;\n readonly executor: Executor<T>;\n }\n\n export interface Static<T> extends BaseExecutor<Accessor<T>> {\n [executorSymbol]: \"static\";\n factory: undefined;\n readonly executor: Executor<T>;\n }\n\n export type PendingState<T> = { kind: \"pending\"; promise: Promise<T> };\n export type ResolvedState<T> = { kind: \"resolved\"; value: T };\n export type RejectedState = { kind: \"rejected\"; error: unknown };\n\n export type ResolveState<T> =\n | PendingState<T>\n | ResolvedState<T>\n | RejectedState;\n\n export interface Accessor<T> extends Meta.MetaContainer {\n lookup(): undefined | ResolveState<T>;\n\n get(): T;\n resolve(force?: boolean): Promise<T>;\n release(soft?: boolean): Promise<void>;\n update(updateFn: T | ((current: T) => T)): Promise<void>;\n subscribe(callback: (value: T) => void): Cleanup;\n }\n\n export interface Preset<T> {\n [executorSymbol]: \"preset\";\n executor: Executor<T>;\n value: T;\n }\n\n export type InferOutput<T> = T extends\n | Executor<infer U>\n | Reactive<infer U>\n | PreparedExecutor<infer U>\n ? Awaited<U>\n : T extends Lazy<infer U> | Static<infer U>\n ? Accessor<Awaited<U>>\n : T extends AdaptedExecutor<infer A, infer U>\n ? (...args: A) => Promise<Awaited<U>>\n : never;\n\n export interface Scope {\n accessor<T>(executor: Core.Executor<T>, eager?: boolean): Accessor<T>;\n\n resolve<T>(executor: Core.Executor<T>): Promise<T>;\n resolveAccessor<T>(executor: Core.Executor<T>): Promise<Accessor<T>>;\n\n update<T>(\n executor: Executor<T>,\n updateFn: T | ((current: T) => T)\n ): Promise<void>;\n\n release(executor: Executor<any>, soft?: boolean): Promise<void>;\n\n dispose(): Promise<void>;\n\n onUpdate<T>(\n executor: Executor<T>,\n callback: (accessor: Accessor<T>) => void\n ): Cleanup;\n // onRelease<T>(executor: Executor<T>, callback: () => void): () => void;\n }\n}\n","import { Core, executorSymbol, Meta } from \"./types\";\nimport type { Escapable } from \"./helpers\";\n\nfunction createExecutor<T>(\n factory: Core.NoDependencyFn<T> | Core.DependentFn<T, unknown>,\n dependencies:\n | undefined\n | Core.UExecutor\n | Array<Core.UExecutor>\n | Record<string, Core.UExecutor>,\n metas: Meta.Meta[] | undefined\n): Core.Executor<T> {\n const executor = {\n [executorSymbol]: \"main\",\n factory: (_: unknown, controller: Core.Controller) => {\n if (dependencies === undefined) {\n const f = factory as Core.NoDependencyFn<T>;\n return f(controller);\n }\n\n const f = factory as Core.DependentFn<T, unknown>;\n return f(_, controller);\n },\n dependencies,\n metas: metas,\n } as unknown as Core.Executor<T>;\n\n const lazyExecutor = {\n [executorSymbol]: \"lazy\",\n dependencies: undefined,\n executor,\n factory: undefined,\n metas: metas,\n } satisfies Core.Lazy<T>;\n\n const reactiveExecutor = {\n [executorSymbol]: \"reactive\",\n executor,\n factory: undefined,\n dependencies: undefined,\n metas: metas,\n } satisfies Core.Reactive<T>;\n\n const staticExecutor = {\n [executorSymbol]: \"static\",\n dependencies: undefined,\n factory: undefined,\n metas: metas,\n executor,\n } satisfies Core.Static<T>;\n\n Object.defineProperties(executor, {\n lazy: {\n value: lazyExecutor,\n writable: false,\n configurable: false,\n enumerable: false,\n },\n reactive: {\n value: reactiveExecutor,\n writable: false,\n configurable: false,\n enumerable: false,\n },\n static: {\n value: staticExecutor,\n writable: false,\n configurable: false,\n enumerable: false,\n },\n });\n\n return executor;\n}\n\nexport function isLazyExecutor(\n executor: Core.BaseExecutor<unknown>\n): executor is Core.Lazy<unknown> {\n return executor[executorSymbol] === \"lazy\";\n}\n\nexport function isReactiveExecutor(\n executor: Core.BaseExecutor<unknown>\n): executor is Core.Reactive<unknown> {\n return executor[executorSymbol] === \"reactive\";\n}\n\nexport function isStaticExecutor(\n executor: Core.BaseExecutor<unknown>\n): executor is Core.Static<unknown> {\n return executor[executorSymbol] === \"static\";\n}\n\nexport function isMainExecutor(\n executor: unknown\n): executor is Core.Executor<unknown> {\n return isExecutor(executor) && executor[executorSymbol] === \"main\";\n}\n\nexport function isExecutor<T>(input: unknown): input is Core.BaseExecutor<T> {\n return typeof input === \"object\" && input !== null && executorSymbol in input;\n}\n\nexport function provide<T>(\n factory: Core.NoDependencyFn<T>,\n ...metas: Meta.Meta[]\n): Core.Executor<T> {\n return createExecutor(factory, undefined, metas);\n}\n\nexport function derive<T, D extends Core.BaseExecutor<unknown>>(\n dependencies: D,\n factory: Core.DependentFn<T, Core.InferOutput<D>>,\n ...metas: Meta.Meta[]\n): Core.Executor<T>;\n\nexport function derive<\n T,\n D extends\n | ReadonlyArray<Core.BaseExecutor<unknown>>\n | Record<string, Core.BaseExecutor<unknown>>\n>(\n dependencies: { [K in keyof D]: D[K] },\n factory: Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>,\n ...metas: Meta.Meta[]\n): Core.Executor<T>;\n\nexport function derive<T, D>(\n pdependencies:\n | Core.BaseExecutor<D>\n | Array<Core.BaseExecutor<D>>\n | Record<string, Core.BaseExecutor<unknown>>,\n pfactory:\n | Core.DependentFn<T, Core.InferOutput<D>>\n | Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>,\n ...metas: Meta.Meta[]\n): Core.Executor<T> {\n return createExecutor(pfactory as any, pdependencies, metas);\n}\n\nexport function preset<T>(\n e: Core.Executor<T> | Escapable<T>,\n v: T\n): Core.Preset<T> {\n const executor = isExecutor(e) ? e : e.escape();\n\n return {\n [executorSymbol]: \"preset\",\n value: v,\n executor,\n };\n}\n","import { SchemaError, StandardSchemaV1 } from \"./types\";\n\nexport function validate<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n data: unknown\n): Awaited<StandardSchemaV1.InferOutput<TSchema>> {\n const result = schema[\"~standard\"].validate(data);\n\n if (\"then\" in result) {\n throw new Error(\"validating async is not supported\");\n }\n\n if (result.issues) {\n throw new SchemaError(result.issues);\n }\n return result.value as any;\n}\n\nexport async function validateAsync<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n data: unknown\n): Promise<Awaited<StandardSchemaV1.InferOutput<TSchema>>> {\n const result = schema[\"~standard\"].validate(data);\n\n if (\"then\" in result) {\n const result_1 = await result;\n if (result_1.issues) {\n throw new SchemaError(result_1.issues);\n }\n return result_1.value as any;\n }\n\n if (result.issues) {\n throw new SchemaError(result.issues);\n }\n\n return Promise.resolve(result.value as any);\n}\n\nexport function custom<T>(): StandardSchemaV1<T, T> {\n return {\n \"~standard\": {\n vendor: \"pumped-fn\",\n version: 1,\n validate: (value) => {\n return { value: value as T };\n },\n },\n };\n}\n","import { validate } from \"./ssch\";\nimport { metaSymbol, StandardSchemaV1, type Meta } from \"./types\";\n\nexport const meta = <V>(\n key: string | symbol,\n schema: StandardSchemaV1<V>\n): Meta.MetaFn<V> => {\n const _key = typeof key === \"string\" ? Symbol(key) : key;\n\n const fn = (value: V) =>\n ({\n [metaSymbol]: true,\n key: _key,\n schema,\n value,\n } as unknown as Meta.MetaFn<V>);\n\n Object.defineProperty(fn, \"key\", {\n value: _key,\n configurable: false,\n enumerable: false,\n writable: false,\n });\n\n Object.defineProperty(fn, metaSymbol, {\n value: true,\n configurable: false,\n enumerable: false,\n writable: false,\n });\n\n Object.defineProperties(fn, {\n partial: {\n value: (d: Partial<V>) => {\n return Object.assign({}, fn({} as V), d);\n },\n configurable: false,\n enumerable: false,\n writable: false,\n },\n some: {\n value: (source: Meta.MetaContainer | Meta.Meta[] | undefined) =>\n findValues(source, fn as unknown as Meta.MetaFn<unknown>),\n configurable: false,\n enumerable: false,\n writable: false,\n },\n find: {\n value: (source: Meta.MetaContainer | Meta.Meta[] | undefined) =>\n findValue(source, fn as unknown as Meta.MetaFn<unknown>),\n configurable: false,\n enumerable: false,\n writable: false,\n },\n get: {\n value: (source: Meta.MetaContainer | Meta.Meta[] | undefined) =>\n getValue(\n findValue(\n source,\n fn as unknown as Meta.MetaFn<unknown>\n ) as Meta.Meta<V>\n ),\n configurable: false,\n enumerable: false,\n writable: false,\n },\n });\n\n return fn as any;\n};\n\nexport function getValue<V>(meta: Meta.Meta<V>): Awaited<V> {\n return validate(meta.schema, meta.value);\n}\n\nexport function findValues<V = unknown>(\n executor: Meta.MetaContainer | Meta.Meta[] | undefined,\n meta: Meta.MetaFn<V>\n): V[] {\n if (!executor) return [];\n\n const metas = Array.isArray(executor) ? executor : executor.metas ?? [];\n\n const maybeMeta = metas.filter((m) => m.key === meta.key);\n return maybeMeta.map((m) => getValue(m as Meta.Meta<V>));\n}\n\nexport function findValue<V>(\n executor: Meta.MetaContainer | Meta.Meta[] | undefined,\n meta: Meta.MetaFn<V>\n): V | undefined {\n const values = findValues(executor, meta);\n return values.at(0);\n}\n","import {\n isLazyExecutor,\n isReactiveExecutor,\n isStaticExecutor,\n isMainExecutor,\n isExecutor,\n} from \"./executor\";\nimport { Core } from \"./types\";\n\ntype CacheEntry = {\n accessor: Core.Accessor<unknown>;\n value: Core.ResolveState<unknown>;\n};\n\ntype UE = Core.Executor<unknown>;\ntype OnUpdateFn = (accessor: Core.Accessor<unknown>) => void | Promise<void>;\n\nfunction getExecutor(e: Core.UExecutor): Core.Executor<unknown> {\n if (isLazyExecutor(e) || isReactiveExecutor(e) || isStaticExecutor(e)) {\n return e.executor;\n }\n\n return e as Core.Executor<unknown>;\n}\n\nclass Scope implements Core.Scope {\n private disposed: boolean = false;\n private cache: Map<UE, CacheEntry> = new Map();\n private cleanups = new Map<UE, Set<Core.Cleanup>>();\n private onUpdates = new Map<UE, Set<OnUpdateFn | UE>>();\n\n constructor(...presets: Core.Preset<unknown>[]) {\n for (const preset of presets) {\n const accessor = this[\"~makeAccessor\"](preset.executor);\n\n this.cache.set(preset.executor, {\n accessor,\n value: { kind: \"resolved\", value: preset.value },\n });\n }\n }\n\n private async \"~triggerCleanup\"(e: UE): Promise<void> {\n const cs = this.cleanups.get(e);\n if (cs) {\n for (const c of Array.from(cs.values()).reverse()) {\n await c();\n }\n }\n }\n\n private async \"~triggerUpdate\"(e: UE): Promise<void> {\n const ce = this.cache.get(e);\n if (!ce) {\n throw new Error(\"Executor is not yet resolved\");\n }\n\n const ou = this.onUpdates.get(e);\n if (ou) {\n for (const t of Array.from(ou.values())) {\n if (isMainExecutor(t)) {\n if (this.cleanups.has(t)) {\n this[\"~triggerCleanup\"](t);\n }\n\n const a = this.cache.get(t);\n await a!.accessor.resolve(true);\n\n if (this.onUpdates.has(t)) {\n await this[\"~triggerUpdate\"](t);\n }\n } else {\n await t(ce.accessor);\n }\n }\n }\n }\n\n private async \"~resolveExecutor\"(\n ie: Core.UExecutor,\n ref: UE\n ): Promise<unknown> {\n const e = getExecutor(ie);\n const a = this[\"~makeAccessor\"](e);\n\n if (isLazyExecutor(ie)) {\n return a;\n }\n\n if (isReactiveExecutor(ie)) {\n const c = this.onUpdates.get(ie.executor) ?? new Set();\n this.onUpdates.set(ie.executor, c);\n c.add(ref);\n }\n\n await a.resolve(false);\n if (isStaticExecutor(ie)) {\n return a;\n }\n\n return a.get();\n }\n\n private async \"~resolveDependencies\"(\n ie:\n | undefined\n | Core.UExecutor\n | Core.UExecutor[]\n | Record<string, Core.UExecutor>,\n ref: UE\n ): Promise<undefined | unknown | unknown[] | Record<string, unknown>> {\n if (ie === undefined) {\n return undefined;\n }\n\n if (isExecutor(ie)) {\n return this[\"~resolveExecutor\"](ie, ref);\n }\n\n if (Array.isArray(ie)) {\n return await Promise.all(\n ie.map((item) => this[\"~resolveDependencies\"](item, ref))\n );\n }\n\n const r: Record<string, unknown> = {};\n for (const k of Object.keys(ie)) {\n const t = ie[k];\n const rd = await this[\"~resolveDependencies\"](t, ref);\n\n r[k] = rd;\n }\n\n return r;\n }\n\n private \"~ensureNotDisposed\"(): void {\n if (this.disposed) {\n throw new Error(\"Scope is disposed\");\n }\n }\n\n private \"~makeAccessor\"(e: Core.UExecutor): Core.Accessor<unknown> {\n const requestor =\n isLazyExecutor(e) || isReactiveExecutor(e) || isStaticExecutor(e)\n ? e.executor\n : (e as UE);\n\n const cachedAccessor = this.cache.get(requestor);\n if (cachedAccessor) {\n return cachedAccessor.accessor;\n }\n\n const accessor = {} as Core.Accessor<unknown>;\n const factory = requestor.factory;\n const controller = {\n cleanup: (cleanup: Core.Cleanup) => {\n const currentSet = this.cleanups.get(requestor) ?? new Set();\n this.cleanups.set(requestor, currentSet);\n\n currentSet.add(cleanup);\n },\n release: async () => this.release(requestor),\n scope: this,\n };\n\n const resolve = (force: boolean): Promise<unknown> => {\n this[\"~ensureNotDisposed\"]();\n\n const entry = this.cache.get(requestor)!;\n const cached = entry?.value;\n\n if (cached && !force) {\n if (cached.kind === \"resolved\") {\n return Promise.resolve(cached.value);\n } else if (cached.kind === \"rejected\") {\n throw cached.error;\n } else {\n return cached.promise;\n }\n }\n\n const promise = new Promise((resolve, reject) => {\n this[\"~resolveDependencies\"](requestor.dependencies, requestor)\n .then((dependencies) => factory(dependencies as any, controller))\n .then((result) => {\n this.cache.set(requestor, {\n accessor,\n value: { kind: \"resolved\", value: result },\n });\n\n resolve(result);\n })\n .catch((error) => {\n this.cache.set(requestor, {\n accessor,\n value: { kind: \"rejected\", error },\n });\n\n reject(error);\n });\n });\n\n this.cache.set(requestor, {\n accessor,\n value: { kind: \"pending\", promise },\n });\n return promise;\n };\n\n return Object.assign(accessor, {\n get: () => {\n this[\"~ensureNotDisposed\"]();\n\n const cacheEntry = this.cache.get(requestor)?.value;\n\n if (!cacheEntry || cacheEntry.kind === \"pending\") {\n throw new Error(\"Executor is not resolved\");\n }\n\n if (cacheEntry.kind === \"rejected\") {\n throw cacheEntry.error;\n }\n\n return cacheEntry.value;\n },\n lookup: () => {\n this[\"~ensureNotDisposed\"]();\n\n const cacheEntry = this.cache.get(requestor);\n\n if (!cacheEntry) {\n return undefined;\n }\n\n return cacheEntry.value;\n },\n metas: e.metas,\n resolve,\n release: async (soft: boolean = false) => {\n this.release(requestor, soft);\n },\n update: (updateFn: unknown | ((current: unknown) => unknown)) => {\n return this.update(requestor, updateFn);\n },\n subscribe: (cb: (value: unknown) => void) => {\n this[\"~ensureNotDisposed\"]();\n return this.onUpdate(requestor, cb);\n },\n } satisfies Partial<Core.Accessor<unknown>>);\n }\n\n accessor<T>(executor: Core.Executor<T>): Core.Accessor<T> {\n this[\"~ensureNotDisposed\"]();\n return this[\"~makeAccessor\"](executor) as Core.Accessor<T>;\n }\n\n async resolve<T>(\n executor: Core.Executor<T>,\n force: boolean = false\n ): Promise<T> {\n this[\"~ensureNotDisposed\"]();\n const accessor = this[\"~makeAccessor\"](executor);\n await accessor.resolve(force);\n return accessor.get() as T;\n }\n\n async resolveAccessor<T>(\n executor: Core.Executor<T>,\n force: boolean = false\n ): Promise<Core.Accessor<T>> {\n this[\"~ensureNotDisposed\"]();\n const accessor = this[\"~makeAccessor\"](executor);\n await accessor.resolve(force);\n return accessor as Core.Accessor<T>;\n }\n\n async update<T>(\n e: Core.Executor<T>,\n u: T | ((current: T) => T)\n ): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n this[\"~triggerCleanup\"](e);\n const accessor = this[\"~makeAccessor\"](e);\n\n if (typeof u === \"function\") {\n const fn = u as (current: T) => T;\n const n = fn(accessor.get() as T);\n this.cache.set(e, {\n accessor,\n value: { kind: \"resolved\", value: n },\n });\n } else {\n this.cache.set(e, {\n accessor,\n value: { kind: \"resolved\", value: u },\n });\n }\n\n await this[\"~triggerUpdate\"](e);\n }\n\n async release(e: Core.Executor<unknown>, s: boolean = false): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n\n const ce = this.cache.get(e);\n if (!ce && !s) {\n throw new Error(\"Executor is not yet resolved\");\n }\n\n await this[\"~triggerCleanup\"](e);\n\n const ou = this.onUpdates.get(e);\n if (ou) {\n for (const t of Array.from(ou.values())) {\n if (isMainExecutor(t)) {\n await this.release(t, true);\n }\n }\n\n this.onUpdates.delete(e);\n }\n\n this.cache.delete(e);\n }\n\n async dispose(): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n const currents = this.cache.keys();\n for (const current of currents) {\n await this.release(current, true);\n }\n\n this.disposed = true;\n this.cache.clear();\n this.cleanups.clear();\n }\n\n onUpdate<T>(\n e: Core.Executor<T>,\n cb: (a: Core.Accessor<T>) => void | Promise<void>\n ): Core.Cleanup {\n this[\"~ensureNotDisposed\"]();\n\n const ou = this.onUpdates.get(e) ?? new Set();\n this.onUpdates.set(e, ou);\n ou.add(cb as any);\n\n return () => {\n this[\"~ensureNotDisposed\"]();\n\n const ou = this.onUpdates.get(e);\n if (ou) {\n ou.delete(cb as any);\n if (ou.size === 0) {\n this.onUpdates.delete(e);\n }\n }\n };\n }\n}\n\nexport function createScope(...presets: Core.Preset<unknown>[]): Core.Scope {\n return new Scope(...presets);\n}\n","import {\n isExecutor,\n isLazyExecutor,\n isReactiveExecutor,\n isStaticExecutor,\n} from \"./executor\";\nimport { Core } from \"./types\";\n\nexport async function resolves<\n T extends\n | Array<Core.Executor<unknown> | Escapable<unknown>>\n | Record<string, Core.Executor<unknown> | Escapable<unknown>>\n>(\n scope: Core.Scope,\n executors: { [K in keyof T]: T[K] }\n): Promise<{ [K in keyof T]: Core.InferOutput<T[K]> }> {\n const objectOutput = {};\n const arrayOutput = [];\n\n const isArray = Array.isArray(executors);\n\n for (const [index, executor] of Object.entries(executors)) {\n const target = !isExecutor(executor)\n ? executor.escape()\n : isLazyExecutor(executor) ||\n isReactiveExecutor(executor) ||\n isStaticExecutor(executor)\n ? executor.executor\n : (executor as Core.Executor<unknown>);\n\n const result = await scope.resolve(target);\n\n if (isArray) {\n arrayOutput.push(result);\n } else {\n Object.assign(objectOutput, { [index]: result });\n }\n }\n\n const result = isArray ? arrayOutput : objectOutput;\n return result as { [K in keyof T]: Core.InferOutput<T[K]> };\n}\n\nexport type Escapable<T> = {\n escape: () => Core.Executor<T>;\n};\n\nexport type PreparedExecutor<T> = {\n (): Promise<Core.InferOutput<Core.Executor<T>>>;\n escape: () => Core.Executor<T>;\n};\n\nexport function prepare<T>(\n scope: Core.Scope,\n executor: Core.Executor<T>\n): PreparedExecutor<Core.InferOutput<Core.Executor<T>>> {\n const fn: PreparedExecutor<Core.InferOutput<Core.Executor<T>>> =\n (async () => {\n return await scope.resolve(executor);\n }) as any;\n\n return Object.assign(fn, {\n escape: () => {\n return executor;\n },\n });\n}\n\nexport type AdaptedExecutor<A extends Array<unknown>, T> = {\n (...args: A): Promise<Awaited<T>>;\n escape: () => Core.Executor<(...args: A) => Promise<Awaited<T>>>;\n};\n\nexport function adapt<A extends Array<unknown>, T>(\n scope: Core.Scope,\n executor: Core.Executor<(...args: A) => Promise<T> | T>\n): AdaptedExecutor<A, T> {\n const fn: AdaptedExecutor<A, T> = (async (...args: A) => {\n const fn = await scope.resolve(executor);\n return await fn(...args);\n }) as any;\n\n return Object.assign(fn, {\n escape: () => {\n return executor;\n },\n });\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","names":["executorSymbol: unique symbol","metaSymbol: unique symbol","issues: ReadonlyArray<StandardSchemaV1.Issue>","factory: Core.NoDependencyFn<T> | Core.DependentFn<T, unknown>","dependencies:\n | undefined\n | Core.UExecutor\n | Array<Core.UExecutor>\n | Record<string, Core.UExecutor>","metas: Meta.Meta[] | undefined","_: unknown","controller: Core.Controller","f","executor: Core.BaseExecutor<unknown>","executor: unknown","input: unknown","factory: Core.NoDependencyFn<T>","pdependencies:\n | Core.BaseExecutor<D>\n | Array<Core.BaseExecutor<D>>\n | Record<string, Core.BaseExecutor<unknown>>","pfactory:\n | Core.DependentFn<T, Core.InferOutput<D>>\n | Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>","e: Core.Executor<T> | Escapable<T>","v: T","schema: TSchema","data: unknown","key: string | symbol","schema: StandardSchemaV1<V>","value: V","d: Partial<V>","source: Meta.MetaContainer | Meta.Meta[] | undefined","meta: Meta.Meta<V>","meta","executor: Meta.MetaContainer | Meta.Meta[] | undefined","meta: Meta.MetaFn<V>","e: Core.UExecutor","preset","e: UE","ie: Core.UExecutor","ref: UE","ie:\n | undefined\n | Core.UExecutor\n | Core.UExecutor[]\n | Record<string, Core.UExecutor>","r: Record<string, unknown>","cleanup: Core.Cleanup","force: boolean","resolve","soft: boolean","updateFn: unknown | ((current: unknown) => unknown)","cb: (value: unknown) => void","executor: Core.Executor<T>","e: Core.Executor<T>","u: T | ((current: T) => T)","value: T | undefined","e: Core.Executor<unknown>","s: boolean","cb: (a: Core.Accessor<T>) => void | Promise<void>","ou","callback: Core.ChangeCallback","cb: Core.ReleaseCallback","middleware: Core.Middleware","middleware","m: Core.Middleware","scope: Core.Scope","executors: { [K in keyof T]: T[K] }","result","executor: Core.Executor<T>","fn: PreparedExecutor<Core.InferOutput<Core.Executor<T>>>","executor: Core.Executor<(...args: A) => Promise<T> | T>","fn: AdaptedExecutor<A, T>","fn"],"sources":["../src/types.ts","../src/executor.ts","../src/ssch.ts","../src/meta.ts","../src/scope.ts","../src/helpers.ts"],"sourcesContent":["import { AdaptedExecutor, PreparedExecutor } from \"./helpers\";\n\nexport const executorSymbol: unique symbol = Symbol.for(\n \"@pumped-fn/core/executor\"\n);\nexport const metaSymbol: unique symbol = Symbol.for(\"@pumped-fn/core/meta\");\n\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly \"~standard\": StandardSchemaV1.Props<Input, Output>;\n}\n\nexport declare namespace StandardSchemaV1 {\n export interface Props<Input = unknown, Output = Input> {\n readonly version: 1;\n readonly vendor: string;\n readonly validate: (\n value: unknown\n ) => Result<Output> | Promise<Result<Output>>;\n readonly types?: Types<Input, Output> | undefined;\n }\n\n export type Result<Output> = SuccessResult<Output> | FailureResult;\n\n export interface SuccessResult<Output> {\n readonly value: Output;\n readonly issues?: undefined;\n }\n\n export interface FailureResult {\n readonly issues: ReadonlyArray<Issue>;\n }\n\n export interface Issue {\n readonly message: string;\n readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;\n }\n\n export interface PathSegment {\n readonly key: PropertyKey;\n }\n\n export interface Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n }\n\n export type InferInput<Schema extends StandardSchemaV1> = NonNullable<\n Schema[\"~standard\"][\"types\"]\n >[\"input\"];\n\n export type InferOutput<Schema extends StandardSchemaV1> = NonNullable<\n Schema[\"~standard\"][\"types\"]\n >[\"output\"];\n}\n\nexport class SchemaError extends Error {\n public readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;\n\n constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>) {\n super(issues[0].message);\n this.name = \"SchemaError\";\n this.issues = issues;\n }\n}\n\nexport declare namespace Meta {\n export interface MetaContainer {\n metas: Meta[] | undefined;\n }\n\n export interface Meta<V = unknown> {\n readonly [metaSymbol]: true;\n readonly key: string | symbol;\n readonly schema: StandardSchemaV1<V>;\n readonly value: V;\n }\n\n export interface MetaFn<V> {\n (value: V): Meta<V>;\n readonly key: string | symbol;\n partial: <D extends Partial<V>>(d: D) => D;\n some: (source: MetaContainer | Meta[] | undefined) => V[];\n find: (source: MetaContainer | Meta[] | undefined) => V | undefined;\n get: (source: MetaContainer | Meta[] | undefined) => V;\n }\n}\n\nexport declare namespace Core {\n export type Output<T> = T | Promise<T>;\n\n export type NoDependencyFn<T> = (scope: Controller) => Output<T>;\n export type DependentFn<T, D> = (\n dependencies: D,\n scope: Controller\n ) => Output<T>;\n export type RecordLike = Record<string, unknown>;\n export type UExecutor = BaseExecutor<unknown>;\n\n export type Cleanup = () => void | Promise<void>;\n\n export type Controller = {\n cleanup: (cleanup: Cleanup) => void;\n release: () => Promise<void>;\n scope: Scope;\n };\n\n export type Kind = \"main\" | \"reactive\" | \"lazy\" | \"static\";\n\n export interface BaseExecutor<T> extends Meta.MetaContainer {\n [executorSymbol]: Kind;\n factory: NoDependencyFn<T> | DependentFn<T, unknown> | undefined;\n dependencies:\n | undefined\n | UExecutor\n | Array<UExecutor>\n | Record<string, UExecutor>;\n }\n\n export interface Executor<T> extends BaseExecutor<T> {\n [executorSymbol]: \"main\";\n factory: NoDependencyFn<T> | DependentFn<T, unknown>;\n\n /** Return an executor controller without resolving Executor */\n readonly lazy: Lazy<T>;\n\n /** Return an resolved executor, and mark the user to be reactived for future changes */\n readonly reactive: Reactive<T>;\n\n /** Return an resolved executor with its controller */\n readonly static: Static<T>;\n }\n\n export interface Reactive<T> extends BaseExecutor<T> {\n [executorSymbol]: \"reactive\";\n factory: undefined;\n readonly executor: Executor<T>;\n }\n\n export interface Lazy<T> extends BaseExecutor<Accessor<T>> {\n [executorSymbol]: \"lazy\";\n factory: undefined;\n readonly executor: Executor<T>;\n }\n\n export interface Static<T> extends BaseExecutor<Accessor<T>> {\n [executorSymbol]: \"static\";\n factory: undefined;\n readonly executor: Executor<T>;\n }\n\n export type PendingState<T> = { kind: \"pending\"; promise: Promise<T> };\n export type ResolvedState<T> = { kind: \"resolved\"; value: T };\n export type RejectedState = { kind: \"rejected\"; error: unknown };\n\n export type ResolveState<T> =\n | PendingState<T>\n | ResolvedState<T>\n | RejectedState;\n\n export interface Accessor<T> extends Meta.MetaContainer {\n lookup(): undefined | ResolveState<T>;\n\n get(): T;\n resolve(force?: boolean): Promise<T>;\n release(soft?: boolean): Promise<void>;\n update(updateFn: T | ((current: T) => T)): Promise<void>;\n subscribe(callback: (value: T) => void): Cleanup;\n }\n\n export interface Preset<T> {\n [executorSymbol]: \"preset\";\n executor: Executor<T>;\n value: T;\n }\n\n export type InferOutput<T> = T extends\n | Executor<infer U>\n | Reactive<infer U>\n | PreparedExecutor<infer U>\n ? Awaited<U>\n : T extends Lazy<infer U> | Static<infer U>\n ? Accessor<Awaited<U>>\n : T extends AdaptedExecutor<infer A, infer U>\n ? (...args: A) => Promise<Awaited<U>>\n : never;\n\n export type Event = \"resolve\" | \"update\" | \"release\";\n export type Replacer = Preset<unknown>;\n type EventCallbackResult = void | Replacer;\n\n export type ChangeCallback = (\n event: \"resolve\" | \"update\",\n executor: Executor<unknown>,\n resolved: unknown,\n scope: Scope\n ) => EventCallbackResult;\n\n export type ReleaseCallback = (\n event: \"release\",\n executor: Executor<unknown>,\n scope: Scope\n ) => void | Promise<void>;\n\n export type Middleware = {\n init?: (scope: Scope) => void | Promise<void>;\n dispose?: (scope: Scope) => void | Promise<void>;\n };\n\n export interface Scope {\n accessor<T>(executor: Core.Executor<T>, eager?: boolean): Accessor<T>;\n\n resolve<T>(executor: Core.Executor<T>): Promise<T>;\n resolveAccessor<T>(executor: Core.Executor<T>): Promise<Accessor<T>>;\n\n update<T>(\n executor: Executor<T>,\n updateFn: T | ((current: T) => T)\n ): Promise<void>;\n\n release(executor: Executor<any>, soft?: boolean): Promise<void>;\n\n dispose(): Promise<void>;\n\n onUpdate<T>(\n executor: Executor<T>,\n callback: (accessor: Accessor<T>) => void\n ): Cleanup;\n\n onChange(cb: ChangeCallback): Cleanup;\n onRelease(cb: ReleaseCallback): Cleanup;\n\n use(middleware: Middleware): Cleanup;\n }\n}\n","import { Core, executorSymbol, Meta } from \"./types\";\nimport type { Escapable } from \"./helpers\";\n\nfunction createExecutor<T>(\n factory: Core.NoDependencyFn<T> | Core.DependentFn<T, unknown>,\n dependencies:\n | undefined\n | Core.UExecutor\n | Array<Core.UExecutor>\n | Record<string, Core.UExecutor>,\n metas: Meta.Meta[] | undefined\n): Core.Executor<T> {\n const executor = {\n [executorSymbol]: \"main\",\n factory: (_: unknown, controller: Core.Controller) => {\n if (dependencies === undefined) {\n const f = factory as Core.NoDependencyFn<T>;\n return f(controller);\n }\n\n const f = factory as Core.DependentFn<T, unknown>;\n return f(_, controller);\n },\n dependencies,\n metas: metas,\n } as unknown as Core.Executor<T>;\n\n const lazyExecutor = {\n [executorSymbol]: \"lazy\",\n dependencies: undefined,\n executor,\n factory: undefined,\n metas: metas,\n } satisfies Core.Lazy<T>;\n\n const reactiveExecutor = {\n [executorSymbol]: \"reactive\",\n executor,\n factory: undefined,\n dependencies: undefined,\n metas: metas,\n } satisfies Core.Reactive<T>;\n\n const staticExecutor = {\n [executorSymbol]: \"static\",\n dependencies: undefined,\n factory: undefined,\n metas: metas,\n executor,\n } satisfies Core.Static<T>;\n\n Object.defineProperties(executor, {\n lazy: {\n value: lazyExecutor,\n writable: false,\n configurable: false,\n enumerable: false,\n },\n reactive: {\n value: reactiveExecutor,\n writable: false,\n configurable: false,\n enumerable: false,\n },\n static: {\n value: staticExecutor,\n writable: false,\n configurable: false,\n enumerable: false,\n },\n });\n\n return executor;\n}\n\nexport function isLazyExecutor(\n executor: Core.BaseExecutor<unknown>\n): executor is Core.Lazy<unknown> {\n return executor[executorSymbol] === \"lazy\";\n}\n\nexport function isReactiveExecutor(\n executor: Core.BaseExecutor<unknown>\n): executor is Core.Reactive<unknown> {\n return executor[executorSymbol] === \"reactive\";\n}\n\nexport function isStaticExecutor(\n executor: Core.BaseExecutor<unknown>\n): executor is Core.Static<unknown> {\n return executor[executorSymbol] === \"static\";\n}\n\nexport function isMainExecutor(\n executor: unknown\n): executor is Core.Executor<unknown> {\n return isExecutor(executor) && executor[executorSymbol] === \"main\";\n}\n\nexport function isExecutor<T>(input: unknown): input is Core.BaseExecutor<T> {\n return typeof input === \"object\" && input !== null && executorSymbol in input;\n}\n\nexport function provide<T>(\n factory: Core.NoDependencyFn<T>,\n ...metas: Meta.Meta[]\n): Core.Executor<T> {\n return createExecutor(factory, undefined, metas);\n}\n\nexport function derive<T, D extends Core.BaseExecutor<unknown>>(\n dependencies: D,\n factory: Core.DependentFn<T, Core.InferOutput<D>>,\n ...metas: Meta.Meta[]\n): Core.Executor<T>;\n\nexport function derive<\n T,\n D extends\n | ReadonlyArray<Core.BaseExecutor<unknown>>\n | Record<string, Core.BaseExecutor<unknown>>\n>(\n dependencies: { [K in keyof D]: D[K] },\n factory: Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>,\n ...metas: Meta.Meta[]\n): Core.Executor<T>;\n\nexport function derive<T, D>(\n pdependencies:\n | Core.BaseExecutor<D>\n | Array<Core.BaseExecutor<D>>\n | Record<string, Core.BaseExecutor<unknown>>,\n pfactory:\n | Core.DependentFn<T, Core.InferOutput<D>>\n | Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>,\n ...metas: Meta.Meta[]\n): Core.Executor<T> {\n return createExecutor(pfactory as any, pdependencies, metas);\n}\n\nexport function preset<T>(\n e: Core.Executor<T> | Escapable<T>,\n v: T\n): Core.Preset<T> {\n const executor = isExecutor(e) ? e : e.escape();\n\n return {\n [executorSymbol]: \"preset\",\n value: v,\n executor,\n };\n}\n","import { SchemaError, StandardSchemaV1 } from \"./types\";\n\nexport function validate<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n data: unknown\n): Awaited<StandardSchemaV1.InferOutput<TSchema>> {\n const result = schema[\"~standard\"].validate(data);\n\n if (\"then\" in result) {\n throw new Error(\"validating async is not supported\");\n }\n\n if (result.issues) {\n throw new SchemaError(result.issues);\n }\n return result.value as any;\n}\n\nexport async function validateAsync<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n data: unknown\n): Promise<Awaited<StandardSchemaV1.InferOutput<TSchema>>> {\n const result = schema[\"~standard\"].validate(data);\n\n if (\"then\" in result) {\n const result_1 = await result;\n if (result_1.issues) {\n throw new SchemaError(result_1.issues);\n }\n return result_1.value as any;\n }\n\n if (result.issues) {\n throw new SchemaError(result.issues);\n }\n\n return Promise.resolve(result.value as any);\n}\n\nexport function custom<T>(): StandardSchemaV1<T, T> {\n return {\n \"~standard\": {\n vendor: \"pumped-fn\",\n version: 1,\n validate: (value) => {\n return { value: value as T };\n },\n },\n };\n}\n","import { validate } from \"./ssch\";\nimport { metaSymbol, StandardSchemaV1, type Meta } from \"./types\";\n\nexport const meta = <V>(\n key: string | symbol,\n schema: StandardSchemaV1<V>\n): Meta.MetaFn<V> => {\n const _key = typeof key === \"string\" ? Symbol(key) : key;\n\n const fn = (value: V) =>\n ({\n [metaSymbol]: true,\n key: _key,\n schema,\n value,\n } as unknown as Meta.MetaFn<V>);\n\n Object.defineProperty(fn, \"key\", {\n value: _key,\n configurable: false,\n enumerable: false,\n writable: false,\n });\n\n Object.defineProperty(fn, metaSymbol, {\n value: true,\n configurable: false,\n enumerable: false,\n writable: false,\n });\n\n Object.defineProperties(fn, {\n partial: {\n value: (d: Partial<V>) => {\n return Object.assign({}, fn({} as V), d);\n },\n configurable: false,\n enumerable: false,\n writable: false,\n },\n some: {\n value: (source: Meta.MetaContainer | Meta.Meta[] | undefined) =>\n findValues(source, fn as unknown as Meta.MetaFn<unknown>),\n configurable: false,\n enumerable: false,\n writable: false,\n },\n find: {\n value: (source: Meta.MetaContainer | Meta.Meta[] | undefined) =>\n findValue(source, fn as unknown as Meta.MetaFn<unknown>),\n configurable: false,\n enumerable: false,\n writable: false,\n },\n get: {\n value: (source: Meta.MetaContainer | Meta.Meta[] | undefined) =>\n getValue(\n findValue(\n source,\n fn as unknown as Meta.MetaFn<unknown>\n ) as Meta.Meta<V>\n ),\n configurable: false,\n enumerable: false,\n writable: false,\n },\n });\n\n return fn as any;\n};\n\nexport function getValue<V>(meta: Meta.Meta<V>): Awaited<V> {\n return validate(meta.schema, meta.value);\n}\n\nexport function findValues<V = unknown>(\n executor: Meta.MetaContainer | Meta.Meta[] | undefined,\n meta: Meta.MetaFn<V>\n): V[] {\n if (!executor) return [];\n\n const metas = Array.isArray(executor) ? executor : executor.metas ?? [];\n\n const maybeMeta = metas.filter((m) => m.key === meta.key);\n return maybeMeta.map((m) => getValue(m as Meta.Meta<V>));\n}\n\nexport function findValue<V>(\n executor: Meta.MetaContainer | Meta.Meta[] | undefined,\n meta: Meta.MetaFn<V>\n): V | undefined {\n const values = findValues(executor, meta);\n return values.at(0);\n}\n","import {\n isLazyExecutor,\n isReactiveExecutor,\n isStaticExecutor,\n isMainExecutor,\n isExecutor,\n} from \"./executor\";\nimport { Core } from \"./types\";\n\ntype CacheEntry = {\n accessor: Core.Accessor<unknown>;\n value: Core.ResolveState<unknown>;\n};\n\ntype UE = Core.Executor<unknown>;\ntype OnUpdateFn = (accessor: Core.Accessor<unknown>) => void | Promise<void>;\n\nfunction getExecutor(e: Core.UExecutor): Core.Executor<unknown> {\n if (isLazyExecutor(e) || isReactiveExecutor(e) || isStaticExecutor(e)) {\n return e.executor;\n }\n\n return e as Core.Executor<unknown>;\n}\n\nclass Scope implements Core.Scope {\n private disposed: boolean = false;\n private cache: Map<UE, CacheEntry> = new Map();\n private cleanups = new Map<UE, Set<Core.Cleanup>>();\n private onUpdates = new Map<UE, Set<OnUpdateFn | UE>>();\n private onEvents = {\n change: new Set<Core.ChangeCallback>(),\n release: new Set<Core.ReleaseCallback>(),\n } as const;\n\n private middlewares: Core.Middleware[] = [];\n\n constructor(...presets: Core.Preset<unknown>[]) {\n for (const preset of presets) {\n const accessor = this[\"~makeAccessor\"](preset.executor);\n\n this.cache.set(preset.executor, {\n accessor,\n value: { kind: \"resolved\", value: preset.value },\n });\n }\n }\n\n private async \"~triggerCleanup\"(e: UE): Promise<void> {\n const cs = this.cleanups.get(e);\n if (cs) {\n for (const c of Array.from(cs.values()).reverse()) {\n await c();\n }\n }\n }\n\n private async \"~triggerUpdate\"(e: UE): Promise<void> {\n const ce = this.cache.get(e);\n if (!ce) {\n throw new Error(\"Executor is not yet resolved\");\n }\n\n const ou = this.onUpdates.get(e);\n if (ou) {\n for (const t of Array.from(ou.values())) {\n if (isMainExecutor(t)) {\n if (this.cleanups.has(t)) {\n this[\"~triggerCleanup\"](t);\n }\n\n const a = this.cache.get(t);\n await a!.accessor.resolve(true);\n\n if (this.onUpdates.has(t)) {\n await this[\"~triggerUpdate\"](t);\n }\n } else {\n await t(ce.accessor);\n }\n }\n }\n }\n\n private async \"~resolveExecutor\"(\n ie: Core.UExecutor,\n ref: UE\n ): Promise<unknown> {\n const e = getExecutor(ie);\n const a = this[\"~makeAccessor\"](e);\n\n if (isLazyExecutor(ie)) {\n return a;\n }\n\n if (isReactiveExecutor(ie)) {\n const c = this.onUpdates.get(ie.executor) ?? new Set();\n this.onUpdates.set(ie.executor, c);\n c.add(ref);\n }\n\n await a.resolve(false);\n if (isStaticExecutor(ie)) {\n return a;\n }\n\n return a.get();\n }\n\n private async \"~resolveDependencies\"(\n ie:\n | undefined\n | Core.UExecutor\n | Core.UExecutor[]\n | Record<string, Core.UExecutor>,\n ref: UE\n ): Promise<undefined | unknown | unknown[] | Record<string, unknown>> {\n if (ie === undefined) {\n return undefined;\n }\n\n if (isExecutor(ie)) {\n return this[\"~resolveExecutor\"](ie, ref);\n }\n\n if (Array.isArray(ie)) {\n return await Promise.all(\n ie.map((item) => this[\"~resolveDependencies\"](item, ref))\n );\n }\n\n const r: Record<string, unknown> = {};\n for (const k of Object.keys(ie)) {\n const t = ie[k];\n const rd = await this[\"~resolveDependencies\"](t, ref);\n\n r[k] = rd;\n }\n\n return r;\n }\n\n private \"~ensureNotDisposed\"(): void {\n if (this.disposed) {\n throw new Error(\"Scope is disposed\");\n }\n }\n\n private \"~makeAccessor\"(e: Core.UExecutor): Core.Accessor<unknown> {\n const requestor =\n isLazyExecutor(e) || isReactiveExecutor(e) || isStaticExecutor(e)\n ? e.executor\n : (e as UE);\n\n const cachedAccessor = this.cache.get(requestor);\n if (cachedAccessor) {\n return cachedAccessor.accessor;\n }\n\n const accessor = {} as Core.Accessor<unknown>;\n const factory = requestor.factory;\n const controller = {\n cleanup: (cleanup: Core.Cleanup) => {\n const currentSet = this.cleanups.get(requestor) ?? new Set();\n this.cleanups.set(requestor, currentSet);\n\n currentSet.add(cleanup);\n },\n release: async () => this.release(requestor),\n scope: this,\n };\n\n const resolve = (force: boolean): Promise<unknown> => {\n this[\"~ensureNotDisposed\"]();\n\n const entry = this.cache.get(requestor)!;\n const cached = entry?.value;\n\n if (cached && !force) {\n if (cached.kind === \"resolved\") {\n return Promise.resolve(cached.value);\n } else if (cached.kind === \"rejected\") {\n throw cached.error;\n } else {\n return cached.promise;\n }\n }\n\n const promise = new Promise((resolve, reject) => {\n this[\"~resolveDependencies\"](requestor.dependencies, requestor)\n .then((dependencies) => factory(dependencies as any, controller))\n .then(async (result) => {\n let current = result;\n\n const events = this.onEvents.change;\n for (const event of events) {\n const updated = event(\"resolve\", requestor, current, this);\n if (updated !== undefined && updated.executor === requestor) {\n current = updated.value;\n }\n }\n\n this.cache.set(requestor, {\n accessor,\n value: { kind: \"resolved\", value: current },\n });\n\n resolve(current);\n })\n .catch((error) => {\n this.cache.set(requestor, {\n accessor,\n value: { kind: \"rejected\", error },\n });\n\n reject(error);\n });\n });\n\n this.cache.set(requestor, {\n accessor,\n value: { kind: \"pending\", promise },\n });\n return promise;\n };\n\n return Object.assign(accessor, {\n get: () => {\n this[\"~ensureNotDisposed\"]();\n\n const cacheEntry = this.cache.get(requestor)?.value;\n\n if (!cacheEntry || cacheEntry.kind === \"pending\") {\n throw new Error(\"Executor is not resolved\");\n }\n\n if (cacheEntry.kind === \"rejected\") {\n throw cacheEntry.error;\n }\n\n return cacheEntry.value;\n },\n lookup: () => {\n this[\"~ensureNotDisposed\"]();\n\n const cacheEntry = this.cache.get(requestor);\n\n if (!cacheEntry) {\n return undefined;\n }\n\n return cacheEntry.value;\n },\n metas: e.metas,\n resolve,\n release: async (soft: boolean = false) => {\n this.release(requestor, soft);\n },\n update: (updateFn: unknown | ((current: unknown) => unknown)) => {\n return this.update(requestor, updateFn);\n },\n subscribe: (cb: (value: unknown) => void) => {\n this[\"~ensureNotDisposed\"]();\n return this.onUpdate(requestor, cb);\n },\n } satisfies Partial<Core.Accessor<unknown>>);\n }\n\n accessor<T>(executor: Core.Executor<T>): Core.Accessor<T> {\n this[\"~ensureNotDisposed\"]();\n return this[\"~makeAccessor\"](executor) as Core.Accessor<T>;\n }\n\n async resolve<T>(\n executor: Core.Executor<T>,\n force: boolean = false\n ): Promise<T> {\n this[\"~ensureNotDisposed\"]();\n const accessor = this[\"~makeAccessor\"](executor);\n await accessor.resolve(force);\n return accessor.get() as T;\n }\n\n async resolveAccessor<T>(\n executor: Core.Executor<T>,\n force: boolean = false\n ): Promise<Core.Accessor<T>> {\n this[\"~ensureNotDisposed\"]();\n const accessor = this[\"~makeAccessor\"](executor);\n await accessor.resolve(force);\n return accessor as Core.Accessor<T>;\n }\n\n async update<T>(\n e: Core.Executor<T>,\n u: T | ((current: T) => T)\n ): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n this[\"~triggerCleanup\"](e);\n const accessor = this[\"~makeAccessor\"](e);\n\n let value: T | undefined;\n\n if (typeof u === \"function\") {\n const fn = u as (current: T) => T;\n value = fn(accessor.get() as T);\n } else {\n value = u;\n }\n\n const events = this.onEvents.change;\n for (const event of events) {\n const updated = event(\"update\", e, value, this);\n if (updated !== undefined && e === updated.executor) {\n value = updated.value as any;\n }\n }\n\n this.cache.set(e, {\n accessor,\n value: { kind: \"resolved\", value },\n });\n\n await this[\"~triggerUpdate\"](e);\n }\n\n async release(e: Core.Executor<unknown>, s: boolean = false): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n\n const ce = this.cache.get(e);\n if (!ce && !s) {\n throw new Error(\"Executor is not yet resolved\");\n }\n\n await this[\"~triggerCleanup\"](e);\n const events = this.onEvents.release;\n for (const event of events) {\n await event(\"release\", e, this);\n }\n\n const ou = this.onUpdates.get(e);\n if (ou) {\n for (const t of Array.from(ou.values())) {\n if (isMainExecutor(t)) {\n await this.release(t, true);\n }\n }\n\n this.onUpdates.delete(e);\n }\n\n this.cache.delete(e);\n }\n\n async dispose(): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n\n const disposeEvents = this.middlewares.map(\n (m) => m.dispose?.(this) ?? Promise.resolve()\n );\n await Promise.all(disposeEvents);\n\n const currents = this.cache.keys();\n for (const current of currents) {\n await this.release(current, true);\n }\n\n this.disposed = true;\n this.cache.clear();\n this.cleanups.clear();\n this.onUpdates.clear();\n this.onEvents.change.clear();\n this.onEvents.release.clear();\n }\n\n onUpdate<T>(\n e: Core.Executor<T>,\n cb: (a: Core.Accessor<T>) => void | Promise<void>\n ): Core.Cleanup {\n this[\"~ensureNotDisposed\"]();\n\n const ou = this.onUpdates.get(e) ?? new Set();\n this.onUpdates.set(e, ou);\n ou.add(cb as any);\n\n return () => {\n this[\"~ensureNotDisposed\"]();\n\n const ou = this.onUpdates.get(e);\n if (ou) {\n ou.delete(cb as any);\n if (ou.size === 0) {\n this.onUpdates.delete(e);\n }\n }\n };\n }\n\n onChange(callback: Core.ChangeCallback): Core.Cleanup {\n this[\"~ensureNotDisposed\"]();\n\n this.onEvents[\"change\"].add(callback as any);\n return () => {\n this[\"~ensureNotDisposed\"]();\n this.onEvents[\"change\"].delete(callback as any);\n };\n }\n\n onRelease(cb: Core.ReleaseCallback): Core.Cleanup {\n this[\"~ensureNotDisposed\"]();\n\n this.onEvents[\"release\"].add(cb);\n return () => {\n this[\"~ensureNotDisposed\"]();\n this.onEvents[\"release\"].delete(cb);\n };\n }\n\n use(middleware: Core.Middleware): Core.Cleanup {\n this[\"~ensureNotDisposed\"]();\n this.middlewares.push(middleware);\n\n middleware.init?.(this);\n\n return () => {\n this[\"~ensureNotDisposed\"]();\n this.middlewares = this.middlewares.filter((m) => m !== middleware);\n };\n }\n}\n\nexport function createScope(...presets: Core.Preset<unknown>[]): Core.Scope {\n return new Scope(...presets);\n}\n\nexport function middleware(m: Core.Middleware): Core.Middleware {\n return m;\n}\n","import {\n isExecutor,\n isLazyExecutor,\n isReactiveExecutor,\n isStaticExecutor,\n} from \"./executor\";\nimport { Core } from \"./types\";\n\nexport async function resolves<\n T extends\n | Array<Core.Executor<unknown> | Escapable<unknown>>\n | Record<string, Core.Executor<unknown> | Escapable<unknown>>\n>(\n scope: Core.Scope,\n executors: { [K in keyof T]: T[K] }\n): Promise<{ [K in keyof T]: Core.InferOutput<T[K]> }> {\n const objectOutput = {};\n const arrayOutput = [];\n\n const isArray = Array.isArray(executors);\n\n for (const [index, executor] of Object.entries(executors)) {\n const target = !isExecutor(executor)\n ? executor.escape()\n : isLazyExecutor(executor) ||\n isReactiveExecutor(executor) ||\n isStaticExecutor(executor)\n ? executor.executor\n : (executor as Core.Executor<unknown>);\n\n const result = await scope.resolve(target);\n\n if (isArray) {\n arrayOutput.push(result);\n } else {\n Object.assign(objectOutput, { [index]: result });\n }\n }\n\n const result = isArray ? arrayOutput : objectOutput;\n return result as { [K in keyof T]: Core.InferOutput<T[K]> };\n}\n\nexport type Escapable<T> = {\n escape: () => Core.Executor<T>;\n};\n\nexport type PreparedExecutor<T> = {\n (): Promise<Core.InferOutput<Core.Executor<T>>>;\n escape: () => Core.Executor<T>;\n};\n\nexport function prepare<T>(\n scope: Core.Scope,\n executor: Core.Executor<T>\n): PreparedExecutor<Core.InferOutput<Core.Executor<T>>> {\n const fn: PreparedExecutor<Core.InferOutput<Core.Executor<T>>> =\n (async () => {\n return await scope.resolve(executor);\n }) as any;\n\n return Object.assign(fn, {\n escape: () => {\n return executor;\n },\n });\n}\n\nexport type AdaptedExecutor<A extends Array<unknown>, T> = {\n (...args: A): Promise<Awaited<T>>;\n escape: () => Core.Executor<(...args: A) => Promise<Awaited<T>>>;\n};\n\nexport function adapt<A extends Array<unknown>, T>(\n scope: Core.Scope,\n executor: Core.Executor<(...args: A) => Promise<T> | T>\n): AdaptedExecutor<A, T> {\n const fn: AdaptedExecutor<A, T> = (async (...args: A) => {\n const fn = await scope.resolve(executor);\n return await fn(...args);\n }) as any;\n\n return Object.assign(fn, {\n escape: () => {\n return executor;\n },\n });\n}\n"],"mappings":"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"}
|