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: string
range: string
is value ofsemver.validRange(value)
Struct.Tarball
: When input string is an URL to a tarball archive.type = 'tarball'
value: string
url: URL
is value ofurl.parse(value)
url.extension: string
is tarball extension
Struct.Git
: When input string is an URL to a git repo (must havegit:
orgit+...:
as protocol).type = 'git'
value: string
url: URL
is value ofurl.parse(value)
Struct.GitHub
: When input string is a GitHub shorthand (org/repo
ororg/repo#hash
).type = 'github'
value: string
org: string
is name of organization or user that owns the repositoryrepo: string
is name of the repositoryhash?: string
is 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: string
path: string
is path to the directoryprotocol: string
is 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