write-json-file
Advanced tools
Comparing version 1.2.0 to 2.0.0
36
index.js
'use strict'; | ||
var path = require('path'); | ||
var fs = require('graceful-fs'); | ||
var writeFileAtomic = require('write-file-atomic'); | ||
var sortKeys = require('sort-keys'); | ||
var objectAssign = require('object-assign'); | ||
var mkdirp = require('mkdirp'); | ||
var Promise = require('pinkie-promise'); | ||
var pify = require('pify'); | ||
const path = require('path'); | ||
const fs = require('graceful-fs'); | ||
const writeFileAtomic = require('write-file-atomic'); | ||
const sortKeys = require('sort-keys'); | ||
const mkdirp = require('mkdirp'); | ||
const pify = require('pify'); | ||
function main(fn, fp, data, opts) { | ||
const main = (fn, fp, data, opts) => { | ||
if (!fp) { | ||
@@ -20,3 +18,3 @@ throw new TypeError('Expected a filepath'); | ||
opts = objectAssign({ | ||
opts = Object.assign({ | ||
indent: '\t', | ||
@@ -33,16 +31,14 @@ sortKeys: false | ||
var json = JSON.stringify(data, opts.replacer, opts.indent) + '\n'; | ||
const json = JSON.stringify(data, opts.replacer, opts.indent); | ||
return fn(fp, json, {mode: opts.mode}); | ||
} | ||
module.exports = function (fp, data, opts) { | ||
return pify(mkdirp, Promise)(path.dirname(fp), {fs: fs}).then(function () { | ||
return main(pify(writeFileAtomic, Promise), fp, data, opts); | ||
}); | ||
return fn(fp, `${json}\n`, {mode: opts.mode}); | ||
}; | ||
module.exports.sync = function (fp, data, opts) { | ||
mkdirp.sync(path.dirname(fp), {fs: fs}); | ||
module.exports = (fp, data, opts) => | ||
pify(mkdirp)(path.dirname(fp), {fs}) | ||
.then(() => main(pify(writeFileAtomic), fp, data, opts)); | ||
module.exports.sync = (fp, data, opts) => { | ||
mkdirp.sync(path.dirname(fp), {fs}); | ||
main(writeFileAtomic.sync, fp, data, opts); | ||
}; |
{ | ||
"name": "write-json-file", | ||
"version": "1.2.0", | ||
"version": "2.0.0", | ||
"description": "Stringify and write JSON to a file atomically", | ||
@@ -13,3 +13,3 @@ "license": "MIT", | ||
"engines": { | ||
"node": ">=0.10.0" | ||
"node": ">=4" | ||
}, | ||
@@ -23,4 +23,4 @@ "scripts": { | ||
"keywords": [ | ||
"write", | ||
"json", | ||
"write", | ||
"stringify", | ||
@@ -40,5 +40,3 @@ "file", | ||
"mkdirp": "^0.5.1", | ||
"object-assign": "^4.0.1", | ||
"pify": "^2.0.0", | ||
"pinkie-promise": "^2.0.0", | ||
"sort-keys": "^1.1.1", | ||
@@ -53,6 +51,4 @@ "write-file-atomic": "^1.1.2" | ||
"xo": { | ||
"ignores": [ | ||
"test.js" | ||
] | ||
"esnext": true | ||
} | ||
} |
5
4558
34
- Removedobject-assign@^4.0.1
- Removedpinkie-promise@^2.0.0
- Removedobject-assign@4.1.1(transitive)
- Removedpinkie@2.0.4(transitive)
- Removedpinkie-promise@2.0.1(transitive)