Files
wehub-resource-sync 70bf21e064
Deploy (to testing) and Test Playground Preview Worker / Deploy Playground Preview Worker (testing) (push) Has been skipped
Deploy Workers Shared Staging / Deploy Workers Shared Staging (push) Failing after 0s
Prerelease / build (push) Has been skipped
Handle Changesets / Handle Changesets (push) Has been cancelled
Semgrep OSS scan / semgrep-oss (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:30:11 +08:00

35 lines
1.1 KiB
TypeScript

import { mkdtempSync } from "node:fs";
import { mkdir, rm, writeFile } from "node:fs/promises";
import os from "node:os";
import path from "node:path";
export function makeRoot() {
return mkdtempSync(path.join(os.tmpdir(), "wrangler-smoke-"));
}
// Seeds the `root` directory on the file system with some data. Use in
// combination with `dedent` for petty formatting of seeded contents.
export async function seed(
root: string,
files: Record<string, string | Uint8Array>
) {
// TODO(someday): allow copying/symlinking file/directory paths in seed? like "path`${__dirname}/../fixture`"?
await Promise.all(
Object.entries(files).map(async ([name, contents]) => {
const filePath = path.resolve(root, name);
await mkdir(path.dirname(filePath), { recursive: true });
await writeFile(filePath, contents);
})
);
}
// Removes the given files from the `root` directory on the file system.
export async function removeFiles(root: string, files: string[]) {
await Promise.all(
files.map(async (name) => {
const filePath = path.resolve(root, name);
await rm(filePath, { force: true });
})
);
}