From 426bb46067a57deacb93259d5af8b20d8ab528c0 Mon Sep 17 00:00:00 2001 From: Sukka Date: Wed, 25 Oct 2023 06:31:58 +0800 Subject: [PATCH] Refactor `outputFile` API to async/await (#1024) --- lib/output-file/index.js | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/lib/output-file/index.js b/lib/output-file/index.js index 92297ca3a..a42d94368 100644 --- a/lib/output-file/index.js +++ b/lib/output-file/index.js @@ -1,36 +1,27 @@ 'use strict' -const u = require('universalify').fromCallback -const fs = require('graceful-fs') +const u = require('universalify').fromPromise +const fs = require('../fs') const path = require('path') const mkdir = require('../mkdirs') const pathExists = require('../path-exists').pathExists -function outputFile (file, data, encoding, callback) { - if (typeof encoding === 'function') { - callback = encoding - encoding = 'utf8' - } - +async function outputFile (file, data, encoding = 'utf-8') { const dir = path.dirname(file) - pathExists(dir, (err, itDoes) => { - if (err) return callback(err) - if (itDoes) return fs.writeFile(file, data, encoding, callback) - mkdir.mkdirs(dir, err => { - if (err) return callback(err) + if (!(await pathExists(dir))) { + await mkdir.mkdirs(dir) + } - fs.writeFile(file, data, encoding, callback) - }) - }) + return fs.writeFile(file, data, encoding) } function outputFileSync (file, ...args) { const dir = path.dirname(file) - if (fs.existsSync(dir)) { - return fs.writeFileSync(file, ...args) + if (!fs.existsSync(dir)) { + mkdir.mkdirsSync(dir) } - mkdir.mkdirsSync(dir) + fs.writeFileSync(file, ...args) }