1import { cpSync, existsSync, mkdirSync } from "node:fs"
2import { basename, dirname, join, relative } from "node:path"
3import { runtimeperfDir, sanitize } from "./utils.mts"
4
5export const materializeFixture = (targetRoot, fixture) => {
6 const sourceDir = dirname(fixture.fixturePath)
7 const name = sanitize(relative(runtimeperfDir, sourceDir))
8 const targetDir = join(targetRoot, "packages", "effect", ".runtimeperf-compare", name)
9 mkdirSync(dirname(targetDir), { recursive: true })
10 if (!existsSync(targetDir)) {
11 cpSync(sourceDir, targetDir, { recursive: true })
12 }
13 return join(targetDir, basename(fixture.fixturePath))
14}