@samual/rolldown-config
Version:
My Rolldown config
86 lines (85 loc) • 2.23 kB
TypeScript
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 {};