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
35 lines
1.1 KiB
TypeScript
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 });
|
|
})
|
|
);
|
|
}
|