import fs from "fs"; import path from "path"; import typescript from "@rollup/plugin-typescript"; import babel from "@rollup/plugin-babel"; import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import { terser } from "rollup-plugin-terser"; const pkgPath = path.resolve("package.json"); const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8")); const external = [ ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {}), /@babel\/runtime/, ]; const rollupConfig = { input: "src/index.ts", output: { dir: "dist", format: "esm", sourcemap: false, preserveModules: true, preserveModulesRoot: "src", }, external, plugins: [ resolve(), commonjs(), typescript({ tsconfig: "./tsconfig.json", declaration: true, noEmitOnError: true, importHelpers: true, }), babel({ extensions: [".js", ".ts"], babelHelpers: "runtime", include: ["src/**/*"], plugins: ["@babel/plugin-transform-runtime"], }), terser(), ], }; export default rollupConfig;