@pumped-fn/core-next 0.5.44 → 0.5.46

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 CHANGED
@@ -2,6 +2,16 @@
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.46](https://github.com/pumped-fn/pumped-fn/compare/@pumped-fn/next@0.5.45...@pumped-fn/next@0.5.46) (2025-07-15)
6
+
7
+ ## [0.5.45](https://github.com/pumped-fn/pumped-fn/compare/@pumped-fn/next@0.5.44...@pumped-fn/next@0.5.45) (2025-07-15)
8
+
9
+
10
+ ### Features
11
+
12
+ * added podscope ([4591aaa](https://github.com/pumped-fn/pumped-fn/commit/4591aaa5e5683738b942b256e991154223cb7ffc))
13
+ * **extra:** added the new flow API (WIP) ([0ecc8bd](https://github.com/pumped-fn/pumped-fn/commit/0ecc8bdd0a2d22efdff6d31a0374aa79f742a75c))
14
+
5
15
  ## [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
16
 
7
17
 
package/README.md CHANGED
@@ -18,11 +18,12 @@ A scope is a simple facility created using `createScope`
18
18
  - `scope#accessor(executor)` will return a Core.Accessor which can help to `get`, `resolve`, `lookup` or `subscribe`
19
19
 
20
20
  ## Executor
21
- Executor is the container. Executor has certain methods letting you declare its as dependencies in a various way
22
- - as it is, will return the value, without being interactive
23
- - reactive, will return the accessor, and resolve the value if it's yet resolved
24
- - lazy, will return the accessor, without resolving it
25
- - static, will resolve to the value
21
+ Executor is the container. Executor has different access modes for use as dependencies:
22
+
23
+ - **Default**: Returns the resolved value (non-reactive)
24
+ - **`.reactive`**: Returns the resolved value and subscribes to future updates
25
+ - **`.lazy`**: Returns an accessor without resolving the executor (deferred resolution)
26
+ - **`.static`**: Returns an accessor with the executor resolved (controller pattern)
26
27
 
27
28
  ## Usage
28
29
 
@@ -37,13 +38,53 @@ const derivedValue = derive([counter], ([counter]) => { /* code */ })
37
38
 
38
39
  ```typescript
39
40
  // container can also be reactive, the factory function will be recalled as those dependencies change
40
-
41
41
  const derivedValue = derive(counter.reactive, (counter) => /* this code will be called whenever counter got updated */)
42
42
 
43
43
  // to update counter
44
44
  scope.update(counter, /* new value */)
45
45
  ```
46
46
 
47
+ ### Controller Pattern with `.static`
48
+
49
+ The `.static` mode provides access to the executor's controller, allowing you to create services that can update state:
50
+
51
+ ```typescript
52
+ const counter = provide(() => 0)
53
+
54
+ // Create a controller service using .static
55
+ const counterController = derive(counter.static, (counterCtl) => ({
56
+ increment: () => counterCtl.update(current => current + 1),
57
+ decrement: () => counterCtl.update(current => current - 1),
58
+ reset: () => counterCtl.update(0),
59
+ setValue: (value: number) => counterCtl.update(value)
60
+ }))
61
+
62
+ // Usage - no need to access scope directly
63
+ const controller = await scope.resolve(counterController)
64
+ await controller.increment() // Updates counter through its controller
65
+ ```
66
+
67
+ ### Lazy Resolution with `.lazy`
68
+
69
+ The `.lazy` mode provides access to the executor's accessor without resolving it, useful for deferred execution:
70
+
71
+ ```typescript
72
+ const expensiveComputation = provide(() => {
73
+ console.log('Computing expensive value...')
74
+ return performExpensiveCalculation()
75
+ })
76
+
77
+ // Get lazy accessor - computation hasn't run yet
78
+ const lazyService = derive(expensiveComputation.lazy, (lazyCtl) => ({
79
+ getResult: () => lazyCtl.resolve(), // Only compute when explicitly called
80
+ isResolved: () => lazyCtl.lookup()?.kind === 'resolved'
81
+ }))
82
+
83
+ const service = await scope.resolve(lazyService)
84
+ console.log(service.isResolved()) // false - not computed yet
85
+ const result = await service.getResult() // Now computation runs
86
+ ```
87
+
47
88
  ```typescript
48
89
  // life cycle. The cleanup will be called on [scope dispose], [or resource update], [or resource being released]
49
90
  const derivedValue = derive(counter.reactive, (counter, controller) => {
package/dist/index.d.ts CHANGED
@@ -75,8 +75,11 @@ declare namespace Meta {
75
75
  }
76
76
  declare namespace Core {
77
77
  export type Output<T> = T | Promise<T>;
78
+ export type GeneratorOutput<Y, T> = T | Promise<T> | Generator<Y, T> | AsyncGenerator<Y, T>;
78
79
  export type NoDependencyFn<T> = (scope: Controller) => Output<T>;
79
80
  export type DependentFn<T, D> = (dependencies: D, scope: Controller) => Output<T>;
81
+ export type NoDependencyGeneratorFn<Y, T> = (scope: Controller) => GeneratorOutput<Y, T>;
82
+ export type DependentGeneratorFn<Y, T, D> = (dependencies: D, scope: Controller) => GeneratorOutput<Y, T>;
80
83
  export type RecordLike = Record<string, unknown>;
81
84
  export type UExecutor = BaseExecutor<unknown>;
82
85
  export type Cleanup = () => void | Promise<void>;
@@ -152,9 +155,10 @@ declare namespace Core {
152
155
  init?: (scope: Scope) => void | Promise<void>;
153
156
  dispose?: (scope: Scope) => void | Promise<void>;
154
157
  };
158
+ export interface Pod extends Omit<Core.Scope, "update" | "pod" | "disposePod" | "onChange"> {}
155
159
  export interface Scope {
156
160
  accessor<T>(executor: Core.Executor<T>, eager?: boolean): Accessor<T>;
157
- resolve<T>(executor: Core.Executor<T>): Promise<T>;
161
+ resolve<T>(executor: Core.Executor<T>, force?: boolean): Promise<T>;
158
162
  resolveAccessor<T>(executor: Core.Executor<T>): Promise<Accessor<T>>;
159
163
  update<T>(executor: Executor<T>, updateFn: T | ((current: T) => T)): Promise<void>;
160
164
  release(executor: Executor<any>, soft?: boolean): Promise<void>;
@@ -163,6 +167,8 @@ declare namespace Core {
163
167
  onChange(cb: ChangeCallback): Cleanup;
164
168
  onRelease(cb: ReleaseCallback): Cleanup;
165
169
  use(middleware: Middleware): Cleanup;
170
+ pod(...presets: Preset<unknown>[]): Pod;
171
+ disposePod(scope: Pod): Promise<void>;
166
172
  }
167
173
  }
168
174
 
@@ -177,6 +183,7 @@ declare function provide<T>(factory: Core.NoDependencyFn<T>, ...metas: Meta.Meta
177
183
  declare function derive<T, D extends Core.BaseExecutor<unknown>>(dependencies: D, factory: Core.DependentFn<T, Core.InferOutput<D>>, ...metas: Meta.Meta[]): Core.Executor<T>;
178
184
  declare function derive<T, D extends ReadonlyArray<Core.BaseExecutor<unknown>> | Record<string, Core.BaseExecutor<unknown>>>(dependencies: { [K in keyof D]: D[K] }, factory: Core.DependentFn<T, { [K in keyof D]: Core.InferOutput<D[K]> }>, ...metas: Meta.Meta[]): Core.Executor<T>;
179
185
  declare function preset<T>(e: Core.Executor<T> | Escapable<T>, v: T): Core.Preset<T>;
186
+ declare function placeholder<V>(...metas: Meta.Meta<unknown>[]): Core.Executor<V>;
180
187
 
181
188
  //#endregion
182
189
  //#region src/meta.d.ts
@@ -187,6 +194,7 @@ declare function findValue<V>(executor: Meta.MetaContainer | Meta.Meta[] | undef
187
194
 
188
195
  //#endregion
189
196
  //#region src/scope.d.ts
197
+ declare const podOnly: Meta.Meta<boolean>;
190
198
  declare function createScope(...presets: Core.Preset<unknown>[]): Core.Scope;
191
199
  declare function middleware(m: Core.Middleware): Core.Middleware;
192
200
 
@@ -197,5 +205,23 @@ declare function validateAsync<TSchema extends StandardSchemaV1>(schema: TSchema
197
205
  declare function custom<T>(): StandardSchemaV1<T, T>;
198
206
 
199
207
  //#endregion
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 };
208
+ //#region src/generator-utils.d.ts
209
+ declare function isGenerator<Y = unknown, T = unknown>(value: unknown): value is Generator<Y, T>;
210
+ declare function isAsyncGenerator<Y = unknown, T = unknown>(value: unknown): value is AsyncGenerator<Y, T>;
211
+ declare function isGeneratorFunction(fn: unknown): fn is GeneratorFunction;
212
+ declare function isAsyncGeneratorFunction(fn: unknown): fn is AsyncGeneratorFunction;
213
+ declare function isIterableOrAsyncIterable(value: unknown): value is Iterable<unknown> | AsyncIterable<unknown>;
214
+ declare function collectFromGenerator<Y, T>(gen: Generator<Y, T> | AsyncGenerator<Y, T>): Promise<{
215
+ yielded: Y[];
216
+ returned: T;
217
+ }>;
218
+ interface GeneratorHandler<Y, T> {
219
+ onYield?: (value: Y, index: number) => void | Promise<void>;
220
+ onReturn?: (value: T) => void | Promise<void>;
221
+ onError?: (error: unknown) => void | Promise<void>;
222
+ }
223
+ declare function processGenerator<Y, T>(gen: Generator<Y, T> | AsyncGenerator<Y, T>, handler: GeneratorHandler<Y, T>): Promise<T>;
224
+
225
+ //#endregion
226
+ export { AdaptedExecutor, Core, Escapable, GeneratorHandler, Meta, PreparedExecutor, SchemaError, StandardSchemaV1, adapt, collectFromGenerator, createScope, custom, derive, executorSymbol, findValue, findValues, getValue, isAsyncGenerator, isAsyncGeneratorFunction, isExecutor, isGenerator, isGeneratorFunction, isIterableOrAsyncIterable, isLazyExecutor, isMainExecutor, isReactiveExecutor, isStaticExecutor, meta, metaSymbol, middleware, placeholder, podOnly, prepare, preset, processGenerator, provide, resolves, validate, validateAsync };
201
227
  //# sourceMappingURL=index.d.ts.map
@@ -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","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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"}
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","scope: Pod","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>","podOnly: Meta.Meta<boolean>","m: Core.Middleware","schema: TSchema","data: unknown","value: unknown","fn: unknown","gen: Generator<Y, T> | AsyncGenerator<Y, T>","value: Y","index: number","value: T","error: unknown","handler: GeneratorHandler<Y, T>"],"sources":["../src/helpers.ts","../src/types.ts","../src/executor.ts","../src/meta.ts","../src/scope.ts","../src/ssch.ts","../src/generator-utils.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -98,6 +98,11 @@ function preset(e, v) {
98
98
  executor
99
99
  };
100
100
  }
101
+ function placeholder(...metas) {
102
+ return provide(() => {
103
+ throw new Error("Placeholder executor cannot be resolved");
104
+ }, ...metas);
105
+ }
101
106
 
102
107
  //#endregion
103
108
  //#region src/ssch.ts
@@ -193,13 +198,68 @@ function findValue(executor, meta$1) {
193
198
  return values.at(0);
194
199
  }
195
200
 
201
+ //#endregion
202
+ //#region src/generator-utils.ts
203
+ function isGenerator(value) {
204
+ return value != null && typeof value === "object" && typeof value[Symbol.iterator] === "function" && typeof value.next === "function" && typeof value.return === "function" && typeof value.throw === "function";
205
+ }
206
+ function isAsyncGenerator(value) {
207
+ return value != null && typeof value === "object" && typeof value[Symbol.asyncIterator] === "function" && typeof value.next === "function" && typeof value.return === "function" && typeof value.throw === "function";
208
+ }
209
+ function isGeneratorFunction(fn) {
210
+ return typeof fn === "function" && fn.constructor && fn.constructor.name === "GeneratorFunction";
211
+ }
212
+ function isAsyncGeneratorFunction(fn) {
213
+ return typeof fn === "function" && fn.constructor && fn.constructor.name === "AsyncGeneratorFunction";
214
+ }
215
+ function isIterableOrAsyncIterable(value) {
216
+ return isGenerator(value) || isAsyncGenerator(value);
217
+ }
218
+ async function collectFromGenerator(gen) {
219
+ const yielded = [];
220
+ let returned;
221
+ try {
222
+ let result;
223
+ do {
224
+ result = await gen.next();
225
+ if (!result.done) yielded.push(result.value);
226
+ else returned = result.value;
227
+ } while (!result.done);
228
+ return {
229
+ yielded,
230
+ returned
231
+ };
232
+ } catch (error) {
233
+ await gen.return?.(void 0);
234
+ throw error;
235
+ }
236
+ }
237
+ async function processGenerator(gen, handler) {
238
+ let index = 0;
239
+ try {
240
+ let result;
241
+ do {
242
+ result = await gen.next();
243
+ if (!result.done) await handler.onYield?.(result.value, index++);
244
+ else {
245
+ await handler.onReturn?.(result.value);
246
+ return result.value;
247
+ }
248
+ } while (true);
249
+ } catch (error) {
250
+ await handler.onError?.(error);
251
+ await gen.return?.(void 0);
252
+ throw error;
253
+ }
254
+ }
255
+
196
256
  //#endregion
197
257
  //#region src/scope.ts
198
258
  function getExecutor(e) {
199
259
  if (isLazyExecutor(e) || isReactiveExecutor(e) || isStaticExecutor(e)) return e.executor;
200
260
  return e;
201
261
  }
202
- var Scope = class {
262
+ var BaseScope = class {
203
263
  disposed = false;
204
264
  cache = new Map();
205
265
  cleanups = new Map();
@@ -208,9 +268,12 @@ var Scope = class {
208
268
  change: new Set(),
209
269
  release: new Set()
210
270
  };
271
+ isPod;
272
+ isDisposing = false;
211
273
  middlewares = [];
212
- constructor(...presets) {
213
- for (const preset$1 of presets) {
274
+ constructor(options) {
275
+ this.isPod = options.pod;
276
+ for (const preset$1 of options.initialValues) {
214
277
  const accessor = this["~makeAccessor"](preset$1.executor);
215
278
  this.cache.set(preset$1.executor, {
216
279
  accessor,
@@ -238,6 +301,8 @@ var Scope = class {
238
301
  }
239
302
  async "~resolveExecutor"(ie, ref) {
240
303
  const e = getExecutor(ie);
304
+ const isPodOnly = podOnlyMeta.find(e);
305
+ if (!this.isPod && isPodOnly) throw new Error("Pod-only executors cannot be resolved in the main scope");
241
306
  const a = this["~makeAccessor"](e);
242
307
  if (isLazyExecutor(ie)) return a;
243
308
  if (isReactiveExecutor(ie)) {
@@ -266,6 +331,7 @@ var Scope = class {
266
331
  }
267
332
  "~makeAccessor"(e) {
268
333
  const requestor = isLazyExecutor(e) || isReactiveExecutor(e) || isStaticExecutor(e) ? e.executor : e;
334
+ if (podOnlyMeta.find(requestor) && this.isPod === false) throw new Error("Cannot resolve pod-only executor outside of a pod scope");
269
335
  const cachedAccessor = this.cache.get(requestor);
270
336
  if (cachedAccessor) return cachedAccessor.accessor;
271
337
  const accessor = {};
@@ -289,6 +355,10 @@ var Scope = class {
289
355
  const promise = new Promise((resolve$1, reject) => {
290
356
  this["~resolveDependencies"](requestor.dependencies, requestor).then((dependencies) => factory(dependencies, controller)).then(async (result) => {
291
357
  let current = result;
358
+ if (isGenerator(result) || isAsyncGenerator(result)) {
359
+ const { returned } = await collectFromGenerator(result);
360
+ current = returned;
361
+ }
292
362
  const events = this.onEvents.change;
293
363
  for (const event of events) {
294
364
  const updated = event("resolve", requestor, current, this);
@@ -367,6 +437,7 @@ var Scope = class {
367
437
  return accessor;
368
438
  }
369
439
  async update(e, u) {
440
+ if (this.isDisposing) return;
370
441
  this["~ensureNotDisposed"]();
371
442
  this["~triggerCleanup"](e);
372
443
  const accessor = this["~makeAccessor"](e);
@@ -405,6 +476,8 @@ var Scope = class {
405
476
  }
406
477
  async dispose() {
407
478
  this["~ensureNotDisposed"]();
479
+ this.isDisposing = true;
480
+ for (const pod of this.pods) await this.disposePod(pod);
408
481
  const disposeEvents = this.middlewares.map((m) => m.dispose?.(this) ?? Promise.resolve());
409
482
  await Promise.all(disposeEvents);
410
483
  const currents = this.cache.keys();
@@ -418,6 +491,7 @@ var Scope = class {
418
491
  }
419
492
  onUpdate(e, cb) {
420
493
  this["~ensureNotDisposed"]();
494
+ if (this.isDisposing) throw new Error("Cannot register update callback on a disposing scope");
421
495
  const ou = this.onUpdates.get(e) ?? new Set();
422
496
  this.onUpdates.set(e, ou);
423
497
  ou.add(cb);
@@ -432,6 +506,7 @@ var Scope = class {
432
506
  }
433
507
  onChange(callback) {
434
508
  this["~ensureNotDisposed"]();
509
+ if (this.isDisposing) throw new Error("Cannot register update callback on a disposing scope");
435
510
  this.onEvents["change"].add(callback);
436
511
  return () => {
437
512
  this["~ensureNotDisposed"]();
@@ -440,6 +515,7 @@ var Scope = class {
440
515
  }
441
516
  onRelease(cb) {
442
517
  this["~ensureNotDisposed"]();
518
+ if (this.isDisposing) throw new Error("Cannot register update callback on a disposing scope");
443
519
  this.onEvents["release"].add(cb);
444
520
  return () => {
445
521
  this["~ensureNotDisposed"]();
@@ -448,6 +524,7 @@ var Scope = class {
448
524
  }
449
525
  use(middleware$1) {
450
526
  this["~ensureNotDisposed"]();
527
+ if (this.isDisposing) throw new Error("Cannot register update callback on a disposing scope");
451
528
  this.middlewares.push(middleware$1);
452
529
  middleware$1.init?.(this);
453
530
  return () => {
@@ -455,13 +532,75 @@ var Scope = class {
455
532
  this.middlewares = this.middlewares.filter((m) => m !== middleware$1);
456
533
  };
457
534
  }
535
+ pods = new Set();
536
+ pod(...preset$1) {
537
+ this["~ensureNotDisposed"]();
538
+ if (this.isDisposing) throw new Error("Cannot register update callback on a disposing scope");
539
+ const pod = new Pod(this, ...preset$1);
540
+ this.pods.add(pod);
541
+ return pod;
542
+ }
543
+ async disposePod(pod) {
544
+ this["~ensureNotDisposed"]();
545
+ if (this.isDisposing) return;
546
+ await pod.dispose();
547
+ this.pods.delete(pod);
548
+ }
458
549
  };
550
+ const podOnlyMeta = meta("pumped-fn/space-only", custom());
551
+ const podOnly = podOnlyMeta(true);
459
552
  function createScope(...presets) {
460
- return new Scope(...presets);
553
+ return new BaseScope({
554
+ pod: false,
555
+ initialValues: presets
556
+ });
461
557
  }
462
558
  function middleware(m) {
463
559
  return m;
464
560
  }
561
+ var Pod = class extends BaseScope {
562
+ parentScope;
563
+ constructor(scope, ...presets) {
564
+ super({
565
+ pod: true,
566
+ initialValues: presets
567
+ });
568
+ this.parentScope = scope;
569
+ }
570
+ async resolve(executor, force) {
571
+ const isPodOnly = podOnlyMeta.find(executor);
572
+ if (isPodOnly) return super.resolve(executor, force);
573
+ const accessor = this["~makeAccessor"](executor);
574
+ if (accessor.lookup()) return accessor.get();
575
+ const value = await this.parentScope.resolve(executor, force);
576
+ this["cache"].set(executor, {
577
+ accessor,
578
+ value: {
579
+ kind: "resolved",
580
+ value
581
+ }
582
+ });
583
+ return value;
584
+ }
585
+ async "~resolveExecutor"(ie, ref) {
586
+ if (isReactiveExecutor(ie)) throw new Error("Reactive executors cannot be used in pod");
587
+ const isPodOnly = podOnlyMeta.find(ie);
588
+ if (isPodOnly) return super["~resolveExecutor"](ie, ref);
589
+ else {
590
+ const t = getExecutor(ie);
591
+ const value = await this.parentScope["~resolveExecutor"](ie, ref);
592
+ const currentAccessor = this["~makeAccessor"](t);
593
+ this.cache.set(t, {
594
+ accessor: currentAccessor,
595
+ value: {
596
+ kind: "resolved",
597
+ value
598
+ }
599
+ });
600
+ return value;
601
+ }
602
+ }
603
+ };
465
604
 
466
605
  //#endregion
467
606
  //#region src/helpers.ts
@@ -497,5 +636,5 @@ function adapt(scope, executor) {
497
636
  }
498
637
 
499
638
  //#endregion
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 };
639
+ export { SchemaError, adapt, collectFromGenerator, createScope, custom, derive, executorSymbol, findValue, findValues, getValue, isAsyncGenerator, isAsyncGeneratorFunction, isExecutor, isGenerator, isGeneratorFunction, isIterableOrAsyncIterable, isLazyExecutor, isMainExecutor, isReactiveExecutor, isStaticExecutor, meta, metaSymbol, middleware, placeholder, podOnly, prepare, preset, processGenerator, provide, resolves, validate, validateAsync };
501
640
  //# 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)","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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"}
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>","value: unknown","fn: unknown","gen: Generator<Y, T> | AsyncGenerator<Y, T>","yielded: Y[]","returned: T","result: IteratorResult<Y, T>","handler: GeneratorHandler<Y, T>","e: Core.UExecutor","options: {\n initialValues: Core.Preset<unknown>[];\n pod: boolean;\n }","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","pod: Core.Pod","podOnlyMeta: Meta.MetaFn<boolean>","podOnly: Meta.Meta<boolean>","m: Core.Middleware","scope: BaseScope","force?: boolean","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/generator-utils.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 export type GeneratorOutput<Y, T> =\n | T\n | Promise<T>\n | Generator<Y, T>\n | AsyncGenerator<Y, 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\n export type NoDependencyGeneratorFn<Y, T> = (\n scope: Controller\n ) => GeneratorOutput<Y, T>;\n export type DependentGeneratorFn<Y, T, D> = (\n dependencies: D,\n scope: Controller\n ) => GeneratorOutput<Y, 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 Pod\n extends Omit<Core.Scope, \"update\" | \"pod\" | \"disposePod\" | \"onChange\"> {}\n\n export interface Scope {\n accessor<T>(executor: Core.Executor<T>, eager?: boolean): Accessor<T>;\n\n resolve<T>(executor: Core.Executor<T>, force?: boolean): 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 pod(...presets: Preset<unknown>[]): Pod;\n disposePod(scope: Pod): Promise<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\nexport function placeholder<V>(...metas: Meta.Meta<unknown>[]): Core.Executor<V> {\n return provide<V>(() => {\n throw new Error(\"Placeholder executor cannot be resolved\");\n }, ...metas);\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","export function isGenerator<Y = unknown, T = unknown>(\n value: unknown\n): value is Generator<Y, T> {\n return (\n value != null &&\n typeof value === \"object\" &&\n typeof (value as any)[Symbol.iterator] === \"function\" &&\n typeof (value as any).next === \"function\" &&\n typeof (value as any).return === \"function\" &&\n typeof (value as any).throw === \"function\"\n );\n}\n\nexport function isAsyncGenerator<Y = unknown, T = unknown>(\n value: unknown\n): value is AsyncGenerator<Y, T> {\n return (\n value != null &&\n typeof value === \"object\" &&\n typeof (value as any)[Symbol.asyncIterator] === \"function\" &&\n typeof (value as any).next === \"function\" &&\n typeof (value as any).return === \"function\" &&\n typeof (value as any).throw === \"function\"\n );\n}\n\nexport function isGeneratorFunction(fn: unknown): fn is GeneratorFunction {\n return (\n typeof fn === \"function\" &&\n fn.constructor &&\n fn.constructor.name === \"GeneratorFunction\"\n );\n}\n\nexport function isAsyncGeneratorFunction(\n fn: unknown\n): fn is AsyncGeneratorFunction {\n return (\n typeof fn === \"function\" &&\n fn.constructor &&\n fn.constructor.name === \"AsyncGeneratorFunction\"\n );\n}\n\nexport function isIterableOrAsyncIterable(\n value: unknown\n): value is Iterable<unknown> | AsyncIterable<unknown> {\n return isGenerator(value) || isAsyncGenerator(value);\n}\n\nexport async function collectFromGenerator<Y, T>(\n gen: Generator<Y, T> | AsyncGenerator<Y, T>\n): Promise<{ yielded: Y[]; returned: T }> {\n const yielded: Y[] = [];\n let returned: T;\n\n try {\n let result: IteratorResult<Y, T>;\n \n do {\n result = await gen.next();\n if (!result.done) {\n yielded.push(result.value);\n } else {\n returned = result.value;\n }\n } while (!result.done);\n\n return { yielded, returned: returned! };\n } catch (error) {\n // Ensure generator is closed on error\n await gen.return?.(undefined as any);\n throw error;\n }\n}\n\nexport interface GeneratorHandler<Y, T> {\n onYield?: (value: Y, index: number) => void | Promise<void>;\n onReturn?: (value: T) => void | Promise<void>;\n onError?: (error: unknown) => void | Promise<void>;\n}\n\nexport async function processGenerator<Y, T>(\n gen: Generator<Y, T> | AsyncGenerator<Y, T>,\n handler: GeneratorHandler<Y, T>\n): Promise<T> {\n let index = 0;\n \n try {\n let result: IteratorResult<Y, T>;\n \n do {\n result = await gen.next();\n \n if (!result.done) {\n await handler.onYield?.(result.value, index++);\n } else {\n await handler.onReturn?.(result.value);\n return result.value;\n }\n } while (true);\n } catch (error) {\n await handler.onError?.(error);\n // Ensure generator is closed\n await gen.return?.(undefined as any);\n throw error;\n }\n}","import {\n isLazyExecutor,\n isReactiveExecutor,\n isStaticExecutor,\n isMainExecutor,\n isExecutor,\n} from \"./executor\";\nimport { Core, Meta } from \"./types\";\nimport {\n isGenerator,\n isAsyncGenerator,\n collectFromGenerator,\n} from \"./generator-utils\";\nimport { meta } from \"./meta\";\nimport { custom } from \"./ssch\";\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 BaseScope implements Core.Scope {\n protected disposed: boolean = false;\n protected cache: Map<UE, CacheEntry> = new Map();\n protected cleanups = new Map<UE, Set<Core.Cleanup>>();\n protected onUpdates = new Map<UE, Set<OnUpdateFn | UE>>();\n protected onEvents = {\n change: new Set<Core.ChangeCallback>(),\n release: new Set<Core.ReleaseCallback>(),\n } as const;\n protected isPod: boolean;\n private isDisposing = false;\n\n protected middlewares: Core.Middleware[] = [];\n\n constructor(options: {\n initialValues: Core.Preset<unknown>[];\n pod: boolean;\n }) {\n this.isPod = options.pod;\n for (const preset of options.initialValues) {\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 protected 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 protected 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 protected async \"~resolveExecutor\"(\n ie: Core.UExecutor,\n ref: UE\n ): Promise<unknown> {\n const e = getExecutor(ie);\n const isPodOnly = podOnlyMeta.find(e);\n\n if (!this.isPod && isPodOnly) {\n throw new Error(\n \"Pod-only executors cannot be resolved in the main scope\"\n );\n }\n\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 protected 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 protected \"~ensureNotDisposed\"(): void {\n if (this.disposed) {\n throw new Error(\"Scope is disposed\");\n }\n }\n\n protected \"~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 if (podOnlyMeta.find(requestor) && this.isPod === false) {\n throw new Error(\n \"Cannot resolve pod-only executor outside of a pod scope\"\n );\n }\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 // Handle generator results\n if (isGenerator(result) || isAsyncGenerator(result)) {\n const { returned } = await collectFromGenerator(result);\n current = returned;\n }\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\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 if (this.isDisposing) {\n return;\n }\n\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 this.isDisposing = true;\n\n for (const pod of this.pods) {\n await this.disposePod(pod);\n }\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 if (this.isDisposing) {\n throw new Error(\"Cannot register update callback on a disposing scope\");\n }\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 if (this.isDisposing) {\n throw new Error(\"Cannot register update callback on a disposing scope\");\n }\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 if (this.isDisposing) {\n throw new Error(\"Cannot register update callback on a disposing scope\");\n }\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 if (this.isDisposing) {\n throw new Error(\"Cannot register update callback on a disposing scope\");\n }\n\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 private pods: Set<Core.Pod> = new Set();\n\n pod(...preset: Core.Preset<unknown>[]): Core.Pod {\n this[\"~ensureNotDisposed\"]();\n if (this.isDisposing) {\n throw new Error(\"Cannot register update callback on a disposing scope\");\n }\n\n const pod = new Pod(this, ...preset);\n this.pods.add(pod);\n return pod;\n }\n\n async disposePod(pod: Core.Pod): Promise<void> {\n this[\"~ensureNotDisposed\"]();\n if (this.isDisposing) {\n return;\n }\n\n await pod.dispose();\n this.pods.delete(pod);\n }\n}\n\nconst podOnlyMeta: Meta.MetaFn<boolean> = meta(\n \"pumped-fn/space-only\",\n custom<boolean>()\n);\n\nexport const podOnly: Meta.Meta<boolean> = podOnlyMeta(true);\n\nexport function createScope(...presets: Core.Preset<unknown>[]): Core.Scope {\n return new BaseScope({\n pod: false,\n initialValues: presets,\n });\n}\n\nexport function middleware(m: Core.Middleware): Core.Middleware {\n return m;\n}\n\nclass Pod extends BaseScope implements Core.Pod {\n private parentScope: BaseScope;\n\n constructor(scope: BaseScope, ...presets: Core.Preset<unknown>[]) {\n super({\n pod: true,\n initialValues: presets,\n });\n this.parentScope = scope;\n }\n\n async resolve<T>(executor: Core.Executor<T>, force?: boolean): Promise<T> {\n const isPodOnly = podOnlyMeta.find(executor);\n\n if (isPodOnly) {\n return super.resolve(executor, force);\n }\n\n const accessor = this[\"~makeAccessor\"](executor);\n if (accessor.lookup()) {\n return accessor.get() as T;\n }\n\n const value = await this.parentScope.resolve(executor, force);\n this[\"cache\"].set(executor, {\n accessor,\n value: { kind: \"resolved\", value },\n });\n\n return value;\n }\n\n protected async \"~resolveExecutor\"(\n ie: Core.UExecutor,\n ref: UE\n ): Promise<unknown> {\n if (isReactiveExecutor(ie)) {\n throw new Error(\"Reactive executors cannot be used in pod\");\n }\n\n const isPodOnly = podOnlyMeta.find(ie);\n\n if (isPodOnly) {\n return super[\"~resolveExecutor\"](ie, ref);\n } else {\n const t = getExecutor(ie);\n const value = await this.parentScope[\"~resolveExecutor\"](ie, ref);\n const currentAccessor = this[\"~makeAccessor\"](t);\n\n this.cache.set(t, {\n accessor: currentAccessor,\n value: { kind: \"resolved\", value },\n });\n\n return value;\n }\n }\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pumped-fn/core-next",
3
- "version": "0.5.44",
3
+ "version": "0.5.46",
4
4
  "description": "Enhanced function utilities for TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",