effx
API reference@effx/compiler

pipeline

API reference for @effx/compiler/pipeline

pipeline.ts overview


Exports Grouped by Category


utils

analyze

Runs every extension's analyses over normalized IR, checking each callback's diagnostics. @internal

Signature

declare const analyze: (
  ir: ApplicationIR,
  index: GraphIndex,
  extensions: ReadonlyArray<Extension>,
  context?: AnalysisContext
) => ReadonlyArray<Diagnostic>

compile

collect → interpret → merge → normalize → analyze → generate; registration precedes frontend analysis.

Signature

declare const compile: (
  project: {
    readonly tsconfigPath: string
    readonly strictAccess?: boolean | undefined
    readonly naming?: { readonly problemIdentifier?: string | undefined } | undefined
    readonly target?: "effect-4.0" | undefined
    readonly emit?: "handlers" | "contract" | "all" | undefined
    readonly entry?: ReadonlyArray<string> | undefined
    readonly outDir?: string | undefined
    readonly projectRoot?: string | undefined
    readonly lift?:
      | {
          readonly rules: ReadonlyArray<
            | {
                readonly _tag: "SuccessWrapper"
                readonly callee: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly status?: number | undefined
                readonly conditional?: true | undefined
                readonly schema?:
                  | {
                      readonly module: string
                      readonly export: string
                      readonly symbolId: string & Brand<"effx/StableId">
                    }
                  | undefined
                readonly responseHeaders?:
                  | {
                      readonly module: string
                      readonly export: string
                      readonly symbolId: string & Brand<"effx/StableId">
                    }
                  | undefined
              }
            | {
                readonly _tag: "NoSchemaSuccess"
                readonly callee: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
              }
            | {
                readonly _tag: "ProblemRegistry"
                readonly response: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly union: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly registry: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
              }
            | {
                readonly _tag: "Metadata"
                readonly callee: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly annotator: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly positional: ReadonlyArray<"description" | "summary">
              }
            | {
                readonly annotator: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly _tag: "Access"
                readonly emit: {
                  readonly exposure: TemplateExpr
                  readonly acceptedCredentials: TemplateExpr
                  readonly principalKinds: TemplateExpr
                  readonly capabilities: TemplateExpr
                  readonly requirements: TemplateExpr
                  readonly concealment: TemplateExpr
                  readonly decisionTime: TemplateExpr
                }
                readonly callee: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
                readonly arguments:
                  | {
                      readonly _tag: "Object"
                      readonly fields: ReadonlyArray<{
                        readonly required: boolean
                        readonly name: string
                        readonly kind: "string" | "boolean" | "strings"
                        readonly default?: Json | undefined
                      }>
                    }
                  | {
                      readonly _tag: "Positional"
                      readonly params: ReadonlyArray<{
                        readonly required: boolean
                        readonly name: string
                        readonly kind: "string" | "boolean" | "strings"
                        readonly default?: Json | undefined
                      }>
                    }
                readonly resolver: TemplateExpr
                readonly apply?:
                  { readonly module: string; readonly export: string; readonly member?: string | undefined } | undefined
              }
          >
          readonly names: {
            readonly [x: string]: {
              readonly module: string
              readonly export: string
              readonly member?: string | undefined
            }
          }
          readonly output: { readonly module: string }
          readonly projections?:
            | ReadonlyArray<{
                readonly key: { readonly module: string; readonly export: string; readonly member?: string | undefined }
                readonly hook: {
                  readonly module: string
                  readonly export: string
                  readonly member?: string | undefined
                }
              }>
            | undefined
          readonly emptyInput?:
            | { readonly module: string; readonly export: string; readonly symbolId: string & Brand<"effx/StableId"> }
            | undefined
        }
      | undefined
  },
  extensions: ReadonlyArray<Extension>,
  options?: Omit<AnalyzeOptions, "definitions"> | undefined
) => Effect.Effect<CompileResult, CompilerFault, SourceFrontend>

compileCollected

The pipeline after collection; applies the same registry contract without a frontend. @internal

Signature

declare const compileCollected: (
  collected: Collected,
  extensions: ReadonlyArray<Extension>,
  context?: AnalysisContext | undefined
) => Effect.Effect<CompileResult, CompilerFault, never>

interpret

interpret → merge → normalize. Pure; registry violations are diagnostics, not faults. @internal

Signature

declare const interpret: (collected: Collected, extensions: ReadonlyArray<Extension>) => StageResult<ApplicationIR>

On this page