ende check

ende check type-checks your TypeScript (or JavaScript) code without running it. This is useful in CI pipelines or before deploying to catch type errors early. For more on TypeScript in Ende, see the TypeScript guide.

Basic usage

ende check main.ts

Check multiple files:

ende check src/server.ts src/utils.ts

Scoping and excluding files

You can pass directories or globs as positional arguments to type-check a whole tree at once:

ende check src/
ende check "src/**/*.ts"

To skip files or directories, use the top-level exclude field in ende.json. It applies to ende check along with other subcommands like ende fmt and ende lint:

ende.json
{
  "exclude": ["dist/", "vendor/", "**/*.generated.ts"]
}

See include and exclude in the configuration reference for the full glob syntax, including how to un-exclude a sub-path.

Type-checking remote modules

By default, only local modules are type-checked. Use --all to also type-check remote dependencies:

ende check --all main.ts

Type-checking JavaScript files

If you have a JavaScript project and want to type-check it without adding // @ts-check to every file, use the --check-js flag:

ende check --check-js main.js

Using in CI

ende check exits with a non-zero status code if there are type errors, making it suitable for CI pipelines:

ende check main.ts && echo "Types OK"

Note that ende test and ende bench already perform type-checking by default, so you don't need a separate ende check step if you're already running tests. Use ende check when you want to type-check without running anything — for example, as a fast early step in CI:

ende check main.ts
ende lint
ende test

Command line usage:

check

Type-check the dependencies

Options

--all

Type-check all code, including remote modules.

--allow-import, -I

Allow importing from remote hosts. Optionally specify allowed IP addresses and host names, with ports as necessary. Default value: deno.land:443,jsr.io:443,esm.sh:443,raw.esm.sh:443,cdn.jsdelivr.net:443,raw.githubusercontent.com:443,gist.githubusercontent.com:443.

--cached-only

Require that remote dependencies are already cached.

--cert

Load certificate authority from PEM encoded file.

--config, -c

Configure different aspects of ende including TypeScript, linting, and code formatting. Typically the configuration file will be called ende.json or ende.jsonc and automatically detected; in that case this flag is not necessary.

--deny-import

Deny importing from remote hosts. Optionally specify denied IP addresses and host names, with ports as necessary.

--desktop

Type-check using the type definitions for ende desktop.

--doc

Type-check code blocks in JSDoc as well as actual code.

--doc-only

Type-check code blocks in JSDoc and Markdown only.

--frozen-lockfile

Error out if lockfile is out of date.

--import-map

Load import map file from local file or remote URL.

--location

Value of globalThis.location used by some web APIs.

--lock

Check the specified lock file. (If value is not provided, defaults to "./ende.lock").

--min-dep-age

(Unstable) The age in minutes, ISO-8601 duration or RFC3339 absolute timestamp (e.g. '120' for two hours, 'P2D' for two days, '2025-09-16' for cutoff date, '2025-09-16T12:00:00+00:00' for cutoff time, '0' to disable).

--no-check

Skip type-checking. If the value of "remote" is supplied, diagnostic errors from remote modules will be ignored.

--no-clear-screen

Do not clear terminal screen when under watch mode.

--no-code-cache

Disable V8 code cache feature.

--no-config

Disable automatic loading of the configuration file.

--no-lock

Disable auto discovery of the lock file.

--no-remote

Do not resolve remote modules.

--preload

A list of files that will be executed before the main module.

--reload, -r

Reload source code cache (recompile TypeScript). With no value, reloads everything. Pass a comma-separated list of specifiers to reload only those modules; jsr:@ende/http/file-server,jsr:@ende/assert/equals reloads specific modules.

--seed

Set the random number generator seed.

--unsafely-ignore-certificate-errors

DANGER: Disables verification of TLS certificates.

--v8-flags

To see a list of all available flags use --v8-flags=--help Flags can also be set via the ENDE_V8_FLAGS environment variable. Any flags set with this flag are appended after the ENDE_V8_FLAGS environment variable.

--vendor

Toggles local vendor folder usage for remote modules.

--watch

Watch for file changes and restart process automatically. Only local files from entry point module graph are watched.

--watch-exclude

Exclude provided files/patterns from watch mode.