UNPKG

@storm-software/unbuild

Version:

A package containing `unbuild` utilities for building Storm Software libraries and applications

38 lines (36 loc) 1.25 kB
import { __name } from "../chunk-3GQAWCBQ.js"; // src/plugins/type-definitions.ts import { relative } from "node:path"; function typeDefinitionsPlugin(options) { return { name: "storm:dts-bundle", async generateBundle(_opts, bundle) { for (const file of Object.values(bundle)) { if (file.type === "asset" || !file.isEntry || file.facadeModuleId == null) { continue; } const hasDefaultExport = file.exports.includes("default"); const entrySourceFileName = relative(options.projectRoot, file.facadeModuleId); const entrySourceDtsName = entrySourceFileName.replace(/\.[cm]?[jt]sx?$/, ""); const dtsFileName = file.fileName.replace(/\.[cm]?js$/, ".d.ts"); const relativeSourceDtsName = JSON.stringify("./" + entrySourceDtsName); const dtsFileSource = hasDefaultExport ? ` export * from ${relativeSourceDtsName}; export { default } from ${relativeSourceDtsName}; ` : `export * from ${relativeSourceDtsName}; `; this.emitFile({ type: "asset", fileName: dtsFileName, source: dtsFileSource }); } } }; } __name(typeDefinitionsPlugin, "typeDefinitionsPlugin"); export { typeDefinitionsPlugin };