Skip to content

Instantly share code, notes, and snippets.

@soundstep
Created August 11, 2022 10:08
Show Gist options
  • Save soundstep/d89cdf00c1b10345c953e77dfbbd3d13 to your computer and use it in GitHub Desktop.
Save soundstep/d89cdf00c1b10345c953e77dfbbd3d13 to your computer and use it in GitHub Desktop.
Deno semver
semver.inc("1.0.0", "patch") >>> 1.0.1
semver.inc("1.0.0", "minor") >>> 1.1.0
semver.inc("1.0.0", "major") >>> 2.0.0
--- prepatch ---
semver.inc("1.0.0", "prepatch") >>> 1.0.1-0
semver.inc("1.0.0-itvx", "prepatch", "itvx") > 1.0.1-itvx.0
semver.inc("1.0.0-itvx.0", "prepatch", "itvx") > 1.0.1-itvx.0
--- preminor ---
semver.inc("1.0.0", "preminor") >>> 1.1.0-0
semver.inc("1.0.0-itvx", "preminor", "itvx") > 1.1.0-itvx.0
semver.inc("1.0.0-itvx.0", "preminor", "itvx") > 1.1.0-itvx.0
--- premajor ---
semver.inc("1.0.0", "premajor") >>> 2.0.0-0
semver.inc("1.0.0-itvx", "premajor", "itvx") > 2.0.0-itvx.0
semver.inc("1.0.0-itvx.0", "premajor", "itvx") > 2.0.0-itvx.0
--- pre ---
semver.inc("1.0.0", "pre") >>> 1.0.0-0
semver.inc("1.0.0-itvx", "pre", "itvx") >>> 1.0.0-itvx.0
semver.inc("1.0.0-itvx.0", "pre", "itvx") >>> 1.0.0-itvx.1
--- prerelease ---
semver.inc("1.0.0", "prerelease") >>> 1.0.1-0
semver.inc("1.0.0-itvx", "prerelease", "itvx") >>> 1.0.0-itvx.0
semver.inc("1.0.0-itvx.0", "prerelease", "itvx") >>> 1.0.0-itvx.1
--- build ---
semver.inc("1.0.0-itvx.0+123", "prerelease") >>> 1.0.0-itvx.1
--- parse ---
semver.parse("1.0.0-itvx.0") >>> SemVer {
raw: "1.0.0-itvx.0",
options: { includePrerelease: false },
major: 1,
minor: 0,
patch: 0,
version: "1.0.0-itvx.0",
build: [],
prerelease: [ "itvx", 0 ]
}
--- range ---
semver.intersects("1.2.0", "^1.0.0") >>> true
semver.intersects("2.0.0", "^1.0.0") >>> false
semver.intersects("1.0.0", ">=1.0.0 <2.0.0") >>> true
semver.intersects("2.0.0", ">=1.0.0 <2.0.0") >>> false
new semver.Range(">=1.0.0") >>> Range {
range: ">=1.0.0",
raw: ">=1.0.0",
options: { includePrerelease: false },
includePrerelease: false,
set: [
[
Comparator { semver: [Object], operator: ">=", value: ">=1.0.0", options: [Object] }
]
]
}
new semver.Range(">=1.0.0 <2.0.0") >>> Range {
range: ">=1.0.0 <2.0.0",
raw: ">=1.0.0 <2.0.0",
options: { includePrerelease: false },
includePrerelease: false,
set: [
[
Comparator { semver: [Object], operator: ">=", value: ">=1.0.0", options: [Object] },
Comparator { semver: [Object], operator: "<", value: "<2.0.0", options: [Object] }
]
]
}
new semver.Range("*&^&%$") >>> Invalid comparator: &^&%$
- version: 1.0.0
- operator: >=
- version: 2.0.0
- operator: <
import * as semver from "https://deno.land/std@0.151.0/semver/mod.ts";
console.log('semver.inc("1.0.0", "patch") >>>', semver.inc("1.0.0", "patch"));
console.log('semver.inc("1.0.0", "minor") >>>', semver.inc("1.0.0", "minor"));
console.log('semver.inc("1.0.0", "major") >>>', semver.inc("1.0.0", "major"));
// prepatch
console.log("--- prepatch ---");
console.log(
'semver.inc("1.0.0", "prepatch") >>>',
semver.inc("1.0.0", "prepatch")
);
console.log(
'semver.inc("1.0.0-itvx", "prepatch", "itvx") >',
semver.inc("1.0.0-itvx", "prepatch", "itvx")
);
console.log(
'semver.inc("1.0.0-itvx.0", "prepatch", "itvx") >',
semver.inc("1.0.0-itvx.0", "prepatch", "itvx")
);
// preminor
console.log("--- preminor ---");
console.log(
'semver.inc("1.0.0", "preminor") >>>',
semver.inc("1.0.0", "preminor")
);
console.log(
'semver.inc("1.0.0-itvx", "preminor", "itvx") >',
semver.inc("1.0.0-itvx", "preminor", "itvx")
);
console.log(
'semver.inc("1.0.0-itvx.0", "preminor", "itvx") >',
semver.inc("1.0.0-itvx.0", "preminor", "itvx")
);
// premajor
console.log("--- premajor ---");
console.log(
'semver.inc("1.0.0", "premajor") >>>',
semver.inc("1.0.0", "premajor")
);
console.log(
'semver.inc("1.0.0-itvx", "premajor", "itvx") >',
semver.inc("1.0.0-itvx", "premajor", "itvx")
);
console.log(
'semver.inc("1.0.0-itvx.0", "premajor", "itvx") >',
semver.inc("1.0.0-itvx.0", "premajor", "itvx")
);
// pre
console.log("--- pre ---");
console.log('semver.inc("1.0.0", "pre") >>>', semver.inc("1.0.0", "pre"));
console.log(
'semver.inc("1.0.0-itvx", "pre", "itvx") >>>',
semver.inc("1.0.0-itvx", "pre", "itvx")
);
console.log(
'semver.inc("1.0.0-itvx.0", "pre", "itvx") >>>',
semver.inc("1.0.0-itvx.0", "pre", "itvx")
);
// prerelease
console.log("--- prerelease ---");
console.log(
'semver.inc("1.0.0", "prerelease") >>>',
semver.inc("1.0.0", "prerelease")
);
console.log(
'semver.inc("1.0.0-itvx", "prerelease", "itvx") >>>',
semver.inc("1.0.0-itvx", "prerelease", "itvx")
);
console.log(
'semver.inc("1.0.0-itvx.0", "prerelease", "itvx") >>>',
semver.inc("1.0.0-itvx.0", "prerelease", "itvx")
);
// build
console.log("--- build ---");
console.log(
'semver.inc("1.0.0-itvx.0+123", "prerelease") >>>',
semver.inc("1.0.0-itvx.0+123", "prerelease")
);
// parse
console.log("--- parse ---");
console.log('semver.parse("1.0.0-itvx.0") >>>', semver.parse("1.0.0-itvx.0"));
// range
console.log("--- range ---");
console.log(
'semver.intersects("1.2.0", "^1.0.0") >>>',
semver.intersects("1.2.0", "^1.0.0")
);
console.log(
'semver.intersects("2.0.0", "^1.0.0") >>>',
semver.intersects("2.0.0", "^1.0.0")
);
console.log(
'semver.intersects("1.0.0", ">=1.0.0 <2.0.0") >>>',
semver.intersects("1.0.0", ">=1.0.0 <2.0.0")
);
console.log(
'semver.intersects("2.0.0", ">=1.0.0 <2.0.0") >>>',
semver.intersects("2.0.0", ">=1.0.0 <2.0.0")
);
console.log('new semver.Range(">=1.0.0") >>>', new semver.Range(">=1.0.0"));
console.log(
'new semver.Range(">=1.0.0 <2.0.0") >>>',
new semver.Range(">=1.0.0 <2.0.0")
);
try {
console.log(new semver.Range("*&^&%$"));
} catch (err) {
console.log('new semver.Range("*&^&%$") >>>', err.message);
}
for (const r of new semver.Range(">=1.0.0 <2.0.0").set) {
for (const c of r) {
console.log("- version:", c.semver.raw);
console.log("- operator:", c.operator);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment