UNPKG

@samual/rolldown-config

Version:
86 lines (85 loc) 2.23 kB
import { type RollupBabelInputPluginOptions } from "@rollup/plugin-babel"; import { type Options as TerserOptions } from "@rollup/plugin-terser"; import type { LaxPartial } from "@samual/types"; import type { RolldownOptions } from "rolldown"; import { type Options as PrettierOptions } from "rollup-plugin-prettier"; type Options = LaxPartial<{ /** * Override the source folder. * @default "src" * * @example * ```js * // rolldown.config.js * import { rolldownConfig } from "@samual/rolldown-config" * * export default rolldownConfig({ sourcePath: "source" }) * ``` */ sourcePath: string; /** * Override any Rolldown options. * @see [Official Rolldown docs.](https://rolldown.rs/reference/config-options) * * @example * ```ts * // rolldown.config.js * import { rolldownConfig } from "@samual/rolldown-config" * * // You can override the output folder like so: * export default rolldownConfig({ rolldownOptions: { output: { dir: "build" } } }) * ``` */ rolldownOptions: RolldownOptions; /** * Override any Babel options. * @see [Official Babel docs.](https://babeljs.io/docs/options) */ babelOptions: RollupBabelInputPluginOptions; /** * Override any Terser options. * @see [Official Terser docs.](https://terser.org/docs/options/) */ terserOptions: TerserOptions; /** * Override any Prettier options. * @see [Official Prettier docs.](https://prettier.io/docs/en/options) */ prettierOptions: PrettierOptions; experimental: LaxPartial<{ noSideEffects: boolean; disablePrettier: boolean; }>; }>; /** * Construct a {@linkcode RollupOptions} object. * * Compiles all `.js` and `.ts` files (excludes `.test.js`, `.test.ts`, and `.d.ts`) found in the * {@linkcode Options.sourcePath sourcePath}. * * @see {@linkcode Options} * * @example * ```text * src/ * env.d.ts * foo.ts * bar/ * baz.ts * baz.test.ts * dist/ * foo.js * bar/ * baz.js * ``` * * @example * ```js * // rolldown.config.js * import { rolldownConfig } from "@samual/rolldown-config" * * export default rolldownConfig() * ``` */ export declare const rolldownConfig: ({ sourcePath, rolldownOptions, babelOptions, terserOptions, prettierOptions, experimental }?: Options) => Promise<RolldownOptions>; export {};