@plugjs/build
Version:
Simple shared build using PlugJS
156 lines (155 loc) • 6.52 kB
TypeScript
import '@plugjs/cov8';
import '@plugjs/eslint';
import '@plugjs/expect5';
import '@plugjs/typescript';
import type { ESBuildOptions, FindOptions, Pipe } from '@plugjs/plug';
export * from '@plugjs/plug';
/** Options for creating our shared build file */
export interface TasksOptions {
/** The directory for the original sources (default: `src`) */
sourceDir?: string;
/** The destination directory of the transpiled sources (default: `dist`) */
destDir?: string;
/** The directory for the test files (default: `test`) */
testDir?: string;
/** The directory for the coverage report (default: `coverage`) */
coverageDir?: string;
/** The directory for the coverage data (default: `.coverage-data`) */
coverageDataDir?: string;
/** A directory containing extra types to use while transpiling (default: `types`) */
extraTypesDir?: string;
/** The `tsconfig.json` file used for _transpiling_ source TypeScript files (default: `tsconfig.json`) */
tsconfigJson?: string;
/** Extra `find` defintions for additional coverage sources */
extraCoverage?: (readonly [glob: string, ...globs: string[], options: FindOptions])[];
/** Extra `find` defintions for additional linting sources */
extraLint?: (readonly [glob: string, ...globs: string[], options: FindOptions])[];
/** The source `package.json` file (default: `package.json`) */
packageJson?: string;
/** The source `package.json` file (default: same as `packageJson` option) */
outputPackageJson?: string;
/** The extension used for CommonJS modules (default: `.cjs`) */
cjsExtension?: string;
/** The extension used for EcmaScript modules (default: `.mjs`) */
esmExtension?: string;
/** Enable CommonJS Modules or not (default: `true`) */
cjs?: boolean;
/** Enable EcmaScript Modules or not (default: `true`) */
esm?: boolean;
/** Enable or disable banners (default: `true` if `parallelize` is `false`) */
banners?: boolean;
/** Parallelize tasks (might make output confusing, default: `false`) */
parallelize?: boolean;
/** A glob pattern matching all test files (default: `**∕*.test.([cm])?ts`) */
testGlob?: string;
/** A glob pattern matching files to be exported (default: `index.*`) */
exportsGlob?: string;
/** Extra glob patterns matching files to be exported (default: `[]`) */
exportsGlobs?: string[];
/** Enable coverage when running tests (default: `true`) */
coverage?: boolean;
/** Minimum overall coverage percentage (default: `100`) */
minimumCoverage?: number;
/** Minimum per-file coverage percentage (default: `100`) */
minimumFileCoverage?: number;
/** Optimal overall coverage percentage (default: _none_) */
optimalCoverage?: number;
/** Optimal per-file coverage percentage (default: _none_) */
optimalFileCoverage?: number;
/**
* ESBuild compilation options
*
* Default:
*
* ```
* {
* platform: 'node',
* sourcemap: 'linked',
* sourcesContent: false,
* plugins: [ fixExtensions() ],
* }
* ```
*/
esbuildOptions?: ESBuildOptions;
}
export declare function tasks(options?: TasksOptions): import("@plugjs/plug").Build<{
/** The directory for the original sources (default: `src`) */
sourceDir: string;
/** The destination directory of the transpiled sources (default: `dist`) */
destDir: string;
/** The directory for the test files (default: `test`) */
testDir: string;
/** The directory for the coverage report (default: `coverage`) */
coverageDir: string;
/** The directory for the coverage data (default: `.coverage-data`) */
coverageDataDir: string;
/** A directory containing extra types to use while transpiling (default: `types`) */
extraTypesDir: string;
/** The `tsconfig.json` file used for _transpiling_ source TypeScript files (default: `tsconfig.json`) */
tsconfigJson: string;
/** The source `package.json` file (default: `package.json`) */
packageJson: string;
/** The source `package.json` file (default: same as `packageJson` option) */
outputPackageJson: string;
/** The extension used for CommonJS modules (default: `.cjs`) */
cjsExtension: string;
/** The extension used for EcmaScript modules (default: `.mjs`) */
esmExtension: string;
/** The extension used for CommonJS modules (default: `.cjs`) */
cjs: string;
/** The extension used for EcmaScript modules (default: `.mjs`) */
esm: string;
/** A glob pattern matching all test files (default: `**∕*.test.([cm])?ts`) */
testGlob: string;
/** A glob pattern matching files to be exported (default: `index.*`) */
exportsGlob: string;
/** Find all CommonJS source files (`*.cts`) */
_find_sources_cts(): Pipe;
/** Find all EcmaScript Module source files (`*.mts`) */
_find_sources_mts(): Pipe;
/** Find all typescript source files (`*.ts`, `*.mts` and `*.cts`) */
_find_sources(): Pipe;
/** Find all types definition files within sources */
_find_types(): Pipe;
/** Find all resource files (non-typescript files) within sources */
_find_resources(): Pipe;
/** Find all test source files */
_find_tests(): Pipe;
/** Find all source files to lint */
_find_lint_sources(): Pipe;
/** Find all source files for coverage */
_find_coverage_sources(): Pipe;
/** Transpile to CJS */
transpile_cjs(): Pipe;
/** Transpile to ESM */
transpile_esm(): Pipe;
/** Generate all .d.ts files */
transpile_types(): Pipe;
/** Copy all resources coming alongside our sources */
copy_resources(): Pipe;
/** Transpile all source code */
transpile(): Promise<Pipe>;
/** Check test types */
test_types(): Promise<void>;
/** Run tests */
test_cjs(): Promise<void>;
/** Run tests */
test_esm(): Promise<void>;
/** Run tests */
test(): Promise<void>;
/** Ensure tests have run and generate a coverage report */
coverage(): Promise<Pipe>;
/** Lint all sources */
lint(): Promise<void>;
/** Inject `exports` into the `package.json` file */
exports(): Promise<Pipe>;
/** Build everything. */
all(): Promise<void>;
/**
* Default task (simply invokes `this._all()`).
*
* Override this and invoke `this._all()` to inject tasks _before_ or
* _after_ the normal build execution.
*/
default(): Promise<void>;
}>;