package/package.json000644 000766 000024 0000001253 12773224622013026 0ustar00000000 000000 { "name": "write-file-promise", "version": "1.0.0", "description": "Write a file creating intermediate directories", "main": "index.js", "scripts": { "clean": "rm -rf tmp", "pretest": "npm run clean", "test": "tap test" }, "repository": { "type": "git", "url": "git+https://github.com/piuccio/write-file-promise.git" }, "keywords": [ "write", "files" ], "author": "Fabio Crisci", "license": "Apache-2.0", "bugs": { "url": "https://github.com/piuccio/write-file-promise/issues" }, "homepage": "https://github.com/piuccio/write-file-promise#readme", "devDependencies": { "eslint": "^3.6.1", "tap": "^7.1.2" } } package/.npmignore000644 000766 000024 0000000021 12773225001012517 0ustar00000000 000000 node_modules tmp package/README.md000644 000766 000024 0000000674 12773223656012033 0ustar00000000 000000 # write-file-promise Write a file creating intermediate directories ## Installation `npm install --save write-file-promise` ## Usage ```js const write = require('write-file-promise'); write('/tmp/create/file.log', data) .then(() => {}) .catch(() => {}) ``` The module creates intermediate directories `tmp` and `create` if they don't exist already. `write` has the same signature of `fs.writeFile` except the last parameter `callback`. package/index.js000644 000766 000024 0000001054 12773224576012214 0ustar00000000 000000 var path = require('path'); var fs = require('fs'); function mkdirp (filePath) { var dir = path.dirname(filePath); try { fs.readdirSync(dir); } catch (err) { mkdirp(dir); fs.mkdirSync(dir); } } module.exports = function (file, data, options) { return new Promise(function (resolve, reject) { mkdirp(file); fs.writeFile(file, data, options, function (err) { if (err) { reject(err); } else { resolve(); } }); }); } package/.editorconfig000644 000766 000024 0000000511 12773224704013212 0ustar00000000 000000 ; This file is for unifying the coding style for different editors and IDEs ; See editorconfig.org ; top-most EditorConfig file root = true [*] indent_style = space indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [package.json] indent_style = space indent_size = 2 package/.eslintrc000644 000766 000024 0000000123 12773224725012363 0ustar00000000 000000 { "extends": ["eslint:recommended"], "env": { "node": true } } package/test/index.js000644 000766 000024 0000000472 12773224542013167 0ustar00000000 000000 var fs = require('fs'); var tap = require('tap'); var write = require('..'); tap.test('write a file', function (t) { var filePath = 'tmp/nested/file'; return write(filePath, '12').then(function () { var fromDisk = fs.readFileSync(filePath); t.equal(fromDisk.toString(), '12'); }); });