@build-script/heft-esbuild-plugin
Version:
lowlevel esbuild plugin for [heft]
35 lines • 1.57 kB
TypeScript
import type { HeftConfiguration, IScopedLogger } from '@rushstack/heft';
import type ESBuild from 'esbuild';
import type { FilterdBuildOptions } from './config.js';
export type ESBuildPublicApi = typeof ESBuild;
export interface IGlobalSession {
/** see type define */
readonly logger: IScopedLogger;
/** name in heft.json */
readonly taskName: string;
/** directory contains project package.json */
readonly rootDir: string;
/** options in heft.json task define */
readonly options: string;
/** a temp dir, will delete when --clean */
readonly tempFolderPath: string;
/** @see @rushstack/rig-package */
readonly rigConfig: HeftConfiguration['rigConfig'];
/** resolve dependency package from project and rig, return absolute path */
resolve(packageName: string): PromiseLike<string>;
/** define globs to watch, relative to rootDir */
watchFiles(files: string[]): void;
/** require('esbuild') */
readonly esbuild: ESBuildPublicApi;
}
/**
* you can `export function onEmit() {}` to modify file content before write disk
*
* don't write file by your self in this function.
*
* @param files all files will be write to disk, this array can be add, remove, or modify.
* @param options is what you defined in options.
* @return value will be passed to next onEmit (undefined on first run), only have meaning in watch mode
**/
export type IOutputModifier<T = any> = (files: ESBuild.OutputFile[], options: FilterdBuildOptions, lastReturn?: T) => T | PromiseLike<T>;
//# sourceMappingURL=type.d.ts.map