Download packages/client/test/import-boundaries.test.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 2.64 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/client/test/import-boundaries.test.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/client/test/import-boundaries.test.ts
-
curl -L -o import-boundaries.test.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/client/test/import-boundaries.test.ts
2.64 kB
| import { describe, expect, test } from "bun:test" | |
| import { realpathSync } from "node:fs" | |
| import { mkdtemp, rm } from "node:fs/promises" | |
| import { join, resolve, sep } from "node:path" | |
| const directory = resolve(import.meta.dir, "..") | |
| const effect = realpathSync(resolve(import.meta.dir, "../node_modules/effect")) | |
| const schema = resolve(import.meta.dir, "../../schema") | |
| const protocol = resolve(import.meta.dir, "../../protocol") | |
| const core = resolve(import.meta.dir, "../../core") | |
| const server = resolve(import.meta.dir, "../../server") | |
| describe("public import boundaries", () => { | |
| test("isolates each public entrypoint", async () => { | |
| const root = await bundleInputs("@opencode-ai/client", "browser") | |
| expect(within(root, effect)).toEqual([]) | |
| expect(within(root, schema)).toEqual([]) | |
| expect(within(root, protocol)).toEqual([]) | |
| expect(within(root, core)).toEqual([]) | |
| expect(within(root, server)).toEqual([]) | |
| const network = await bundleInputs("@opencode-ai/client/effect", "browser") | |
| expect(within(network, effect).length).toBeGreaterThan(0) | |
| expect(within(network, schema).length).toBeGreaterThan(0) | |
| expect(within(network, protocol).length).toBeGreaterThan(0) | |
| expect(within(network, core)).toEqual([]) | |
| expect(within(network, server)).toEqual([]) | |
| }) | |
| }) | |
| async function bundleInputs(specifier: string, target: "browser" | "bun") { | |
| const temporary = await mkdtemp(join(import.meta.dir, ".import-boundary-")) | |
| const entrypoint = join(temporary, "index.ts") | |
| const metafile = join(temporary, "meta.json") | |
| try { | |
| await Bun.write(entrypoint, `export * from ${JSON.stringify(specifier)}`) | |
| const child = Bun.spawn( | |
| [ | |
| process.execPath, | |
| "build", | |
| entrypoint, | |
| `--target=${target}`, | |
| "--format=esm", | |
| "--packages=bundle", | |
| `--metafile=${metafile}`, | |
| `--outdir=${join(temporary, "out")}`, | |
| ], | |
| { cwd: directory, stdout: "pipe", stderr: "pipe" }, | |
| ) | |
| const [exitCode, stdout, stderr] = await Promise.all([ | |
| child.exited, | |
| new Response(child.stdout).text(), | |
| new Response(child.stderr).text(), | |
| ]) | |
| if (exitCode !== 0) throw new Error(stdout + stderr) | |
| const metadata = await Bun.file(metafile).json() | |
| return Object.keys(metadata.inputs).map((input) => resolve(directory, input)) | |
| } finally { | |
| await rm(temporary, { recursive: true, force: true }) | |
| } | |
| } | |
| function within(inputs: ReadonlyArray<string>, directory: string) { | |
| const prefix = directory.endsWith(sep) ? directory : directory + sep | |
| return inputs.filter((input) => input === directory || input.startsWith(prefix)) | |
| } | |