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:
{
"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:
checkType-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.