mirror of
https://github.com/LukeHagar/crossws.git
synced 2025-12-06 04:19:26 +00:00
30 lines
954 B
TypeScript
30 lines
954 B
TypeScript
import { mkdir, writeFile } from "node:fs/promises";
|
|
import { dirname, join } from "node:path";
|
|
import { defineBuildConfig } from "unbuild";
|
|
|
|
export default defineBuildConfig({
|
|
rollup: {
|
|
inlineDependencies: true,
|
|
},
|
|
externals: ["@cloudflare/workers-types", "bun", "@deno/types"],
|
|
hooks: {
|
|
async "build:done"(ctx) {
|
|
const entries = Object.keys(ctx.pkg.exports || {})
|
|
.filter((key) => key.startsWith("./"))
|
|
.map((key) => key.slice(2));
|
|
for (const entry of entries) {
|
|
const dst = join(ctx.options.rootDir, entry + ".d.ts");
|
|
console.log(">", dst);
|
|
await mkdir(dirname(dst), { recursive: true });
|
|
const relativePath =
|
|
("..".repeat(entry.split("/").length - 1) || ".") + `/dist/${entry}`;
|
|
await writeFile(
|
|
dst,
|
|
`export * from "${relativePath}";\nexport { default } from "${relativePath}";\n`,
|
|
"utf8",
|
|
);
|
|
}
|
|
},
|
|
},
|
|
});
|