e1c-repo-tools
Version:
Tools for 1C enterprise repository
33 lines (32 loc) • 1.85 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.precommitHook = exports.processStagedFiles = exports.getStagedFilesToProcess = void 0;
const E1cDispatcher_1 = __importDefault(require("./E1cDispatcher"));
const git_utils_1 = require("./git-utils");
const getStagedFilesToProcess = async (filesExtensions, pathToDistDir) => (await git_utils_1.getStagedFiles())
.filter((filepath) => filesExtensions.map((s) => `.${s}`).indexOf(filepath.slice(-4)) >= 0)
.filter((filepath) => !pathToDistDir || `./${filepath}`.indexOf(pathToDistDir) === 0 || `${filepath}`.indexOf(pathToDistDir) === 0);
exports.getStagedFilesToProcess = getStagedFilesToProcess;
const processStagedFiles = async (e1cDispatcher) => {
const dispatcher = e1cDispatcher || await E1cDispatcher_1.default.initWithLocalConfig();
const filesToDump = await exports.getStagedFilesToProcess(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.processStagedFiles = processStagedFiles;
const precommitHook = async () => {
const dispatcher = await E1cDispatcher_1.default.initWithLocalConfig();
const dumpedFilesInfo = await exports.processStagedFiles(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);
}
};
exports.precommitHook = precommitHook;