tryharder 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -12,13 +12,20 @@ declare class RetryExhaustedError extends Error {
12
12
  declare class UnhandledException extends Error {
13
13
  constructor(message?: string, options?: ErrorOptions);
14
14
  }
15
+ interface AsyncDisposer extends AsyncDisposable {
16
+ add(fn: () => void | PromiseLike<void>): void;
17
+ cleanup(): Promise<void>;
18
+ defer(fn: () => void | PromiseLike<void>): void;
19
+ use<T extends AsyncDisposable | Disposable | null | undefined>(value: T): T;
20
+ disposeAsync(): Promise<void>;
21
+ }
15
22
  type TaskRecord = Record<string, any>;
16
23
  type TaskValidation<T extends TaskRecord> = { [K in keyof T] : T[K] extends (...args: any[]) => any ? T[K] : never };
17
24
  type TaskResult<T> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
18
25
  type InferredTaskContext<T extends TaskRecord> = {
19
26
  $result: { readonly [K in keyof T] : ReturnType<T[K]> extends Promise<infer R> ? Promise<R> : Promise<ReturnType<T[K]>> };
20
27
  $signal: AbortSignal;
21
- $disposer: AsyncDisposableStack;
28
+ $disposer: AsyncDisposer;
22
29
  };
23
30
  type AllValue<T extends TaskRecord> = { [K in keyof T] : TaskResult<T[K]> };
24
31
  interface AllCatchContext<T extends TaskRecord> {
@@ -241,7 +248,7 @@ declare class RunBuilder<
241
248
  allSettled<T extends TaskRecord>(tasks: T & TaskValidation<NoInfer<T>> & ThisType<InferredTaskContext<T>>): Promise<AllSettledResult<T>>;
242
249
  flow<T extends TaskRecord>(tasks: T & ThisType<InferredFlowTaskContext<T>>): Promise<FlowResult<T>>;
243
250
  }
244
- declare function dispose(): AsyncDisposableStack;
251
+ declare function dispose(): AsyncDisposer;
245
252
  type GenUnwrap<T> = Exclude<Awaited<T>, Error>;
246
253
  type GenUse = <T>(value: T) => Generator<T, GenUnwrap<T>, GenUnwrap<T>>;
247
254
  type GenErrors<TYield> = Extract<Awaited<TYield>, Error>;