Socket
Socket
Sign inDemoInstall

semver-lite

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

semver-lite - npm Package Compare versions

Comparing version 0.0.1 to 0.0.3

.travis.yml

61

dist/semver.js

@@ -86,7 +86,19 @@ (function webpackUniversalModuleDefinition(root, factory) {

var semver = {
version: '1.0.0',
version: '0.0.3',
SemverVersion: SemverVersion,
validate: function validate(version) {
return SemverVersion.validate(version);
},
compare: function compare(a, b, needCompareBuildVersion) {
return new SemverVersion(a).compare(new SemverVersion(b), needCompareBuildVersion);
},
format: function format(version) {
return new SemverVersion(version).format();
},
instance: function instance(version) {
return new SemverVersion(version);
},
compareMainVersion: function compareMainVersion(a, b) {
return new SemverVersion(a).compareMainVersion(new SemverVersion(b));
},
gt: function gt(a, b, needCompareBuildVersion) {

@@ -96,2 +108,6 @@ var result = this.compare(a, b, needCompareBuildVersion);

},
gte: function gte(a, b, needCompareBuildVersion) {
var result = this.compare(a, b, needCompareBuildVersion);
return result === 1 || result === 0;
},
lt: function lt(a, b, needCompareBuildVersion) {

@@ -101,2 +117,6 @@ var result = this.compare(a, b, needCompareBuildVersion);

},
lte: function lte(a, b, needCompareBuildVersion) {
var result = this.compare(a, b, needCompareBuildVersion);
return result === -1 || result === 0;
},

@@ -171,3 +191,2 @@ // 主版本转成数字类型方便比较

this.rawVersion = version;
this.major = +matches[1];

@@ -182,3 +201,3 @@ this.minor = +matches[2];

if (matches[4]) {
this.prerelease = matches[4].split('.').map(function (id) {
this.prereleaseArray = matches[4].split('.').map(function (id) {
if (/^[0-9]+$/.test(id)) {

@@ -193,7 +212,11 @@ var num = +id;

} else {
this.prerelease = [];
this.prereleaseArray = [];
}
this.buildVersion = matches[5];
this.build = matches[5] ? matches[5].split('.') : [];
//this.build = matches[5] ? matches[5].split('.') : [];
this.prerelease = matches[4];
this.build = matches[5];
this.mainVersion = [this.major, this.minor, this.patch].join('.');
this.version = this.mainVersion + (this.prerelease ? '-' + this.prerelease : '') + (this.build ? '+' + this.build : '');
}

@@ -220,7 +243,2 @@

}, {
key: 'validate',
value: function validate(version) {
return false;
}
}, {
key: 'mainVersionToNumeric',

@@ -281,7 +299,7 @@ value: function mainVersionToNumeric(digit) {

value: function comparePreReleaseVersion(otherSemver) {
if (this.prerelease.length && !otherSemver.prerelease.length) {
if (this.prereleaseArray.length && !otherSemver.prereleaseArray.length) {
return -1;
} else if (!this.prerelease.length && otherSemver.prerelease.length) {
} else if (!this.prereleaseArray.length && otherSemver.prereleaseArray.length) {
return 1;
} else if (!this.prerelease.length && !otherSemver.prerelease.length) {
} else if (!this.prereleaseArray.length && !otherSemver.prereleaseArray.length) {
return 0;

@@ -291,4 +309,4 @@ }

do {
var a = this.prerelease[i];
var b = otherSemver.prerelease[i];
var a = this.prereleaseArray[i];
var b = otherSemver.prereleaseArray[i];
if (a === undefined && b === undefined) {

@@ -310,10 +328,15 @@ return 0;

value: function compareBuildVersion(otherSemver) {
if (this.buildVersion && !otherSemver.buildVersion) {
if (this.build && !otherSemver.build) {
return 1;
} else if (!this.buildVersion && otherSemver.buildVersion) {
} else if (!this.build && otherSemver.build) {
return -1;
} else {
return this.compareIdentifiers(this.buildVersion, otherSemver.buildVersion);
return this.compareIdentifiers(this.build, otherSemver.build);
}
}
}], [{
key: 'validate',
value: function validate(version) {
return REGEX_FULL_VERSION.test(version);
}
}]);

@@ -320,0 +343,0 @@

{
"name": "semver-lite",
"version": "0.0.1",
"version": "0.0.3",
"description": "semver compare library",

@@ -10,3 +10,2 @@ "main": "src/index.js",

"cover": "nyc npm test --all",
"build-test": "rollup src/index.js --o dist/semver.js --f iife",
"build": "webpack",

@@ -13,0 +12,0 @@ "travis:coverage": "nyc npm test && nyc report --reporter=text-lcov | coveralls"

@@ -1,3 +0,4 @@

# semver-lite
# semver-lite [![Build Status](https://api.travis-ci.org/worktile/semver-lite.svg?branch=master)](https://travis-ci.org/worktile/semver-lite)
**The lightweight semantic versioner compare library**

@@ -10,3 +11,4 @@

1. only support semantic version compare;
2. support browsers.
2. support browsers;
3. don't support semantic version range compare, if you need please use `node-semver`.

@@ -28,12 +30,35 @@ ## Installation

semver.validate('2.0.1-beta+20171213'); //true
semver.validate('v2.0.1-beta+20171213'); //true
semver.validate('2.0.1.1'); //false
semver.compare('2.0.1', '1.0.10'); // 1
semver.compare('2.0.1', '2.0.1'); // 0
semver.compare('2.0.1', '3.0.10'); // -1
semver.gt('2.0.1', '1.0.10') // true
semver.gt('2.0.1', '3.0.10') // false
semver.lt('2.0.1', '1.0.10') // false
semver.lt('2.0.1', '3.0.10') // true
semver.compare('2.0.0-beta', '2.0.0'); // -1
semver.compare('2.0.0-beta', '2.0.0-1'); // 1
semver.compare('2.0.0-beta', '2.0.0-rc'); // -1
semver.compare('2.0.0-beta+20171013', '2.0.0-beta+20171014'); // 0
semver.compare('2.0.0-beta+20171013', '2.0.0-beta+20171014', true); // -1
semver.compareMainVersion('2.0.0-beta', '2.0.0-rc'); // 0
semver.compareMainVersion('2.0.1-beta', '2.0.0-rc'); // 1
semver.gt('2.0.1', '1.0.10'); // true
semver.gt('2.0.1', '3.0.10'); // false
semver.gte('2.0.1', '1.0.10'); // true
semver.gte('2.0.1', '2.0.1'); // true
semver.lt('2.0.1', '1.0.10'); // false
semver.lt('2.0.1', '3.0.10'); // true
semver.lte('2.0.1', '1.0.10'); // false
semver.lte('2.0.1', '2.0.1'); // true
semver.mainVersionToNumeric('1.10.12, 4); // 100100012 , 1 0010 0012
semver.mainVersionToNumeric('1.10.12', 6); // 1000010000012 , 1 000010 000012
semver.instance('v1.2.0-2+20171013').mainVersion; // '1.2.0'
semver.instance('v1.2.0-2+20171013').version; // '1.2.0-2+20171013'
semver.instance('v1.2.0-2+20171013').prerelease; // 2
```
As a browsers:
As a browser:

@@ -51,3 +76,11 @@ `<script src='./dist/semver.js'></script>`

```
## Notes
compare,gt,gte,lt,lte has thirdly third optional parameter `needCompareBuildVersion` what mark wheather compare build version, default is `false`.
```
semver.compare('2.0.0+20171013', '2.0.0+20171014'); // 0 default false don't compare build version `20171014`
semver.compare('2.0.0+20171013', '2.0.0+20171014', true); // -1 compare build version `20171014`
```
## Links

@@ -54,0 +87,0 @@

const SemverVersion = require('./semver');
const semver = {
version: '0.0.1',
version: '0.0.3',
SemverVersion: SemverVersion,
validate(version) {
return SemverVersion.validate(version);
},
compare(a, b, needCompareBuildVersion) {
return new SemverVersion(a).compare(new SemverVersion(b), needCompareBuildVersion);
},
format(version) {
return new SemverVersion(version).format();
},
instance(version) {
return new SemverVersion(version);
},
compareMainVersion(a, b) {
return new SemverVersion(a).compareMainVersion(new SemverVersion(b));
},
gt(a, b, needCompareBuildVersion) {

@@ -13,2 +25,6 @@ const result = this.compare(a, b, needCompareBuildVersion);

},
gte(a, b, needCompareBuildVersion) {
const result = this.compare(a, b, needCompareBuildVersion);
return result === 1 || result === 0;
},
lt(a, b, needCompareBuildVersion) {

@@ -18,2 +34,6 @@ const result = this.compare(a, b, needCompareBuildVersion);

},
lte(a, b, needCompareBuildVersion) {
const result = this.compare(a, b, needCompareBuildVersion);
return result === -1 || result === 0;
},
// 主版本转成数字类型方便比较

@@ -20,0 +40,0 @@ mainVersionToNumeric(version, digit = 4) {

@@ -45,3 +45,2 @@ const MAX_LENGTH = 256;

this.rawVersion = version;
this.major = +matches[1];

@@ -56,3 +55,3 @@ this.minor = +matches[2];

if (matches[4]) {
this.prerelease = matches[4].split('.').map(function (id) {
this.prereleaseArray = matches[4].split('.').map(function (id) {
if (/^[0-9]+$/.test(id)) {

@@ -67,8 +66,17 @@ var num = +id;

} else {
this.prerelease = [];
this.prereleaseArray = [];
}
this.buildVersion = matches[5];
this.build = matches[5] ? matches[5].split('.') : [];
//this.build = matches[5] ? matches[5].split('.') : [];
this.prerelease = matches[4];
this.build = matches[5];
this.mainVersion = [
this.major,
this.minor,
this.patch
].join('.');
this.version = this.mainVersion
+ (this.prerelease ? `-${this.prerelease}` : '')
+ (this.build ? `+${this.build}` : '');
}

@@ -93,4 +101,4 @@

validate(version) {
return false;
static validate(version) {
return REGEX_FULL_VERSION.test(version);
}

@@ -150,7 +158,7 @@

comparePreReleaseVersion(otherSemver) {
if (this.prerelease.length && !otherSemver.prerelease.length) {
if (this.prereleaseArray.length && !otherSemver.prereleaseArray.length) {
return -1;
} else if (!this.prerelease.length && otherSemver.prerelease.length) {
} else if (!this.prereleaseArray.length && otherSemver.prereleaseArray.length) {
return 1;
} else if (!this.prerelease.length && !otherSemver.prerelease.length) {
} else if (!this.prereleaseArray.length && !otherSemver.prereleaseArray.length) {
return 0;

@@ -160,4 +168,4 @@ }

do {
const a = this.prerelease[i];
const b = otherSemver.prerelease[i];
const a = this.prereleaseArray[i];
const b = otherSemver.prereleaseArray[i];
if (a === undefined && b === undefined) {

@@ -179,8 +187,8 @@ return 0;

compareBuildVersion(otherSemver) {
if (this.buildVersion && !otherSemver.buildVersion) {
if (this.build && !otherSemver.build) {
return 1;
} else if (!this.buildVersion && otherSemver.buildVersion) {
} else if (!this.build && otherSemver.build) {
return -1;
} else {
return this.compareIdentifiers(this.buildVersion, otherSemver.buildVersion);
return this.compareIdentifiers(this.build, otherSemver.build);
}

@@ -187,0 +195,0 @@ }

const test = require('ava');
const semver = require('../src/index');
// const old = require('../src/old');

@@ -45,4 +44,4 @@ test('compare 2.0.0 > 1.0.0 return 1', async t => {

test('2.0.0 gt 1.0.0 return true', async t => {
// gt
test('2.0.0 gt 1.0.0 return true', async t => {
t.is(semver.gt('2.0.0', '1.0.0'), true);

@@ -59,3 +58,16 @@ });

// gte
test('2.0.0 gte 1.0.0 return true', async t => {
t.is(semver.gte('2.0.0', '1.0.0'), true);
});
test('2.0.0 gte 2.0.0 return true', async t => {
t.is(semver.gte('2.0.0', '2.0.0'), true);
});
test('2.0.0 gte 3.0.0 return false', async t => {
t.is(semver.gte('2.0.0', '3.0.0'), false);
});
// lt
test('1.0.0 lt 2.0.0 return true', async t => {

@@ -69,4 +81,54 @@ t.is(semver.lt('1.0.0', '2.0.0'), true);

test('3.0.0 lt 2.0.0 return true', async t => {
test('3.0.0 lt 2.0.0 return false', async t => {
t.is(semver.lt('3.0.0', '2.0.0'), false);
});
// lte
test('1.0.0 lte 2.0.0 return true', async t => {
t.is(semver.lte('1.0.0', '2.0.0'), true);
});
test('2.0.0 lte 2.0.0 return true', async t => {
t.is(semver.lte('2.0.0', '2.0.0'), true);
});
test('3.0.0 lt 2.0.0 return false', async t => {
t.is(semver.lte('3.0.0', '2.0.0'), false);
});
// mainVersionToNumeric
test('version 1.10.12-beta+20130222 main version to numeric is 100100012', async t => {
t.is(semver.mainVersionToNumeric('1.10.12'), 100100012);
});
test('version 1.10.12-beta+20130222 main version to numeric is 100100012', async t => {
t.is(semver.mainVersionToNumeric('1.10.12', 6), 1000010000012);
});
test('version 1.10111.12 main version to numeric is 1101110012', async t => {
t.is(semver.mainVersionToNumeric('1.10111.12'), 1101110012);
});
test('compare main version 1.0.0-rc and 1.0.0-beta return 0', async t => {
t.is(semver.compareMainVersion('1.0.0-rc', '1.0.0-beta'), 0);
});
test('compare main version 1.2.0-2+123 and 1.0.10-beta return 1', async t => {
t.is(semver.compareMainVersion('1.2.0-2+123', '1.0.10-beta'), 1);
});
test('get version 1.2.0-2+20171013 is 1.2.0-2+20171013', async t => {
t.is(semver.instance('1.2.0-2+20171013').version, '1.2.0-2+20171013');
});
test('get version v1.2.0-2+20171013 is 1.2.0-2+20171013', async t => {
t.is(semver.instance('v1.2.0-2+20171013').version, '1.2.0-2+20171013');
});
test('get main version 1.2.0-2+20171013 is 1.2.0-2', async t => {
t.is(semver.instance('1.2.0-2+20171013').mainVersion, '1.2.0');
});
test('get main version v1.2.0-2+20171013 is 1.2.0', async t => {
t.is(semver.instance('v1.2.0-2+20171013').mainVersion, '1.2.0');
});

@@ -12,2 +12,24 @@ const test = require('ava');

t.is(semverVersion.mainVersionToNumeric(4), 1101110012);
});
test('version 1.10111.12 is validated', async t => {
t.is(SemverVersion.validate('1.10111.12'), true);
});
// validate
test('validate version v1.10111.12 return true', async t => {
t.is(SemverVersion.validate('v1.10111.12'), true);
});
test('validate version 1.10111.12-beta+20171013 return true', async t => {
t.is(SemverVersion.validate('1.10111.12-beta+20171013'), true);
});
test('validate version 1.10111a.12-beta+20171013 return false', async t => {
t.is(SemverVersion.validate('1.10111a.12-beta+20171013'), false);
});
test('validate version 1.0.0.1 return false', async t => {
t.is(SemverVersion.validate('1.10111a.12-beta+20171013'), false);
});

@@ -7,17 +7,9 @@ const path = require('path');

output: {
// webpack 如何输出结果的相关选项
path: path.resolve(__dirname, "dist"), // string
// 所有输出文件的目标路径
// 必须是绝对路径(使用 Node.js 的 path 模块)
filename: "semver.js", // string
library: "semverLite", // string,
libraryTarget: "umd", // 通用模块定义
path: path.resolve(__dirname, "dist"),
filename: "semver.js",
library: "semverLite",
libraryTarget: "umd"
},
module: {
// 关于模块配置
rules: [

@@ -38,5 +30,2 @@ {

resolve: {
// 解析模块请求的选项
// (不适用于对 loader 解析)
modules: [

@@ -46,16 +35,6 @@ "node_modules",

],
// 用于查找模块的目录
extensions: [".js", ".json"],
},
context: __dirname, // string(绝对路径!)
// webpack 的主目录
// entry 和 module.rules.loader 选项
// 相对于此目录解析
target: "web", // 枚举
// 包(bundle)应该运行的环境
// 更改 块加载行为(chunk loading behavior) 和 可用模块(available module)
context: __dirname,
target: "web"
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc