Skip to content

rumkin/allow-publish-version

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Publish package with allowed versions only

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published