123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 'use strict';
- /**
- * Dependencies
- */
- const fs = require('fs');
- const makeReplacements = require('./make-replacements');
- /**
- * Helper to replace in a single file (async)
- */
- module.exports = function replaceAsync(file, from, to, config) {
- //Extract relevant config
- const {encoding, dry, countMatches} = 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] = makeReplacements(
- contents, from, to, file, countMatches
- );
- //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);
- });
- });
- });
- };
|