1.0.0-rc.1 • Published 3 years ago

allow-publish-version v1.0.0-rc.1

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

Allow Publish Version

Allow Publish Version util protects your NPM package from being accidentally published with invalid version. Use it with prepublishOnly script of package.json.

It will check your package version to be valid NPM subset of semver with exact prerelease record. Valid versions might look like 1.0.0 or 1.0.0-beta.1.

Installation

npm i allow-publish-version

Usage

  1. Add prepublishOnly script in package.json.
  2. Run npm publish when you're ready to publish your package, or npm publish --dry-run to test.

Example package.json:

{
  "version" : "1.0.0-alpha.1",
  "scripts": {
    "prepublishOnly": "allow-publish-version"
  },
}

By default there will be alpha, beta and rc prereleases allowed.

Examples

Valid versions:

1.0.0
1.0.0-pre.1
1.0.0-pre.beta.1

Invalid versions:

1.0 # Not a valid semver.
1.0.0-beta # No prerelease version.
1.0.0-pre.0 # Prerelease index should start from 1.
1.0.0-pre.1.0 # Prerelease name couldn't contain numbers.
1.0.0-beta.0+x64 # Builds are not supported by NPM.

Configuration

APV could be configured to use another prerelease scheme with package.json.

{
  "version" : "1.0.0-nightly.1",
  "scripts": {
    "prepublishOnly": "allow-publish-version"
  },
  "allowPublishVersion": {
    "prereleases": ["nightly", "beta"]
  }
}

API

AllowPublishVersionRecord

AllowPublishVersionFlag | AllowPublishVersionList | AllowPublishVersionDict

Configuration value AllowPublishVersionRecord describes the value of allowPublishVersion field of package.json.

AllowPublishVersionFlag

true

Boolean value true turns default APV configuration on.

Example:

{
  "allowPublishVersion": true
}

AllowPublishVersionList

Array<string>

Array should contain allowed prerelease names or picomatch-compatible glob patterns.

Example:

{
  "allowPublishVersion": ["beta", "pre.*"]
}

AllowPublishVersionDict

{
  prereleases: Array<string>
}

Dictionary holds single field prereleases. This field contains allowed prerelease names or picomatch-compatible glob patterns.

Example:

{
  "allowPublishVersion": {
    "prereleases": ["beta", "pre.*"]
  }
}

License

MIT.