From 7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 28 May 2017 00:38:50 +0200 Subject: add linting (and some initial fixes) --- node_modules/write-pkg/index.js | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 node_modules/write-pkg/index.js (limited to 'node_modules/write-pkg/index.js') diff --git a/node_modules/write-pkg/index.js b/node_modules/write-pkg/index.js new file mode 100644 index 000000000..262fa925a --- /dev/null +++ b/node_modules/write-pkg/index.js @@ -0,0 +1,49 @@ +'use strict'; +const path = require('path'); +const writeJsonFile = require('write-json-file'); +const sortKeys = require('sort-keys'); + +const opts = {indent: 2}; + +const dependencyKeys = new Set([ + 'dependencies', + 'devDependencies', + 'optionalDependencies', + 'peerDependencies' +]); + +function normalize(pkg) { + const ret = {}; + + for (const key of Object.keys(pkg)) { + ret[key] = dependencyKeys.has(key) ? sortKeys(pkg[key]) : pkg[key]; + } + + return ret; +} + +module.exports = (fp, data) => { + if (typeof fp !== 'string') { + data = fp; + fp = '.'; + } + + fp = path.basename(fp) === 'package.json' ? fp : path.join(fp, 'package.json'); + + data = normalize(data); + + return writeJsonFile(fp, data, opts); +}; + +module.exports.sync = (fp, data) => { + if (typeof fp !== 'string') { + data = fp; + fp = '.'; + } + + fp = path.basename(fp) === 'package.json' ? fp : path.join(fp, 'package.json'); + + data = normalize(data); + + writeJsonFile.sync(fp, data, opts); +}; -- cgit v1.2.3