rollup-plugin-dts-bundle
Version:
Rollup plugin for bundling .d.ts files
69 lines (56 loc) • 1.75 kB
JavaScript
;
var del = require('del');
var dts = require('dts-bundle');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var del__default = /*#__PURE__*/_interopDefaultLegacy(del);
var dts__default = /*#__PURE__*/_interopDefaultLegacy(dts);
function dtsBundle(options = {}) {
const {
hook = 'writeBundle',
bundle: {
out = 'typings.d.ts',
...restBundle
},
verbose = false,
deleteOnComplete
} = options;
const printVerbose = (message) => {
if (verbose) {
if (typeof message === 'function') {
message();
} else {
console.log(message);
}
}
};
return {
name: 'dts-bundle',
[hook]: async () => {
printVerbose(`Typings bundling for '${restBundle.name}': ${restBundle.main} → ${out}...`);
const result = dts__default['default'].bundle({
out,
...restBundle
});
if (result.emitted) {
printVerbose('Typings bundle was created successfully.');
// Run delete routine only if typings bundle was created.
if (Array.isArray(deleteOnComplete) && deleteOnComplete.length) {
const paths = await del__default['default'](deleteOnComplete);
printVerbose(() => {
console.log(`Deleted files and folders after typings bundling: ${paths.length}`);
if (paths.length) {
paths.forEach((path) => {
console.log(path);
});
}
});
}
} else {
printVerbose(
() => console.error('Something goes wrong, typings bundle wasn\'t emitted. Result: ', result)
);
}
}
};
}
module.exports = dtsBundle;