| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /*!
- * output-file-sync | MIT (c) Shinnosuke Watanabe
- * https://github.com/shinnn/output-file-sync
- */
- 'use strict';
- var dirname = require('path').dirname;
- var writeFileSync = require('graceful-fs').writeFileSync;
- var inspect = require('util').inspect;
- var objectAssign = require('object-assign');
- var mkdirpSync = require('mkdirp').sync;
- module.exports = function outputFileSync(filePath, data, options) {
- if (typeof filePath !== 'string') {
- throw new TypeError(
- inspect(filePath) +
- ' is not a string. Expected a file path to write a file.'
- );
- }
- if (filePath === '') {
- throw new Error('Expected a file path to write a file, but received an empty string instead.');
- }
- options = options || {};
- var mkdirpOptions;
- if (typeof options === 'string') {
- mkdirpOptions = null;
- } else if (options.dirMode) {
- mkdirpOptions = objectAssign({}, options, {mode: options.dirMode});
- } else {
- mkdirpOptions = options;
- }
- var writeFileOptions;
- if (options.fileMode) {
- writeFileOptions = objectAssign({}, options, {mode: options.fileMode});
- } else {
- writeFileOptions = options;
- }
- var createdDirPath = mkdirpSync(dirname(filePath), mkdirpOptions);
- writeFileSync(filePath, data, writeFileOptions);
- return createdDirPath;
- };
|