code-replacer
Version:
Replace codes line by line with regex for target files
73 lines • 3.81 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const chalk_1 = __importDefault(require("chalk"));
const sourceFileParser_1 = __importDefault(require("./sourceFileParser"));
const csvParser_1 = __importDefault(require("./csvParser"));
const debuggingInfo_1 = __importDefault(require("./config/debuggingInfo"));
const getReplacedCode_1 = require("./getReplacedCode");
const optionManager_1 = __importDefault(require("./cli/optionManager"));
const constant_1 = __importDefault(require("./config/constant"));
const util_1 = __importDefault(require("./util"));
const template_1 = require("./template");
function default_1({ src: srcFile, csv: replaceListFile, startLine, endLine, dst: dstFileName, template, excludeReg: excludeRegValue, }) {
return __awaiter(this, void 0, void 0, function* () {
try {
const { srcFileLines, srcFileName, srcFilePath } = sourceFileParser_1.default({
srcFile,
});
const templateObj = new template_1.Template(template);
const csvTbl = yield csvParser_1.default({
replaceListFile: replaceListFile,
srcFileName,
srcFilePath,
template: templateObj,
});
const resultLines = getReplacedCode_1.getReplacedCode({
srcFileName,
srcFileLines,
excludeRegValue,
startLine,
endLine,
csvTbl: csvTbl,
template: templateObj,
});
if (resultLines === -1)
return;
const dstFilePath = optionManager_1.default.getInstance().overwriteOpt
? srcFile
: dstFileName
? path_1.default.resolve(dstFileName)
: srcFileName.startsWith(constant_1.default.REPLACED_PREPOSITION)
? srcFilePath + path_1.default.sep + srcFileName
: srcFilePath + path_1.default.sep + constant_1.default.REPLACED_PREPOSITION + srcFileName;
fs_1.default.writeFileSync(dstFilePath, "\ufeff" + resultLines.join("\n"), {
encoding: "utf8",
});
const debugInfoStr = chalk_1.default.greenBright(debuggingInfo_1.default.getInstance().toString());
util_1.default.logByFlag(optionManager_1.default.getInstance().printOpt &&
!optionManager_1.default.getInstance().verboseOpt, debugInfoStr);
console.log(chalk_1.default.italic(chalk_1.default.white(`\nGenerated '${dstFilePath}'\n`)));
}
catch (err) {
console.error(chalk_1.default.red(err.message));
console.error(chalk_1.default.whiteBright("** Details:"));
throw err;
}
});
}
exports.default = default_1;
//# sourceMappingURL=replaceWithFile.js.map