17 lines
522 B
JavaScript
17 lines
522 B
JavaScript
|
// write the json back, preserving the line breaks and indent
|
||
|
const {promisify} = require('util')
|
||
|
const writeFile = promisify(require('fs').writeFile)
|
||
|
const kIndent = Symbol.for('indent')
|
||
|
const kNewline = Symbol.for('newline')
|
||
|
|
||
|
module.exports = async (path, pkg) => {
|
||
|
const {
|
||
|
[kIndent]: indent = 2,
|
||
|
[kNewline]: newline = '\n',
|
||
|
} = pkg
|
||
|
delete pkg._id
|
||
|
const raw = JSON.stringify(pkg, null, indent) + '\n'
|
||
|
const data = newline === '\n' ? raw : raw.split('\n').join(newline)
|
||
|
return writeFile(path, data)
|
||
|
}
|