(dir: string, kinds: Array<"server" | "tui">)
| 24 | } |
| 25 | |
| 26 | async function plugin(dir: string, kinds: Array<"server" | "tui">) { |
| 27 | const p = path.join(dir, "plugin") |
| 28 | const server = kinds.includes("server") |
| 29 | const tui = kinds.includes("tui") |
| 30 | const exports: Record<string, string> = {} |
| 31 | if (server) exports["./server"] = "./server.js" |
| 32 | if (tui) exports["./tui"] = "./tui.js" |
| 33 | await fs.mkdir(p, { recursive: true }) |
| 34 | await Bun.write( |
| 35 | path.join(p, "package.json"), |
| 36 | JSON.stringify( |
| 37 | { |
| 38 | name: "acme", |
| 39 | version: "1.0.0", |
| 40 | ...(server ? { main: "./server.js" } : {}), |
| 41 | ...(Object.keys(exports).length ? { exports } : {}), |
| 42 | }, |
| 43 | null, |
| 44 | 2, |
| 45 | ), |
| 46 | ) |
| 47 | return p |
| 48 | } |
| 49 | |
| 50 | async function read(file: string) { |
| 51 | return Filesystem.readJson<{ plugin?: unknown[] }>(file) |
no test coverage detected