https://github.com/kurone-kito/is-prerelease
🆕 The simple CLI app based on Node.js that determines whether the project is a pre-release version; since 2025.12
https://github.com/kurone-kito/is-prerelease
empty yet
Last synced: 16 days ago
JSON representation
🆕 The simple CLI app based on Node.js that determines whether the project is a pre-release version; since 2025.12
- Host: GitHub
- URL: https://github.com/kurone-kito/is-prerelease
- Owner: kurone-kito
- License: mit
- Created: 2025-12-19T07:25:57.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-12-20T03:57:24.000Z (about 2 months ago)
- Last Synced: 2026-01-13T10:42:16.084Z (29 days ago)
- Topics: empty, yet
- Language: Shell
- Homepage:
- Size: 330 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.ja.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.ja.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# 🆕 `@kurone-kito/is-prerelease`
A simple CLI app based on Node.js that determines whether a given version
is a pre-release version using [semver](https://www.npmjs.com/package/semver).
## Features
- Detects pre-release versions (e.g., `1.0.0-alpha.1`, `2.0.0-beta.3`)
- Returns exit codes for easy CI/CD integration
- Zero configuration required
## Requirements
- Node.js `^20.11 || ^22 || >=24`
## Installation
```sh
npm i -D @kurone-kito/is-prerelease
```
## Usage
### Command Syntax
```sh
is-prerelease [pre]
```
### Arguments
| Argument | Required | Description |
| --------- | -------- | ------------------------------------------------------------------------------- |
| `version` | Yes | The version string to check (JSON format, e.g., `"1.0.0"` or `"1.0.0-alpha.1"`) |
| `pre` | No | If provided, the command expects a pre-release version |
### Exit Codes
| Condition | Exit Code |
| ------------------------------------------------------ | ------------- |
| Pre-release version **and** `pre` argument provided | `0` (success) |
| Stable version **and** `pre` argument **not** provided | `0` (success) |
| Otherwise | `1` (failure) |
### Examples
#### Check if a version is a pre-release
```sh
# Returns exit code 0 if pre-release
is-prerelease '"1.0.0-alpha.1"' pre
# Returns exit code 0 if stable release
is-prerelease '"1.0.0"'
```
#### Integration with npm scripts
```json
{
"scripts": {
"is:prerelease": "is-prerelease $(npm pkg get version) pre",
"is:release": "is-prerelease $(npm pkg get version)"
}
}
```
> **Note:** `npm pkg get version` outputs a JSON-formatted string
> (e.g., `"1.0.0"`), which is the expected input format.
#### CI/CD Usage Example
```sh
# Publish to npm only if it's a pre-release version
if npm run is:prerelease; then
npm publish --tag next
fi
# Publish to npm only if it's a stable release
if npm run is:release; then
npm publish --tag latest
fi
```
## How It Works
This CLI uses the `prerelease()` function from the
[semver](https://www.npmjs.com/package/semver) package to detect
pre-release identifiers in version strings.
- `1.0.0` → Stable release (no pre-release identifier)
- `1.0.0-alpha.1` → Pre-release (identifier: `['alpha', 1]`)
- `2.0.0-beta.3` → Pre-release (identifier: `['beta', 3]`)
## Contributing
Welcome to contribute to this repository! For more details,
please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md).
## License
[MIT](./LICENSE)