feat: init
This commit is contained in:
104
node_modules/replace-in-file/lib/replace-in-file.js
generated
vendored
Normal file
104
node_modules/replace-in-file/lib/replace-in-file.js
generated
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Dependencies
|
||||
*/
|
||||
const chalk = require('chalk');
|
||||
const parseConfig = require('./helpers/parse-config');
|
||||
const getPathsSync = require('./helpers/get-paths-sync');
|
||||
const getPathsAsync = require('./helpers/get-paths-async');
|
||||
const replaceSync = require('./helpers/replace-sync');
|
||||
const replaceAsync = require('./helpers/replace-async');
|
||||
const processFile = require('./process-file');
|
||||
|
||||
/**
|
||||
* Replace in file helper
|
||||
*/
|
||||
function replaceInFile(config, cb) {
|
||||
|
||||
// If custom processor is provided use it instead
|
||||
if (config && config.processor) {
|
||||
return processFile(config, cb);
|
||||
}
|
||||
|
||||
//Parse config
|
||||
try {
|
||||
config = parseConfig(config);
|
||||
}
|
||||
catch (error) {
|
||||
if (typeof cb === 'function') {
|
||||
return cb(error, null);
|
||||
}
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
//Get config
|
||||
const {files, from, to, dry, verbose} = config;
|
||||
|
||||
//Dry run?
|
||||
//istanbul ignore if: No need to test console logs
|
||||
if (dry && verbose) {
|
||||
console.log(chalk.yellow('Dry run, not making actual changes'));
|
||||
}
|
||||
|
||||
//Find paths
|
||||
return getPathsAsync(files, config)
|
||||
|
||||
//Make replacements
|
||||
.then(paths => Promise.all(
|
||||
paths.map(file => replaceAsync(file, from, to, config))
|
||||
))
|
||||
|
||||
//Success handler
|
||||
.then(results => {
|
||||
if (typeof cb === 'function') {
|
||||
cb(null, results);
|
||||
}
|
||||
return results;
|
||||
})
|
||||
|
||||
//Error handler
|
||||
.catch(error => {
|
||||
if (typeof cb === 'function') {
|
||||
cb(error);
|
||||
}
|
||||
else {
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sync API
|
||||
*/
|
||||
function replaceInFileSync(config) {
|
||||
|
||||
// If custom processor is provided use it instead
|
||||
if (config && config.processor) {
|
||||
return processFile.processFileSync(config);
|
||||
}
|
||||
|
||||
//Parse config
|
||||
config = parseConfig(config);
|
||||
|
||||
//Get config, paths, and initialize changed files
|
||||
const {files, from, to, dry, verbose} = config;
|
||||
const paths = getPathsSync(files, config);
|
||||
|
||||
//Dry run?
|
||||
//istanbul ignore if: No need to test console logs
|
||||
if (dry && verbose) {
|
||||
console.log(chalk.yellow('Dry run, not making actual changes'));
|
||||
}
|
||||
|
||||
//Process synchronously and return results
|
||||
return paths.map(path => replaceSync(path, from, to, config));
|
||||
}
|
||||
|
||||
// Self-reference to support named import
|
||||
replaceInFile.replaceInFile = replaceInFile;
|
||||
replaceInFile.replaceInFileSync = replaceInFileSync;
|
||||
replaceInFile.sync = replaceInFileSync;
|
||||
|
||||
//Export
|
||||
module.exports = replaceInFile;
|
||||
Reference in New Issue
Block a user