npe
Advanced tools
Comparing version 1.1.4 to 1.2.0
21
index.js
@@ -9,3 +9,7 @@ #!/usr/bin/env node | ||
var stringToArray = require('./lib/string-to-array') | ||
var args = require('minimist')(process.argv.slice(2)) | ||
var args = require('minimist')(process.argv.slice(2), | ||
{ | ||
string: ['package'], | ||
boolean: ['delete'] | ||
}) | ||
var endOfLine = require('os').EOL | ||
@@ -20,2 +24,5 @@ | ||
var pkg = require(args.package) | ||
var write = function (file, data) { | ||
fs.writeFileSync(file, JSON.stringify(data, null, 2) + endOfLine) | ||
} | ||
@@ -33,2 +40,11 @@ // Usage | ||
// Delete | ||
if (args.delete) { | ||
for (var idx in args._) { | ||
steelToe(pkg).set(args._[idx], undefined) | ||
} | ||
write(args.package, pkg) | ||
process.exit() | ||
} | ||
// Get | ||
@@ -61,3 +77,2 @@ if (args._.length === 1) { | ||
}) | ||
fs.writeFileSync(args.package, JSON.stringify(pkg, null, 2) + endOfLine) | ||
write(args.package, pkg) |
{ | ||
"name": "npe", | ||
"version": "1.1.4", | ||
"version": "1.2.0", | ||
"description": "Node Package Editor: a CLI for one-off inspection and editing of properties in package.json files.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -235,2 +235,82 @@ 'use strict' | ||
}) | ||
describe('with --delete flag', function () { | ||
var pkg | ||
var tmpFile | ||
beforeEach(function (done) { | ||
tmpFile = util.format('/tmp/package-%s.json', Math.random() * 10000) | ||
nixt() | ||
.run('cp ' + fixturePath + ' ' + tmpFile) | ||
.end(done) | ||
}) | ||
it("check that entry 'main' exists", function (done) { | ||
nixt() | ||
.run('./index.js main --package=' + tmpFile) | ||
.stdout(/index\.js/) | ||
.end(done) | ||
}) | ||
it("it deletes entry 'main'", function (done) { | ||
nixt() | ||
.expect(function (result) { | ||
pkg = require(tmpFile) | ||
if (!pkg || pkg.main) { | ||
return new Error('main should be deleted') | ||
} | ||
}) | ||
.run('./index.js --delete main --package=' + tmpFile) | ||
.end(done) | ||
}) | ||
it('it deletes multiple keys', function (done) { | ||
nixt() | ||
.expect(function (result) { | ||
pkg = require(tmpFile) | ||
if (!pkg || pkg.main || pkg.scripts) { | ||
return new Error('main and scripts should be deleted') | ||
} | ||
}) | ||
.run('./index.js --delete main --package=' + tmpFile + ' ' + 'scripts') | ||
.end(done) | ||
}) | ||
it("check that entry 'repository.url' exists", function (done) { | ||
nixt() | ||
.run('./index.js repository.url --package=' + tmpFile) | ||
.stdout(/^https:\/\/github\.com\/example\/normal$/) | ||
.end(done) | ||
}) | ||
it('it deletes nested keys', function (done) { | ||
nixt() | ||
.expect(function (result) { | ||
pkg = require(tmpFile) | ||
if (!pkg || !pkg.repository || pkg.repository.url) { | ||
return new Error('repository.url should be deleted') | ||
} | ||
}) | ||
.run('./index.js --delete "repository.url" --package=' + tmpFile) | ||
.end(done) | ||
}) | ||
it('delete all nested keys leaves empty object', function (done) { | ||
nixt() | ||
.expect(function (result) { | ||
pkg = require(tmpFile) | ||
if (!pkg || !pkg.repository || pkg.repository.url || pkg.repository.type) { | ||
return new Error('repository.url should be deleted') | ||
} | ||
if (typeof pkg.repository !== 'object') { | ||
return new Error('repository is not of type object') | ||
} | ||
if (Object.keys(pkg.repository).length > 0) { | ||
return new Error('expect repository to be empty') | ||
} | ||
}) | ||
.run('./index.js --delete repository.url repository.type --package=' + tmpFile) | ||
.end(done) | ||
}) | ||
}) | ||
}) |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
14480
343
0
15