import { mkdir, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; export interface GeneratedArtifactsPayload { activeAdapterSource: string; generatedConfigSource: string; runtimeBindingSource: string; bootstrapRuntimeSource: string; } export async function materializeGeneratedArtifacts(options: { outputDir: string; artifacts: GeneratedArtifactsPayload; }) { const generatedDir = join(options.outputDir, 'generated'); await mkdir(generatedDir, { recursive: true }); const files = [ { path: join(generatedDir, 'active-adapter.ts'), content: options.artifacts.activeAdapterSource, }, { path: join(generatedDir, 'generated-rewarded-config.ts'), content: options.artifacts.generatedConfigSource, }, { path: join(generatedDir, 'install-generated-bindings.ts'), content: options.artifacts.runtimeBindingSource, }, { path: join(generatedDir, 'bootstrap-runtime.ts'), content: options.artifacts.bootstrapRuntimeSource, }, ]; await Promise.all(files.map((file) => writeFile(file.path, file.content, 'utf8'))); return { outputDir: generatedDir, files: files.map((file) => file.path), }; }