_tmprepo.js 734 B

12345678910111213141516171819202122
  1. import path from 'node:path'
  2. import os from 'node:os'
  3. import { mkdtemp, mkdir, writeFile, rm, readFile } from 'node:fs/promises'
  4. // 在临时目录造一个最小书仓库(Writer/定稿 测试用),files = {相对路径: 内容}
  5. export async function makeRepo(files = {}) {
  6. const root = await mkdtemp(path.join(os.tmpdir(), 'wnw-w-'))
  7. for (const [rel, content] of Object.entries(files)) {
  8. const full = path.join(root, rel)
  9. await mkdir(path.dirname(full), { recursive: true })
  10. await writeFile(full, content, 'utf8')
  11. }
  12. return root
  13. }
  14. export async function cleanup(root) {
  15. await rm(root, { recursive: true, force: true })
  16. }
  17. export function read(root, rel) {
  18. return readFile(path.join(root, rel), 'utf8')
  19. }