"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = getLatestSource; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); function getLatestSource({ dirs, files, }) { let latestDir = undefined; let latestMtime = 0; const isFiles = files === null || files === void 0 ? void 0 : files[0]; const finalPaths = isFiles ? files : dirs; if (!finalPaths) return undefined; for (const pth of finalPaths) { try { const stats = fs_1.default.statSync(pth); const pathMtime = stats.isDirectory() ? getLatestDirMtime(pth) : stats.mtimeMs; if (pathMtime > latestMtime) { latestMtime = pathMtime; latestDir = pth; } } catch (error) { console.error(`Error accessing ${pth}: ${error.message}`); } } return latestDir; } function getLatestDirMtime(dir) { let latestMtime = 0; try { const stats = fs_1.default.statSync(dir); if (stats.isDirectory()) { latestMtime = stats.mtimeMs; const entries = fs_1.default.readdirSync(dir, { withFileTypes: true }); for (const entry of entries) { const entryPath = path_1.default.join(dir, entry.name); if (entry.isDirectory()) { const subMtime = getLatestDirMtime(entryPath); latestMtime = Math.max(latestMtime, subMtime); } else if (entry.isFile()) { const fileStats = fs_1.default.statSync(entryPath); latestMtime = Math.max(latestMtime, fileStats.mtimeMs); } } } } catch (error) { console.error(`Error accessing ${dir}: ${error.message}`); } return latestMtime; }