@storm-software/unbuild
Version:
A package containing `unbuild` utilities for building Storm Software libraries and applications
38 lines (33 loc) • 1.4 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});
var _chunkBGYQAVKQcjs = require('../chunk-BGYQAVKQ.cjs');
// src/plugins/type-definitions.ts
var _path = require('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 = _path.relative.call(void 0, 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
});
}
}
};
}
_chunkBGYQAVKQcjs.__name.call(void 0, typeDefinitionsPlugin, "typeDefinitionsPlugin");
exports.typeDefinitionsPlugin = typeDefinitionsPlugin;