e1c-repo-tools
Version:
Tools for 1C enterprise repository
37 lines (36 loc) • 1.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.processChangedFiles = exports.getChangedFilesToProcess = void 0;
const console_operations_1 = require("./console-operations");
const E1cDispatcher_1 = __importDefault(require("./E1cDispatcher"));
const git_utils_1 = require("./git-utils");
const getChangedFilesToProcess = async (filesExtensions, pathToDistDir) => (await git_utils_1.getDirStatus(pathToDistDir))
.map((str) => str.split(' ')).map((arr) => arr.filter((str) => str.length > 0).splice(-1)[0])
.filter((filepath) => filesExtensions.map((s) => `.${s}`).indexOf(filepath.slice(-4)) >= 0);
exports.getChangedFilesToProcess = getChangedFilesToProcess;
// TODO: remove duplicated code ./src/precommit-hook.ts
const processChangedFiles = async (e1cDispatcher) => {
const dispatcher = e1cDispatcher || await E1cDispatcher_1.default.initWithLocalConfig();
const filesToDump = await exports.getChangedFilesToProcess(dispatcher.filesExtensions, dispatcher.pathToDistDir);
const dumpedFilesInfo = [];
for (let i = 0; i < filesToDump.length; i += 1) {
// eslint-disable-next-line no-await-in-loop
dumpedFilesInfo.push(await dispatcher.DumpExternalBinFile(filesToDump[i]));
}
return dumpedFilesInfo;
};
exports.processChangedFiles = processChangedFiles;
const main = async () => {
const dispatcher = await E1cDispatcher_1.default.initWithLocalConfig();
const dumpedFilesInfo = await exports.processChangedFiles(dispatcher);
for (let i = 0; i < dumpedFilesInfo.length; i += 1) {
// eslint-disable-next-line no-await-in-loop
await git_utils_1.stageDir(dumpedFilesInfo[i].pathToSrcFiles);
}
};
console_operations_1.switchLogUpdateOn();
main();