import { BuildFailure, BuildResult, BuildOptions, TsconfigRaw, Plugin } from 'esbuild'; export { loadTsConfig } from 'load-tsconfig'; /** * Dynamically import files. * * As a temporary workaround for Jest's lack of stable ESM support, we fallback to require * if we're in a Jest environment. * See https://github.com/vitejs/vite/pull/5197#issuecomment-938054077 * * @param file File path to import. */ declare const dynamicImport: RequireFunction; declare const JS_EXT_RE: RegExp; type RequireFunction = (outfile: string, ctx: { format: "cjs" | "esm"; }) => any; type GetOutputFile = (filepath: string, format: "esm" | "cjs") => string; type RebuildCallback = (error: Pick | null, result: BuildResult | null) => void; type ReadFile = (filepath: string) => string; interface Options { cwd?: string; /** * The filepath to bundle and require */ filepath: string; /** * The `require` function that is used to load the output file * Default to the global `require` function * This function can be asynchronous, i.e. returns a Promise */ require?: RequireFunction; /** * esbuild options * */ esbuildOptions?: BuildOptions & { /** * @deprecated `esbuildOptions.watch` is deprecated, use `onRebuild` instead */ watch?: boolean | { onRebuild?: RebuildCallback; }; }; /** * Get the path to the output file * By default we simply replace the extension with `.bundled_{randomId}.js` */ getOutputFile?: GetOutputFile; /** * Enable watching and call the callback after each rebuild */ onRebuild?: (ctx: { err?: Pick; mod?: any; dependencies?: string[]; }) => void; /** External packages */ external?: (string | RegExp)[]; /** Not external packages */ notExternal?: (string | RegExp)[]; /** * Automatically mark node_modules as external * @default true - `false` when `filepath` is in node_modules */ externalNodeModules?: boolean; /** * A custom tsconfig path to read `paths` option * * Set to `false` to disable tsconfig * Or provide a `TsconfigRaw` object */ tsconfig?: string | TsconfigRaw | false; /** * Preserve compiled temporary file for debugging * Default to `process.env.BUNDLE_REQUIRE_PRESERVE` */ preserveTemporaryFile?: boolean; /** * Provide bundle format explicitly * to skip the default format inference */ format?: "cjs" | "esm"; readFile?: ReadFile; } declare const tsconfigPathsToRegExp: (paths: Record) => RegExp[]; declare const match: (id: string, patterns?: (string | RegExp)[]) => boolean; /** * An esbuild plugin to mark node_modules as external */ declare const externalPlugin: ({ external, notExternal, externalNodeModules, }?: { external?: (string | RegExp)[] | undefined; notExternal?: (string | RegExp)[] | undefined; externalNodeModules?: boolean | undefined; }) => Plugin; declare const injectFileScopePlugin: ({ readFile, }?: { readFile?: ReadFile | undefined; }) => Plugin; declare function bundleRequire(options: Options): Promise<{ mod: T; dependencies: string[]; }>; export { GetOutputFile, JS_EXT_RE, Options, ReadFile, RebuildCallback, RequireFunction, bundleRequire, dynamicImport, externalPlugin, injectFileScopePlugin, match, tsconfigPathsToRegExp };