aoc-automation
Version:
Advent of Code tool to automate the repetitive parts of AoC.
37 lines (36 loc) • 1.02 kB
JavaScript
import path from "path";
import os from "os";
const getFilesTrace = () => {
var _a;
const regex = os.platform() === "win32" ? /[A-Z]:(\\|\/).*\.(m?)js/gm : /(?<=file:\/\/).*\.(m?)js/gm;
return (_a = new Error().stack) == null ? void 0 : _a.match(regex);
};
const getDayData = () => {
var _a;
const dirs = (_a = getFilesTrace()) == null ? void 0 : _a.map(
(file) => path.parse(file).dir.split(/\\|\//)
);
const dayDir = dirs == null ? void 0 : dirs.find(
(chunks) => /^day\d\d$/.test(chunks[chunks.length - 1])
);
if (!dayDir) {
return {
year: null,
day: null,
inputFile: null
};
}
const distPos = dayDir == null ? void 0 : dayDir.lastIndexOf("dist");
if (distPos !== -1) {
dayDir[distPos] = "src";
}
return {
year: Number(dayDir[dayDir.length - 2]),
day: Number(dayDir[dayDir.length - 1].slice(-2)),
inputFile: [...dayDir, "input.txt"].join(path.sep)
};
};
var getDayData_default = getDayData;
export {
getDayData_default as default
};