import fs from 'node:fs/promises';
import os from 'node:os';
import path from 'node:path';
export const fixturesPath = path.resolve(import.meta.dirname, '../../fixtures');
export async function copyDirectoryAndContents(source: string, destination: string) {
await fs.mkdir(destination, { recursive: true });
const files = await fs.readdir(source, { withFileTypes: true });
for (const file of files) {
const sourcePath = path.join(source, file.name);
const destinationPath = path.join(destination, file.name);
if (file.isDirectory()) {
await copyDirectoryAndContents(sourcePath, destinationPath);
} else {
await fs.copyFile(sourcePath, destinationPath);
}
}
}
export function removeVersion(res: string) {
return res.replace(/(v[0-9.]+)/, 'vTest');
}
export async function getTestDirectory(name: string) {
const dir = path.join(os.tmpdir(), name);
await fs.mkdir(dir, { recursive: true });
await fs.rm(dir, { recursive: true, force: true });
return dir;
}