"use strict"; 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 child_process_1 = require("child_process"); require("dotenv").config({ path: "./../.env" }); const sourceFile = process.argv.indexOf("--src") >= 0 ? process.argv[process.argv.indexOf("--src") + 1] : null; const destinationFile = process.argv.indexOf("--dst") >= 0 ? process.argv[process.argv.indexOf("--dst") + 1] : null; console.log("Running Less compiler ..."); const sourceFiles = sourceFile === null || sourceFile === void 0 ? void 0 : sourceFile.split(","); const dstFiles = destinationFile === null || destinationFile === void 0 ? void 0 : destinationFile.split(","); if (!sourceFiles || !dstFiles) { throw new Error("No Source or Destination Files!"); } for (let i = 0; i < sourceFiles.length; i++) { const srcFolder = sourceFiles[i]; const dstFile = dstFiles[i]; fs_1.default.watch(srcFolder, { recursive: true }, (evtType, prev) => { if ((prev === null || prev === void 0 ? void 0 : prev.match(/\(/)) || (prev === null || prev === void 0 ? void 0 : prev.match(/\.(j|t)s$/i))) { return; } let finalSrcPath = `${srcFolder}/main.less`; let finalDstPath = dstFile; if (prev === null || prev === void 0 ? void 0 : prev.match(/\[/)) { const paths = prev.split("/"); const targetPathFull = paths[paths.length - 1]; const targetPath = targetPathFull .replace(/\[|\]/g, "") .replace(/\.less/, ""); const destinationFileParentFolder = dstFile.replace(/\/[^\/]+\.css$/, ""); const targetDstFilePath = `${destinationFileParentFolder}/${targetPath}.css`; finalSrcPath = `${srcFolder}/${targetPathFull}`; finalDstPath = targetDstFilePath; } (0, child_process_1.exec)(`lessc ${finalSrcPath} ${(finalDstPath === null || finalDstPath === void 0 ? void 0 : finalDstPath.match(/\.css$/)) ? finalDstPath : finalDstPath.replace(/\/$/, "") + "/_main.css"}`, (error, stdout, stderr) => { if (error) { console.log("ERROR =>", error.message); if (!(evtType === null || evtType === void 0 ? void 0 : evtType.match(/change/i)) && (prev === null || prev === void 0 ? void 0 : prev.match(/\[/))) { fs_1.default.unlinkSync(finalDstPath); } return; } console.log("Less Compilation \x1b[32msuccessful\x1b[0m!"); }); }); }