Minimal JavaScript module that checks whether a given file path is executable, and whether it is a normal file. Useful for deciding if something can be run, using async `isexe(path)` or sync `sync(path)`, with Windows handling based on `PATHEXT` and an option to ignore errors.
Project status
- Actively maintained: The repository shows recent updates in 2026 (latest on 2026-02-09), and the upstream push is also recent, indicating the project is currently maintained rather than dormant.
- Apparent cadence: Several updates cluster tightly in early February 2026 (v3.1.5 through v4.0.0 published within about two days), suggesting an active period of packaging/runtime adjustments rather than a long pause.
AI summary generated
Recent updates
v4.0.0
The v4.0.0 release contains minimal changes, primarily updating the package version metadata. The only functional-impacting change visible in the diff is an increase to the supported Node.js runtime requirement.
v3.1.5
Release v3.1.5 updates the package metadata and npm engine constraints. No functional source code changes are shown in the provided diff, only version and configuration updates.
v3.1.4
Release v3.1.4 (published 2026-02-08) was published without any release notes provided by the publisher. As a result, the specific code changes, potential API impacts, and required migration steps are undocumented.
v3.1.3
v3.1.3 changes the package entrypoints to use new minified, bundled builds by default, and introduces an explicit non-minified entry via a new subpath export. The release notes are empty, so consumers should rely on the code diff to understand the real publishing and export behavior changes.
BreakingFeaturesv3.1.2
Release v3.1.2 has no release notes provided. The diff shows a tooling and packaging overhaul (build system, ESM/CommonJS output directories, package.json exports, and Node engine requirements), plus some internal import/TypeScript configuration tweaks.
v3.1.1
Release v3.1.1 has no publisher-provided release notes. The code diff shows only metadata and packaging changes: the package version is bumped, and the published file set is constrained to the dist directory.
v3.1.0
v3.1.0 introduces POSIX group-aware executable checks by adding support for an explicit `groups` option and by considering supplementary groups returned from `process.getgroups()`. The release notes field is empty, so these behavior changes are not documented in the published notes.
BreakingFeaturesv3.0.0
v3.0.0 removes the legacy single-file CommonJS implementation and replaces it with a TypeScript-based, dual ESM and CJS package layout. The API is now Promise-based with separate posix and win32 implementations that are exported, while previous callback and attached static-method usage is no longer present.
BreakingFeaturesv2.0.0
v2.0.0 removes the fs.access-based implementation on non-Windows platforms and consolidates execution checks around stat-based logic (mode.js) with additional type checks. It also updates Windows logic to reject symlinks and adds coverage for ensuring directories are treated as non-executable.
Breakingv1.1.2
Release v1.1.2 was published on 2016-02-09, but no release notes or change details were provided by the publisher. As a result, there is no documented information on new features, bug fixes, security updates, performance improvements, or breaking changes.