Evolution SDK

sdk/Type.ts

Type overview


Table of contents


utils

EffectToPromise (type alias)

Signature

export type EffectToPromise<T> =
  T extends Effect.Effect<infer Return, infer _Error, infer _Context>
    ? Promise<Return>
    : T extends (...args: Array<any>) => Effect.Effect<infer Return, infer _Error, infer _Context>
      ? (...args: Parameters<T>) => Promise<Return>
      : never

EffectToPromiseAPI (type alias)

Signature

export type EffectToPromiseAPI<T> = Expand<{
  readonly [K in keyof T]: EffectToPromise<T[K]>
}>

SelectivePromiseAPI (type alias)

Selective Promise conversion - specify which Effects become Promises, rest become sync

Signature

export type SelectivePromiseAPI<T, PromiseKeys extends keyof T = never> = {
  // Promise-converted methods (explicitly specified)
  readonly [K in PromiseKeys]: EffectToPromise<T[K]>
} & {
  // Direct sync access for all other keys
  readonly [K in Exclude<keyof T, PromiseKeys>]: T[K] extends Effect.Effect<infer Return, any, any> ? Return : T[K]
}

SelectiveSyncAPI (type alias)

Selective Sync conversion - specify which Effects become sync, rest become Promises

Signature

export type SelectiveSyncAPI<T, SyncKeys extends keyof T = never> = {
  // Direct sync access (explicitly specified)
  readonly [K in SyncKeys]: T[K] extends Effect.Effect<infer Return, any, any> ? Return : T[K]
} & {
  // Promise-converted methods for all other keys
  readonly [K in Exclude<keyof T, SyncKeys>]: EffectToPromise<T[K]>
}