aboutsummaryrefslogtreecommitdiff
path: root/node_modules/write-pkg/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-28 00:38:50 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-28 00:40:43 +0200
commit7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 (patch)
tree6de9a1aebd150a23b7f8c273ec657a5d0a18fe3e /node_modules/write-pkg/index.js
parent963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff)
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/write-pkg/index.js')
-rw-r--r--node_modules/write-pkg/index.js49
1 files changed, 49 insertions, 0 deletions
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);
+};