Improve types export for lucide-react (#1424)

* Add types plugin

* Add js doc comment

* Only enable dynamic imports for CJS and ESM builds

* Add documentation

* Adjust docs

* Add test for dynamic import

* Adjust note

* Adjustment in docs
This commit is contained in:
Eric Fennis
2023-07-13 16:39:02 +02:00
committed by GitHub
parent e9d69c6948
commit c97c6ed9e4
15 changed files with 271 additions and 112 deletions

View File

@@ -1,5 +1,6 @@
import plugins, { replace } from '@lucide/rollup-plugins';
import pkg from './package.json' assert { type: 'json' };
import dts from "rollup-plugin-dts";
const packageName = 'LucideReact';
const outputFileName = 'lucide-react';
@@ -21,19 +22,21 @@ const bundles = [
format: 'cjs',
inputs,
outputDir,
aliasesSupport: true
aliasesSupport: true,
withDynamicImports: true,
},
{
format: 'esm',
inputs,
outputDir,
preserveModules: true,
aliasesSupport: true
aliasesSupport: true,
withDynamicImports: true,
},
];
const configs = bundles
.map(({ inputs, outputDir, format, minify, preserveModules, aliasesSupport }) =>
.map(({ inputs, outputDir, format, minify, preserveModules, aliasesSupport, withDynamicImports }) =>
inputs.map(input => ({
input,
plugins: [
@@ -47,6 +50,15 @@ const configs = bundles
}),
] : []
),
...(
!withDynamicImports ? [
replace({
"export { default as dynamicIconImports } from './dynamicIconImports';": '',
delimiters: ['', ''],
preventAssignment: false,
}),
] : []
),
...plugins(pkg, minify)
],
external: ['react', 'prop-types'],
@@ -71,4 +83,13 @@ const configs = bundles
)
.flat();
export default configs;
export default [
{
input: inputs[0],
output: [{
file: `dist/${outputFileName}.d.ts`, format: "es"
}],
plugins: [dts()],
},
...configs
];