chore: v2.6.0
[poolifier.git] / rollup.config.mjs
index 017ca1b9bee2ea0a1ee01ec6939248a7a23f0a3a..b5c0b285b77b8daa31ab63e4cd19f5152e688825 100644 (file)
@@ -1,3 +1,4 @@
+import { cpus } from 'node:os'
 import terser from '@rollup/plugin-terser'
 import typescript from '@rollup/plugin-typescript'
 import analyze from 'rollup-plugin-analyzer'
@@ -5,33 +6,41 @@ import command from 'rollup-plugin-command'
 import del from 'rollup-plugin-delete'
 
 const isDevelopmentBuild = process.env.BUILD === 'development'
-const isAnalyze = process.env.ANALYZE
-const isDocumentation = process.env.DOCUMENTATION
+const isAnalyzeBuild = process.env.ANALYZE
+const isDocumentationBuild = process.env.DOCUMENTATION
+
+const maxWorkers = cpus().length / 2
 
 export default {
   input: 'src/index.ts',
   strictDeprecations: true,
   output: [
     {
-      ...(isDevelopmentBuild ? { dir: 'lib' } : { file: 'lib/index.js' }),
       format: 'cjs',
       sourcemap: !!isDevelopmentBuild,
       ...(isDevelopmentBuild && {
+        dir: 'lib',
         preserveModules: true,
         preserveModulesRoot: 'src'
       }),
-      ...(!isDevelopmentBuild && { plugins: [terser({ maxWorkers: 2 })] })
+      ...(!isDevelopmentBuild && {
+        file: 'lib/index.js',
+        plugins: [terser({ maxWorkers })]
+      })
     },
     {
-      ...(isDevelopmentBuild ? { dir: 'lib' } : { file: 'lib/index.mjs' }),
       format: 'esm',
       sourcemap: !!isDevelopmentBuild,
       ...(isDevelopmentBuild && {
+        dir: 'lib',
         entryFileNames: '[name].mjs',
         preserveModules: true,
         preserveModulesRoot: 'src'
       }),
-      ...(!isDevelopmentBuild && { plugins: [terser({ maxWorkers: 2 })] })
+      ...(!isDevelopmentBuild && {
+        file: 'lib/index.mjs',
+        plugins: [terser({ maxWorkers })]
+      })
     }
   ],
   external: [
@@ -40,6 +49,7 @@ export default {
     'node:crypto',
     'node:events',
     'node:os',
+    'node:perf_hooks',
     'node:worker_threads'
   ],
   plugins: [
@@ -51,7 +61,7 @@ export default {
     del({
       targets: ['lib/*']
     }),
-    isAnalyze && analyze(),
-    isDocumentation && command('pnpm run typedoc')
+    isAnalyzeBuild && analyze(),
+    isDocumentationBuild && command('pnpm typedoc')
   ]
 }