parse-dependency-range v0.0.4
parse-dependency-range
Parse dependency source/version
Requirements
- Node.js ≥ 8.9.0
Usage
Syntax
import parse from 'parse-dependency-range'
const struct = parse('^0.1.2') // { type: 'semver', value: '^0.1.2', ... }Overview
Function parse takes a string (which is value of each dependency in field dependencies in your package.json) and returns an object called struct (of interface Struct in TypeScript).
There're 7 subtypes of Struct corresponding to 7 syntaxes of input string. All subtypes of Struct share a common set of properties: type and value; type is a constant dictates which subtype a Struct falls into, value is input string.
Struct.Semver: When input string is a version range.type = 'semver'value: stringrange: stringis value ofsemver.validRange(value)
Struct.Tarball: When input string is an URL to a tarball archive.type = 'tarball'value: stringurl: URLis value ofurl.parse(value)url.extension: stringis tarball extension
Struct.Git: When input string is an URL to a git repo (must havegit:orgit+...:as protocol).type = 'git'value: stringurl: URLis value ofurl.parse(value)
Struct.GitHub: When input string is a GitHub shorthand (org/repoororg/repo#hash).type = 'github'value: stringorg: stringis name of organization or user that owns the repositoryrepo: stringis name of the repositoryhash?: stringis either a commit hash, git branch or git tag
Struct.Local: When input string is pointing to a local directory (begins withfile:orlink:).type = 'local'value: stringpath: stringis path to the directoryprotocol: stringis eitherfile:orlink:
Struct.Latest: When input string is litterally'latest'.type = 'latest'value = 'latest'
Struct.Unknown: When input string doesn't fit any of aformentioned syntaxes.type = 'unknown'value: string