import resolve from "@rollup/plugin-node-resolve" import replace from "@rollup/plugin-replace" import dts from "rollup-plugin-dts" import pkg from "./package.json" with { type: "json"} import tsconfig from "./tsconfig.json" with { type: "json" } import preserveDirectives from "rollup-plugin-preserve-directives"; const config = { input: "lib/index.js", } export const replaceSettings = (env) => { const replaceConfig = env ? { "process.env.NODE_ENV": JSON.stringify(env), preventAssignment: false, } : { preventAssignment: false, } replaceConfig.__VERSION__ = `${pkg.version}` return replace(replaceConfig) } const external = [ ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {}), ...Object.keys(pkg.optionalDependencies || {}), "react/jsx-runtime", ] const cjs = Object.assign({}, config, { input: "lib/index.js", output: { entryFileNames: `[name].js`, dir: "dist/cjs", format: "cjs", exports: "named", esModule: true }, plugins: [resolve(), replaceSettings()], external, onwarn(warning, warn) { if (warning.code === 'MODULE_LEVEL_DIRECTIVE') { return } warn(warning) } }) export const es = Object.assign({}, config, { input: ["lib/index.js"], output: { entryFileNames: "[name].mjs", format: "es", exports: "named", preserveModules: true, dir: "dist/es", }, plugins: [resolve(), replaceSettings(), preserveDirectives()], external, onwarn(warning, warn) { if (warning.code === 'MODULE_LEVEL_DIRECTIVE') { return } warn(warning) } }) const typePlugins = [dts({compilerOptions: {...tsconfig, baseUrl:"types"}})] function createTypes(input, file) { return { input, output: { format: "es", file: file, }, plugins: typePlugins, } } const types = createTypes("types/index.d.ts", "dist/index.d.ts") // eslint-disable-next-line import/no-default-export export default [ cjs, es, types, ]