import typescript from "@rollup/plugin-typescript";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import path from "path";
import process from "process";
import terser from "@rollup/plugin-terser";
import prettier from "rollup-plugin-prettier";
import banner2 from "rollup-plugin-banner2";
const NO_INLINE = new Set([
"@babel/core",
"@babel/parser",
"chalk",
"fast-glob",
"ora",
"yargs",
"zod",
"zod-validation-error",
]);
const DEV_ROLLUP_CONFIG = {
input: "src/index.ts",
output: {
file: "dist/index.js",
format: "cjs",
sourcemap: false,
exports: "named",
},
plugins: [
typescript({
tsconfig: "./tsconfig.json",
compilerOptions: {
noEmit: true,
},
}),
json(),
nodeResolve({
preferBuiltins: true,
resolveOnly: (module) => NO_INLINE.has(module) === false,
rootDir: path.join(process.cwd(), ".."),
}),
commonjs(),
terser({
format: {
comments: false,
},
compress: false,
mangle: false,
}),
prettier(),
banner2(
() => `#!/usr/bin/env node
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @lightSyntaxTransform
* @noflow
* @nolint
* @preventMunge
* @preserve-invariant-messages
*/
"use no memo";
`
),
],
};
export default DEV_ROLLUP_CONFIG;