import { fragmentsConfigSchema } from "./schema.js"; import type { FragmentsConfig } from "./types.js"; import { normalizeGovernanceConfig } from "./governance.js"; function formatZodErrors(errors: Array<{ path: (string | number)[]; message: string }>) { return errors.map((error) => ` - ${error.path.join(".")}: ${error.message}`).join("\n"); } export function defineConfig(config: TConfig): TConfig { const normalized = normalizeGovernanceConfig(config); const result = fragmentsConfigSchema.safeParse(normalized); if (!result.success) { throw new Error(`Invalid fragments config:\n${formatZodErrors(result.error.errors)}`); } return result.data as TConfig; }