@jgoz/esbuild-plugin-typecheck
TypeScript icon, indicating that this package has built-in type declarations

4.0.2 • Public • Published

@jgoz/esbuild-plugin-typecheck

An esbuild plugin for TypeScript type checking and side-channel compilation.

Features

  • Runs asynchronously in a worker thread
  • Supports project references and build mode
  • Reports errors to @jgoz/esbuild-plugin-livereload

Install

$ npm i @jgoz/esbuild-plugin-typecheck

Usage

Add it to your esbuild plugins:

const esbuild = require('esbuild');
const { typecheckPlugin } = require('@jgoz/esbuild-plugin-typecheck');

await esbuild.build({
  // ...
  plugins: [typecheckPlugin()],
});

API

function typecheckPlugin(options?: TypecheckPluginOptions): Plugin

Plugin options:

Name Type Default Description
build boolean | BuildOptions - Run the compiler in build mode, equivalent to running tsc --build. Normally, this will be inferred if tsconfig.json sets "composite": true but it can be overridden by this option.

This option also accepts an object, which implicitly turns build mode on. The object accepts build-mode-specific options that will be passed to the TypeScript compiler API.
buildMode "readonly" | "write-output" "readonly" Changes the behavior of build mode with respect to program output (JavaScript, type definitions, sourcemaps, and .tsbuildinfo files).
  • readonly (default) — output files will be written to an in-memory file system and discared after esbuild exits
  • write-output — output files will be written to disk as though you had invoked tsc --build

    There are tradeoffs between the two modes. In readonly mode, the initial typecheck may be slower, especially if the output/.tsbuildinfo files do not match the source files. However, subsequent incremental typechecks may be slightly faster since no I/O is involved. This mode is also the least surprising because typechecking implies a different intent than compilation, but TypeScript's build mode needs to produce output in order to remain fast for incremental compilation.

    In write-output mode, the output files will always be in sync with the input files, so the initial compilation may be slightly faster. However, subsequent incremental typechecks might be slightly slower due to I/O overhead. This mode would be appropriate to enable as an alternative to invoking tsc --build manually, e.g., in the case where the TypeScript output itself may be used outside of esbuild.
  • compilerOptions CompilerOptions {} TypeScript compiler option overrides that will be merged into the options in "tsconfig.json".
    configFile string - Path to "tsconfig.json". If not specified, this will use ESBuild's "tsconfig" option, finally falling back to TypeScript's config file resolution algorithm.
    logger Logger - Logger to use instead of the default.
    omitStartLog boolean false Omit "Typecheck started" messages.
    watch boolean - Enable typescript's watch mode

    Package Sidebar

    Install

    npm i @jgoz/esbuild-plugin-typecheck

    Weekly Downloads

    12,094

    Version

    4.0.2

    License

    MIT

    Unpacked Size

    630 kB

    Total Files

    40

    Last publish

    Collaborators

    • jgoz