2025-03-29 15:51:03 -04:00

46 lines
964 B
JavaScript

'use strict';
/**
* Dependencies
*/
const fs = require('fs');
const runProcessors = require('./run-processors');
/**
* Helper to process in a single file (async)
*/
module.exports = function processAsync(file, processor, config) {
//Extract relevant config
const {encoding, dry} = config;
//Wrap in promise
return new Promise((resolve, reject) => {
fs.readFile(file, encoding, (error, contents) => {
//istanbul ignore if
if (error) {
return reject(error);
}
//Make replacements
const [result, newContents] = runProcessors(
contents, processor, file,
);
//Not changed or dry run?
if (!result.hasChanged || dry) {
return resolve(result);
}
//Write to file
fs.writeFile(file, newContents, encoding, error => {
//istanbul ignore if
if (error) {
return reject(error);
}
resolve(result);
});
});
});
};