UNPKG

@storm-software/unbuild

Version:

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

41 lines (39 loc) 1.24 kB
import "../chunk-3RG5ZIWI.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 }); } } }; } export { typeDefinitionsPlugin };