@unional/async-context 9.0.8 → 9.0.10

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.
@@ -33,7 +33,6 @@ class AsyncContext {
33
33
  return this;
34
34
  }
35
35
  extend(context) {
36
- var _a;
37
36
  const newctx = new AsyncContext(async () => {
38
37
  try {
39
38
  const value = await this.get();
@@ -45,7 +44,7 @@ class AsyncContext {
45
44
  __classPrivateFieldSet(newctx, _AsyncContext_transforming, false, "f");
46
45
  }
47
46
  });
48
- const ctx = (_a = __classPrivateFieldGet(this, _AsyncContext_original, "f")) !== null && _a !== void 0 ? _a : this;
47
+ const ctx = __classPrivateFieldGet(this, _AsyncContext_original, "f") ?? this;
49
48
  __classPrivateFieldSet(newctx, _AsyncContext_original, ctx, "f");
50
49
  newctx.initialize = newctx.initialize.bind(ctx);
51
50
  return newctx;
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncContext.js","sourceRoot":"","sources":["../ts/AsyncContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA4E;AAE5E,MAAa,YAAY;IASxB,YAAY,IAA4D;;QALxE,0CAAoC;QACpC,kCAAuD,EAAE,EAAA;QACzD,qCAAgB,KAAK,EAAA;QACrB,qCAAwE;QACxE,yCAA6C;QAE5C,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;IAClB,CAAC;IACD,UAAU,CACT,IAAkD;QAElD,IAAI,uBAAA,IAAI,0BAAM;YAAE,MAAM,IAAI,qCAAyB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7E,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;QAEjB,IAAI,uBAAA,IAAI,+BAAW,CAAC,MAAM,GAAG,CAAC;YAAE,uBAAA,IAAI,+BAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB,CAAC,CAAC,CAAA;QACrF,OAAO,IAA8B,CAAA;IACtC,CAAC;IACD,MAAM,CAIL,OAGuD;;QAEvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC9B,uBAAA,MAAM,8BAAiB,IAAI,MAAA,CAAA;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAW,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpF,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;aAChC;oBAAS;gBACT,uBAAA,MAAM,8BAAiB,KAAK,MAAA,CAAA;aAC5B;QACF,CAAC,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,MAAA,uBAAA,IAAI,8BAAU,mCAAI,IAAI,CAAA;QAClC,uBAAA,MAAM,0BAAa,GAAG,MAAA,CAAA;QACtB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAA;IACd,CAAC;IACD,KAAK,CAAC,GAAG;QACR,IAAI,uBAAA,IAAI,kCAAc;YAAE,MAAM,IAAI,+BAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACxE,IAAI,uBAAA,IAAI,+BAAW;YAAE,OAAO,uBAAA,IAAI,+BAAW,CAAA;QAC3C,OAAO,CAAC,uBAAA,IAAI,2BAAc,uBAAA,IAAI,0BAAM;YACnC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB;YACtB,CAAC,CAAC,IAAI,OAAO,CAAM,CAAC,CAAC,EAAE,CAAC,uBAAA,IAAI,+BAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC,CAAA;IACnD,CAAC;CAID;AAvDD,oCAuDC;gRAHA,KAAK;IACJ,OAAO,WAAW,CAAC,uBAAA,IAAI,0BAAO,CAA4B,CAAA;AAC3D,CAAC;AASF,KAAK,UAAU,WAAW,CACzB,IAA2D;IAE3D,OAAO,aAAa,CAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,aAAa,CACrB,OAAgB;IAEhB,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC;AAED,SAAS,aAAa,CAAI,OAAgB;IACzC,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC","sourcesContent":["import type { LeftJoin } from 'type-plus'\nimport { BlockingGetDetected, ContextAlreadyInitialized } from './errors.js'\n\nexport class AsyncContext<\n\tInit extends Record<string | symbol, any>,\n\tContext extends Record<string | symbol, any> = Init\n> {\n\t#resolving: Promise<any> | undefined\n\t#resolvers: Array<(value: Promise<Context>) => void> = []\n\t#transforming = false\n\t#init: Init | Promise<Init> | AsyncContext.Initializer<Init> | undefined\n\t#original: AsyncContext<any, any> | undefined\n\tconstructor(init?: Init | Promise<Init> | AsyncContext.Initializer<Init>) {\n\t\tthis.#init = init\n\t}\n\tinitialize<I extends Init = Init>(\n\t\tinit: I | Promise<I> | AsyncContext.Initializer<I>\n\t): AsyncContext<I> {\n\t\tif (this.#init) throw new ContextAlreadyInitialized({ ssf: this.initialize })\n\t\tthis.#init = init\n\n\t\tif (this.#resolvers.length > 0) this.#resolvers.forEach(r => r(this.#buildContext()))\n\t\treturn this as any as AsyncContext<I>\n\t}\n\textend<\n\t\tCurrentContext extends Record<string | symbol, any> = Context,\n\t\tAdditionalContext extends Record<string | symbol, any> = Record<string | symbol, any>\n\t>(\n\t\tcontext:\n\t\t\t| AdditionalContext\n\t\t\t| Promise<AdditionalContext>\n\t\t\t| AsyncContext.Transformer<Context, AdditionalContext>\n\t): AsyncContext<Init, LeftJoin<CurrentContext, AdditionalContext>> {\n\t\tconst newctx = new AsyncContext(async () => {\n\t\t\ttry {\n\t\t\t\tconst value = await this.get()\n\t\t\t\tnewctx.#transforming = true\n\t\t\t\tconst newValue = await (isTransformer<any, any>(context) ? context(value) : context)\n\t\t\t\treturn { ...value, ...newValue }\n\t\t\t} finally {\n\t\t\t\tnewctx.#transforming = false\n\t\t\t}\n\t\t})\n\t\tconst ctx = this.#original ?? this\n\t\tnewctx.#original = ctx\n\t\tnewctx.initialize = newctx.initialize.bind(ctx)\n\t\treturn newctx\n\t}\n\tasync get<C = Context>(): Promise<C> {\n\t\tif (this.#transforming) throw new BlockingGetDetected({ ssf: this.get })\n\t\tif (this.#resolving) return this.#resolving\n\t\treturn (this.#resolving = this.#init\n\t\t\t? this.#buildContext()\n\t\t\t: new Promise<any>(a => this.#resolvers.push(a)))\n\t}\n\tasync #buildContext(): Promise<Context> {\n\t\treturn resolveInit(this.#init!) as any as Promise<Context>\n\t}\n}\nexport namespace AsyncContext {\n\texport type Initializer<Init> = () => Init | Promise<Init>\n\texport type Transformer<CurrentContext, AdditionalContext> = (\n\t\tcontext: CurrentContext\n\t) => AdditionalContext | Promise<AdditionalContext>\n}\n\nasync function resolveInit<Init extends Record<string | symbol, any>>(\n\tinit: Init | Promise<Init> | AsyncContext.Initializer<Init>\n): Promise<Init> {\n\treturn isInitializer<Init>(init) ? init() : init\n}\n\nfunction isTransformer<CurrentContext, AdditionalContext>(\n\tcontext: unknown\n): context is AsyncContext.Transformer<CurrentContext, AdditionalContext> {\n\treturn typeof context === 'function'\n}\n\nfunction isInitializer<T>(context: unknown): context is AsyncContext.Initializer<T> {\n\treturn typeof context === 'function'\n}\n"]}
1
+ {"version":3,"file":"AsyncContext.js","sourceRoot":"","sources":["../ts/AsyncContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA4E;AAE5E,MAAa,YAAY;IASxB,YAAY,IAA4D;;QALxE,0CAAoC;QACpC,kCAAuD,EAAE,EAAA;QACzD,qCAAgB,KAAK,EAAA;QACrB,qCAAwE;QACxE,yCAA6C;QAE5C,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;IAClB,CAAC;IACD,UAAU,CACT,IAAkD;QAElD,IAAI,uBAAA,IAAI,0BAAM;YAAE,MAAM,IAAI,qCAAyB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7E,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;QAEjB,IAAI,uBAAA,IAAI,+BAAW,CAAC,MAAM,GAAG,CAAC;YAAE,uBAAA,IAAI,+BAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB,CAAC,CAAC,CAAA;QACrF,OAAO,IAA8B,CAAA;IACtC,CAAC;IACD,MAAM,CAIL,OAGuD;QAEvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC9B,uBAAA,MAAM,8BAAiB,IAAI,MAAA,CAAA;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAW,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpF,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;aAChC;oBAAS;gBACT,uBAAA,MAAM,8BAAiB,KAAK,MAAA,CAAA;aAC5B;QACF,CAAC,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,uBAAA,IAAI,8BAAU,IAAI,IAAI,CAAA;QAClC,uBAAA,MAAM,0BAAa,GAAG,MAAA,CAAA;QACtB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAA;IACd,CAAC;IACD,KAAK,CAAC,GAAG;QACR,IAAI,uBAAA,IAAI,kCAAc;YAAE,MAAM,IAAI,+BAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACxE,IAAI,uBAAA,IAAI,+BAAW;YAAE,OAAO,uBAAA,IAAI,+BAAW,CAAA;QAC3C,OAAO,CAAC,uBAAA,IAAI,2BAAc,uBAAA,IAAI,0BAAM;YACnC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB;YACtB,CAAC,CAAC,IAAI,OAAO,CAAM,CAAC,CAAC,EAAE,CAAC,uBAAA,IAAI,+BAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC,CAAA;IACnD,CAAC;CAID;AAvDD,oCAuDC;gRAHA,KAAK;IACJ,OAAO,WAAW,CAAC,uBAAA,IAAI,0BAAO,CAA4B,CAAA;AAC3D,CAAC;AASF,KAAK,UAAU,WAAW,CACzB,IAA2D;IAE3D,OAAO,aAAa,CAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,aAAa,CACrB,OAAgB;IAEhB,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC;AAED,SAAS,aAAa,CAAI,OAAgB;IACzC,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC"}
package/cjs/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAEvC,MAAa,yBAA0B,SAAQ,uBAAW;IACzD,YAAY,OAA6B;QACxC,KAAK,CAAC,wBAAwB,EAAE,uCAAuC,EAAE,OAAO,CAAC,CAAA;IAClF,CAAC;CACD;AAJD,8DAIC;AAED,MAAa,mBAAoB,SAAQ,uBAAW;IACnD,YAAY,OAA6B;QACxC,KAAK,CACJ,wBAAwB,EACxB,gEAAgE,EAChE,OAAO,CACP,CAAA;IACF,CAAC;CACD;AARD,kDAQC","sourcesContent":["import { ModuleError } from 'iso-error'\n\nexport class ContextAlreadyInitialized extends ModuleError {\n\tconstructor(options?: ModuleError.Options) {\n\t\tsuper('@unional/async-context', 'context can only be initialized once.', options)\n\t}\n}\n\nexport class BlockingGetDetected extends ModuleError {\n\tconstructor(options?: ModuleError.Options) {\n\t\tsuper(\n\t\t\t'@unional/async-context',\n\t\t\t`a blocking get() detected. Are you calling it within extend()?`,\n\t\t\toptions\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAEvC,MAAa,yBAA0B,SAAQ,uBAAW;IACzD,YAAY,OAA6B;QACxC,KAAK,CAAC,wBAAwB,EAAE,uCAAuC,EAAE,OAAO,CAAC,CAAA;IAClF,CAAC;CACD;AAJD,8DAIC;AAED,MAAa,mBAAoB,SAAQ,uBAAW;IACnD,YAAY,OAA6B;QACxC,KAAK,CACJ,wBAAwB,EACxB,gEAAgE,EAChE,OAAO,CACP,CAAA;IACF,CAAC;CACD;AARD,kDAQC"}
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,8CAA2B","sourcesContent":["export * from './AsyncContext.js'\nexport * from './errors.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,8CAA2B"}
package/cjs/package.json CHANGED
@@ -1 +1,3 @@
1
- {"type": "commonjs"}
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncContext.js","sourceRoot":"","sources":["../ts/AsyncContext.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5E,MAAM,OAAO,YAAY;IASxB,YAAY,IAA4D;;QALxE,0CAAoC;QACpC,kCAAuD,EAAE,EAAA;QACzD,qCAAgB,KAAK,EAAA;QACrB,qCAAwE;QACxE,yCAA6C;QAE5C,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;IAClB,CAAC;IACD,UAAU,CACT,IAAkD;QAElD,IAAI,uBAAA,IAAI,0BAAM;YAAE,MAAM,IAAI,yBAAyB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7E,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;QAEjB,IAAI,uBAAA,IAAI,+BAAW,CAAC,MAAM,GAAG,CAAC;YAAE,uBAAA,IAAI,+BAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB,CAAC,CAAC,CAAA;QACrF,OAAO,IAA8B,CAAA;IACtC,CAAC;IACD,MAAM,CAIL,OAGuD;QAEvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC9B,uBAAA,MAAM,8BAAiB,IAAI,MAAA,CAAA;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAW,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpF,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;aAChC;oBAAS;gBACT,uBAAA,MAAM,8BAAiB,KAAK,MAAA,CAAA;aAC5B;QACF,CAAC,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,uBAAA,IAAI,8BAAU,IAAI,IAAI,CAAA;QAClC,uBAAA,MAAM,0BAAa,GAAG,MAAA,CAAA;QACtB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAA;IACd,CAAC;IACD,KAAK,CAAC,GAAG;QACR,IAAI,uBAAA,IAAI,kCAAc;YAAE,MAAM,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACxE,IAAI,uBAAA,IAAI,+BAAW;YAAE,OAAO,uBAAA,IAAI,+BAAW,CAAA;QAC3C,OAAO,CAAC,uBAAA,IAAI,2BAAc,uBAAA,IAAI,0BAAM;YACnC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB;YACtB,CAAC,CAAC,IAAI,OAAO,CAAM,CAAC,CAAC,EAAE,CAAC,uBAAA,IAAI,+BAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC,CAAA;IACnD,CAAC;CAID;gRAHA,KAAK;IACJ,OAAO,WAAW,CAAC,uBAAA,IAAI,0BAAO,CAA4B,CAAA;AAC3D,CAAC;AASF,KAAK,UAAU,WAAW,CACzB,IAA2D;IAE3D,OAAO,aAAa,CAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,aAAa,CACrB,OAAgB;IAEhB,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC;AAED,SAAS,aAAa,CAAI,OAAgB;IACzC,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC","sourcesContent":["import type { LeftJoin } from 'type-plus'\nimport { BlockingGetDetected, ContextAlreadyInitialized } from './errors.js'\n\nexport class AsyncContext<\n\tInit extends Record<string | symbol, any>,\n\tContext extends Record<string | symbol, any> = Init\n> {\n\t#resolving: Promise<any> | undefined\n\t#resolvers: Array<(value: Promise<Context>) => void> = []\n\t#transforming = false\n\t#init: Init | Promise<Init> | AsyncContext.Initializer<Init> | undefined\n\t#original: AsyncContext<any, any> | undefined\n\tconstructor(init?: Init | Promise<Init> | AsyncContext.Initializer<Init>) {\n\t\tthis.#init = init\n\t}\n\tinitialize<I extends Init = Init>(\n\t\tinit: I | Promise<I> | AsyncContext.Initializer<I>\n\t): AsyncContext<I> {\n\t\tif (this.#init) throw new ContextAlreadyInitialized({ ssf: this.initialize })\n\t\tthis.#init = init\n\n\t\tif (this.#resolvers.length > 0) this.#resolvers.forEach(r => r(this.#buildContext()))\n\t\treturn this as any as AsyncContext<I>\n\t}\n\textend<\n\t\tCurrentContext extends Record<string | symbol, any> = Context,\n\t\tAdditionalContext extends Record<string | symbol, any> = Record<string | symbol, any>\n\t>(\n\t\tcontext:\n\t\t\t| AdditionalContext\n\t\t\t| Promise<AdditionalContext>\n\t\t\t| AsyncContext.Transformer<Context, AdditionalContext>\n\t): AsyncContext<Init, LeftJoin<CurrentContext, AdditionalContext>> {\n\t\tconst newctx = new AsyncContext(async () => {\n\t\t\ttry {\n\t\t\t\tconst value = await this.get()\n\t\t\t\tnewctx.#transforming = true\n\t\t\t\tconst newValue = await (isTransformer<any, any>(context) ? context(value) : context)\n\t\t\t\treturn { ...value, ...newValue }\n\t\t\t} finally {\n\t\t\t\tnewctx.#transforming = false\n\t\t\t}\n\t\t})\n\t\tconst ctx = this.#original ?? this\n\t\tnewctx.#original = ctx\n\t\tnewctx.initialize = newctx.initialize.bind(ctx)\n\t\treturn newctx\n\t}\n\tasync get<C = Context>(): Promise<C> {\n\t\tif (this.#transforming) throw new BlockingGetDetected({ ssf: this.get })\n\t\tif (this.#resolving) return this.#resolving\n\t\treturn (this.#resolving = this.#init\n\t\t\t? this.#buildContext()\n\t\t\t: new Promise<any>(a => this.#resolvers.push(a)))\n\t}\n\tasync #buildContext(): Promise<Context> {\n\t\treturn resolveInit(this.#init!) as any as Promise<Context>\n\t}\n}\nexport namespace AsyncContext {\n\texport type Initializer<Init> = () => Init | Promise<Init>\n\texport type Transformer<CurrentContext, AdditionalContext> = (\n\t\tcontext: CurrentContext\n\t) => AdditionalContext | Promise<AdditionalContext>\n}\n\nasync function resolveInit<Init extends Record<string | symbol, any>>(\n\tinit: Init | Promise<Init> | AsyncContext.Initializer<Init>\n): Promise<Init> {\n\treturn isInitializer<Init>(init) ? init() : init\n}\n\nfunction isTransformer<CurrentContext, AdditionalContext>(\n\tcontext: unknown\n): context is AsyncContext.Transformer<CurrentContext, AdditionalContext> {\n\treturn typeof context === 'function'\n}\n\nfunction isInitializer<T>(context: unknown): context is AsyncContext.Initializer<T> {\n\treturn typeof context === 'function'\n}\n"]}
1
+ {"version":3,"file":"AsyncContext.js","sourceRoot":"","sources":["../ts/AsyncContext.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAE5E,MAAM,OAAO,YAAY;IASxB,YAAY,IAA4D;;QALxE,0CAAoC;QACpC,kCAAuD,EAAE,EAAA;QACzD,qCAAgB,KAAK,EAAA;QACrB,qCAAwE;QACxE,yCAA6C;QAE5C,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;IAClB,CAAC;IACD,UAAU,CACT,IAAkD;QAElD,IAAI,uBAAA,IAAI,0BAAM;YAAE,MAAM,IAAI,yBAAyB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7E,uBAAA,IAAI,sBAAS,IAAI,MAAA,CAAA;QAEjB,IAAI,uBAAA,IAAI,+BAAW,CAAC,MAAM,GAAG,CAAC;YAAE,uBAAA,IAAI,+BAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB,CAAC,CAAC,CAAA;QACrF,OAAO,IAA8B,CAAA;IACtC,CAAC;IACD,MAAM,CAIL,OAGuD;QAEvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC9B,uBAAA,MAAM,8BAAiB,IAAI,MAAA,CAAA;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAW,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpF,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;aAChC;oBAAS;gBACT,uBAAA,MAAM,8BAAiB,KAAK,MAAA,CAAA;aAC5B;QACF,CAAC,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,uBAAA,IAAI,8BAAU,IAAI,IAAI,CAAA;QAClC,uBAAA,MAAM,0BAAa,GAAG,MAAA,CAAA;QACtB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,OAAO,MAAM,CAAA;IACd,CAAC;IACD,KAAK,CAAC,GAAG;QACR,IAAI,uBAAA,IAAI,kCAAc;YAAE,MAAM,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACxE,IAAI,uBAAA,IAAI,+BAAW;YAAE,OAAO,uBAAA,IAAI,+BAAW,CAAA;QAC3C,OAAO,CAAC,uBAAA,IAAI,2BAAc,uBAAA,IAAI,0BAAM;YACnC,CAAC,CAAC,uBAAA,IAAI,2DAAc,MAAlB,IAAI,CAAgB;YACtB,CAAC,CAAC,IAAI,OAAO,CAAM,CAAC,CAAC,EAAE,CAAC,uBAAA,IAAI,+BAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,CAAC,CAAA;IACnD,CAAC;CAID;gRAHA,KAAK;IACJ,OAAO,WAAW,CAAC,uBAAA,IAAI,0BAAO,CAA4B,CAAA;AAC3D,CAAC;AASF,KAAK,UAAU,WAAW,CACzB,IAA2D;IAE3D,OAAO,aAAa,CAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,SAAS,aAAa,CACrB,OAAgB;IAEhB,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC;AAED,SAAS,aAAa,CAAI,OAAgB;IACzC,OAAO,OAAO,OAAO,KAAK,UAAU,CAAA;AACrC,CAAC"}
package/esm/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACzD,YAAY,OAA6B;QACxC,KAAK,CAAC,wBAAwB,EAAE,uCAAuC,EAAE,OAAO,CAAC,CAAA;IAClF,CAAC;CACD;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACnD,YAAY,OAA6B;QACxC,KAAK,CACJ,wBAAwB,EACxB,gEAAgE,EAChE,OAAO,CACP,CAAA;IACF,CAAC;CACD","sourcesContent":["import { ModuleError } from 'iso-error'\n\nexport class ContextAlreadyInitialized extends ModuleError {\n\tconstructor(options?: ModuleError.Options) {\n\t\tsuper('@unional/async-context', 'context can only be initialized once.', options)\n\t}\n}\n\nexport class BlockingGetDetected extends ModuleError {\n\tconstructor(options?: ModuleError.Options) {\n\t\tsuper(\n\t\t\t'@unional/async-context',\n\t\t\t`a blocking get() detected. Are you calling it within extend()?`,\n\t\t\toptions\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACzD,YAAY,OAA6B;QACxC,KAAK,CAAC,wBAAwB,EAAE,uCAAuC,EAAE,OAAO,CAAC,CAAA;IAClF,CAAC;CACD;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACnD,YAAY,OAA6B;QACxC,KAAK,CACJ,wBAAwB,EACxB,gEAAgE,EAChE,OAAO,CACP,CAAA;IACF,CAAC;CACD"}
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA","sourcesContent":["export * from './AsyncContext.js'\nexport * from './errors.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unional/async-context",
3
- "version": "9.0.8",
3
+ "version": "9.0.10",
4
4
  "description": "Asynchronous context for functional style programming",
5
5
  "keywords": [
6
6
  "async",
@@ -53,24 +53,21 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@repobuddy/jest": "^3.2.0",
56
+ "@repobuddy/typescript": "^1.2.0",
56
57
  "@size-limit/preset-small-lib": "^8.0.1",
57
- "@types/node": "^18.0.0",
58
- "@typescript-eslint/eslint-plugin": "^5.33.0",
59
- "@typescript-eslint/parser": "^5.33.0",
58
+ "@types/setimmediate": "^1.0.2",
60
59
  "assertron": "^11.0.1",
61
60
  "cross-env": "^7.0.3",
62
61
  "depcheck": "^1.4.3",
63
- "eslint": "^8.22.0",
64
- "eslint-config-prettier": "^8.7.0",
65
- "eslint-plugin-harmony": "^7.1.2",
66
62
  "jest": "^29.5.0",
67
63
  "jest-esm-transformer-2": "^1.0.0",
68
64
  "jest-watch-suspend": "^1.1.2",
69
65
  "jest-watch-toggle-config-2": "^2.1.0",
70
66
  "jest-watch-typeahead": "^2.2.2",
71
- "ncp": "^2.0.0",
72
67
  "npm-run-all": "^4.1.5",
68
+ "repobuddy": "^1.0.2",
73
69
  "rimraf": "^5.0.0",
70
+ "setimmediate": "^1.0.5",
74
71
  "size-limit": "^8.0.1",
75
72
  "ts-jest": "^29.1.0",
76
73
  "typescript": "5.1.0-dev.20230502"
@@ -91,7 +88,7 @@
91
88
  ],
92
89
  "scripts": {
93
90
  "build": "run-p build:cjs build:esm",
94
- "build:cjs": "tsc -p tsconfig.cjs.json && ncp ../../.config/package.cjs.json ./cjs/package.json",
91
+ "build:cjs": "buddy ts build cjs",
95
92
  "build:esm": "tsc",
96
93
  "clean": "rimraf cjs esm coverage *.tsbuildinfo",
97
94
  "coverage": "jest --coverage",