Skip to content

@flowcraft/compiler ​

Programmatic API for compiling imperative workflows into declarative blueprints.

compileProject() ​

Compiles workflow files and returns the compilation result.

typescript
function compileProject(options: CompileOptions): Promise<CompilationOutput>

Parameters ​

  • options.entryPoints: string[] - Array of glob patterns matching workflow files
  • options.tsConfigPath?: string - Path to tsconfig.json (defaults to './tsconfig.json')

Returns ​

typescript
interface CompilationOutput {
	blueprints: Blueprint[]
	registry: FlowRegistry
	diagnostics: CompilationDiagnostic[]
	manifestSource: string
}
  • blueprints: Array of compiled blueprint objects ready for execution
  • registry: Registry containing all discovered flows and steps with their metadata
  • diagnostics: Array of compilation errors or warnings
  • manifestSource: Generated TypeScript code that exports all blueprints

buildFlows() ​

Convenience function that loads configuration from flowcraft.config.ts and writes the manifest file.

typescript
function buildFlows(configPath?: string): Promise<void>

Parameters ​

  • configPath?: string - Path to config file (defaults to './flowcraft.config.ts')

This function:

  1. Loads the configuration from flowcraft.config.ts
  2. Compiles all workflows using compileProject()
  3. Writes the generated manifest to the configured manifestPath
  4. Throws an error if compilation fails

Type Definitions ​

typescript
interface FlowcraftConfig {
	entryPoints: string[]
	manifestPath: string
	tsConfigPath?: string
}

interface CompilationDiagnostic {
	file: string
	line: number
	column: number
	message: string
	severity: 'error' | 'warning'
}

interface Blueprint {
	id: string
	nodes: Node[]
	edges: Edge[]
	// ... additional blueprint properties
}

interface FlowRegistry {
	flows: Map<string, FlowDefinition>
	steps: Map<string, StepDefinition>
}

Released under the MIT License