import * as os from 'node:os'
import { env } from 'node:process'
-import { dts } from 'rollup-plugin-dts'
+
import terser from '@rollup/plugin-terser'
import typescript from '@rollup/plugin-typescript'
+import { defineConfig } from 'rollup'
import analyze from 'rollup-plugin-analyzer'
import command from 'rollup-plugin-command'
import del from 'rollup-plugin-delete'
-import { defineConfig } from 'rollup'
+import { dts } from 'rollup-plugin-dts'
const availableParallelism = () => {
let availableParallelism = 1
try {
+ // eslint-disable-next-line n/no-unsupported-features/node-builtins
availableParallelism = os.availableParallelism()
} catch {
const cpus = os.cpus()
}
const isDevelopmentBuild = env.BUILD === 'development'
-const isAnalyzeBuild = env.ANALYZE
-const isDocumentationBuild = env.DOCUMENTATION
+const isAnalyzeBuild = Boolean(env.ANALYZE)
+const isDocumentationBuild = Boolean(env.DOCUMENTATION)
const sourcemap = env.SOURCEMAP !== 'false'
const maxWorkers = Math.floor(availableParallelism() / 2)
output: [
{
format: 'cjs',
- ...(isDevelopmentBuild && {
- dir: './lib',
- preserveModules: true,
- preserveModulesRoot: './src'
- }),
- ...(!isDevelopmentBuild && {
- file: './lib/index.js',
- plugins: [terser({ maxWorkers })]
- }),
+ ...(isDevelopmentBuild
+ ? {
+ dir: './lib',
+ entryFileNames: '[name].cjs',
+ chunkFileNames: '[name]-[hash].cjs',
+ preserveModules: true,
+ preserveModulesRoot: './src',
+ }
+ : {
+ file: './lib/index.cjs',
+ plugins: [terser({ maxWorkers })],
+ }),
...(sourcemap && {
- sourcemap
- })
+ sourcemap,
+ }),
},
{
format: 'esm',
- ...(isDevelopmentBuild && {
- dir: './lib',
- entryFileNames: '[name].mjs',
- chunkFileNames: '[name]-[hash].mjs',
- preserveModules: true,
- preserveModulesRoot: './src'
- }),
- ...(!isDevelopmentBuild && {
- file: './lib/index.mjs',
- plugins: [terser({ maxWorkers })]
- }),
+ ...(isDevelopmentBuild
+ ? {
+ dir: './lib',
+ entryFileNames: '[name].mjs',
+ chunkFileNames: '[name]-[hash].mjs',
+ preserveModules: true,
+ preserveModulesRoot: './src',
+ }
+ : {
+ file: './lib/index.mjs',
+ plugins: [terser({ maxWorkers })],
+ }),
...(sourcemap && {
- sourcemap
- })
- }
+ sourcemap,
+ }),
+ },
],
external: [/^node:*/],
plugins: [
typescript({
tsconfig: './tsconfig.build.json',
compilerOptions: {
- sourceMap: sourcemap
- }
+ sourceMap: sourcemap,
+ },
}),
del({
- targets: ['./lib/*']
+ targets: ['./lib/*'],
}),
- Boolean(isAnalyzeBuild) && analyze(),
- Boolean(isDocumentationBuild) && command('pnpm typedoc')
- ]
+ isAnalyzeBuild && analyze(),
+ isDocumentationBuild && command('pnpm typedoc'),
+ ],
},
{
input: './lib/dts/index.d.ts',
+ strictDeprecations: true,
output: [{ format: 'esm', file: './lib/index.d.ts' }],
external: [/^node:*/],
plugins: [
dts(),
del({
targets: ['./lib/dts'],
- hook: 'buildEnd'
+ hook: 'buildEnd',
}),
- Boolean(isAnalyzeBuild) && analyze()
- ]
- }
+ isAnalyzeBuild && analyze(),
+ ],
+ },
])