/
lostSun
/
project-client-server-apps
Обзор
Документация
Войти
/
lostSun
/
project-client-server-apps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/bfj/src/write.js
55 строк
2 KB
1lostsun
initial commit
05 май 2025, 11:35
05 май 2025, 11:35
fe8f535
Код
Авторство
О чём код?
'use strict' const fs = require('fs') const promise = require('./promise') const streamify = require('./streamify') module.exports = write /** * Public function `write`. * * Returns a promise and asynchronously serialises a data structure to a * JSON file on disk. Sanely handles promises, buffers, maps and other * iterables. * * @param path: Path to the JSON file. * * @param data: The data to transform. * * @option space: Indentation string, or the number of spaces * to indent each nested level by. * * @option promises: 'resolve' or 'ignore', default is 'resolve'. * * @option buffers: 'toString' or 'ignore', default is 'toString'. * * @option maps: 'object' or 'ignore', default is 'object'. * * @option iterables: 'array' or 'ignore', default is 'array'. * * @option circular: 'error' or 'ignore', default is 'error'. * * @option yieldRate: The number of data items to process per timeslice, * default is 16384. * * @option bufferLength: The length of the buffer, default is 1024. * * @option highWaterMark: If set, will be passed to the readable stream constructor * as the value for the highWaterMark option. * * @option Promise: The promise constructor to use, defaults to bluebird. **/ function write (path, data, options) { const Promise = promise(options) return new Promise((resolve, reject) => { streamify(data, options) .pipe(fs.createWriteStream(path, options)) .on('finish', () => { resolve() }) .on('error', reject) .on('dataError', reject) }) }