UNPKG

tape-catch

Version:

a wrapper around tape that catches and reports exceptions

35 lines (28 loc) 868 B
#!/usr/bin/env node var fs = require('fs') var path = require('path') var patch = require('fast-json-patch') var unique = require('array-unique') var exec = require('child_process').exec var pkgpath = path.resolve(__dirname, '../package.json') var pkg = require(pkgpath) var tpkg = require(path.resolve(__dirname, '../node_modules/tape/package.json')) var dev = pkg.devDependencies var diff = unique(patch .compare(dev, tpkg.dependencies) .concat(patch.compare(dev, tpkg.devDependencies)) .filter(function (op) { return op.op !== 'remove' }) ) if (!diff.length) process.exit(0) patch.apply(dev, diff) try { var npkg = JSON.stringify(pkg, null, 2) fs.writeFileSync(pkgpath, npkg, 'utf8') exec('npm install', function (err) { if (err) process.stderr.write(err.message + '\n') }) } catch (err) { process.stderr.write(err.message + '\n') }