@dasa-health/icons
Version:
Livia DS React Icons
70 lines (63 loc) • 1.82 kB
JavaScript
import babel from '@rollup/plugin-babel'
import peerDepsExternal from 'rollup-plugin-peer-deps-external'
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import visualizer from 'rollup-plugin-visualizer'
import copy from 'rollup-plugin-copy'
const packageJson = require('./package.json')
const transformToCapitalize = (string = '') =>
string
.replace(/@/gi)
.split('-')
.map(word => `${word.slice(0, 1).toUpperCase()}${word.slice(1, word.length).toLowerCase()}`)
.join('')
const external = Object.keys(packageJson.dependencies || {})
const peers = Object.keys(packageJson.peerDependencies || {})
const globals = external.concat(peers).reduce((acc, item) => ({ ...acc, [item]: transformToCapitalize(item) }), {})
const input = 'src/index.js'
const commonPlugins = [
peerDepsExternal(),
babel({
exclude: ['node_modules/**', '../../node_modules/**'],
babelHelpers: 'bundled',
}),
resolve({
jsnext: true,
main: true,
browser: true,
}),
resolve(),
commonjs(),
copy({
targets: [
{ src: 'src/index.d.ts', dest: 'build' },
]
}),
visualizer(),
]
export default [
{
input,
external,
output: { file: packageJson.main, format: 'cjs', sourcemap: true },
plugins: commonPlugins,
},
{
input,
external,
output: { file: packageJson.module, format: 'esm', sourcemap: true },
plugins: commonPlugins,
},
{
input,
external,
output: {
file: packageJson.browser,
format: 'umd',
sourcemap: true,
name: 'dasa-icons',
globals,
},
plugins: commonPlugins,
},
]