Updates
This commit is contained in:
Vendored
+57
@@ -0,0 +1,57 @@
|
||||
"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;
|
||||
}
|
||||
Reference in New Issue
Block a user