diff --git a/src/esbuild/index.ts b/src/esbuild/index.ts index e4f69dd3..20ee6000 100644 --- a/src/esbuild/index.ts +++ b/src/esbuild/index.ts @@ -123,6 +123,15 @@ export async function runEsbuild( ...(options.esbuildPlugins || []), ] + const banner = + typeof options.banner === 'function' + ? options.banner({ format }) + : options.banner + const footer = + typeof options.footer === 'function' + ? options.footer({ format }) + : options.footer + try { result = await esbuild({ entryPoints: options.entry, @@ -134,8 +143,8 @@ export async function runEsbuild( jsxFragment: options.jsxFragment, sourcemap: options.sourcemap ? 'external' : false, target: options.target, - footer: options.footer, - banner: options.banner, + banner, + footer, tsconfig: options.tsconfig, loader: { '.aac': 'file', diff --git a/src/options.ts b/src/options.ts index 76e851cf..840db59f 100644 --- a/src/options.ts +++ b/src/options.ts @@ -16,6 +16,13 @@ export type DtsConfig = { footer?: string } +export type BannerOrFooter = + | { + js?: string + css?: string + } + | ((ctx: { format: Format }) => { js?: string; css?: string } | undefined) + /** * The options available in tsup.config.ts * Not all of them are available from CLI flags @@ -106,8 +113,8 @@ export type Options = { * @see https://esbuild.github.io/api/#metafile */ metafile?: boolean - footer?: BuildOptions['footer'] - banner?: BuildOptions['banner'] + footer?: BannerOrFooter + banner?: BannerOrFooter /** * Target platform * @default `node`