Skip to content

Commit 6303bf4

Browse files
committed
Remove lodash dependency
1 parent f51fec4 commit 6303bf4

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "github-release-cli",
3-
"version": "0.1.1",
3+
"version": "0.2.0",
44
"description": "A command-line tool for uploading release assets to a GitHub repository",
55
"homepage": "https://github.com/cheton/github-release-cli",
66
"author": "Cheton Wu <cheton@gmail.com>",
@@ -29,8 +29,7 @@
2929
],
3030
"dependencies": {
3131
"commander": "^2.9.0",
32-
"github": "^8.1.1",
33-
"lodash": "^4.17.4"
32+
"github": "^8.1.1"
3433
},
3534
"devDependencies": {
3635
"babel-cli": "^6.22.2",

src/index.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* eslint no-console: 0 */
22
/* eslint max-len: 0 */
33
import path from 'path';
4-
import _ from 'lodash';
54
import GitHubApi from 'github';
65
import program from 'commander';
76
import pkg from '../package.json';
@@ -122,15 +121,15 @@ const main = async () => {
122121
});
123122
console.log('assets=%d', assets.length);
124123

125-
assets = _.filter(assets, (asset) => {
124+
assets = assets.filter(asset => {
126125
// Example:
127126
// 'cnc-1.1.0-latest-08c256a-linux-x64.tar.gz'
128127
// ["cnc-1.1.0-latest-08c256a-linux-x64.tar.gz", "cnc", "1.1.0-latest-08c256a", "linux", "x64", "tar.gz"]
129128
const pattern = new RegExp(/([a-zA-Z0-9][a-zA-Z0-9\-]*)\-(\d+\.\d+\.\d+(?:\-[a-zA-Z0-9][a-zA-Z0-9\-]*)?)(?:\-(mac|win|linux|tinyweb))(?:(?:\-([a-zA-Z0-9_\-]+))?\.(.*))/);
130129

131-
return _.some(files, (file) => {
132-
const r1 = asset.name.match(pattern);
133-
const r2 = path.basename(file).match(pattern);
130+
return files.some(file => {
131+
let r1 = asset.name.match(pattern);
132+
let r2 = path.basename(file).match(pattern);
134133

135134
if ((r1 === null) || (r2 === null)) {
136135
console.error('Unable to match file: asset="%s", file="%s"', asset.name, path.basename(file));
@@ -148,7 +147,12 @@ const main = async () => {
148147
r1[0] = r1[2] = undefined;
149148
r2[0] = r2[2] = undefined;
150149

151-
return _.isEqual(_.compact(r1), _.compact(r2));
150+
// compact
151+
r1 = r1.filter(r => r !== undefined && r !== null);
152+
r2 = r2.filter(r => r !== undefined && r !== null);
153+
154+
// compare two arrays
155+
return (r1.length === r2.length) && r1.every((v, i) => v === r2[i]);
152156
});
153157
});
154158

0 commit comments

Comments
 (0)