UNPKG

@plugjs/build

Version:

Simple shared build using PlugJS

156 lines (155 loc) 6.52 kB
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>; }>;