UNPKG

aoc-automation

Version:

Advent of Code tool to automate the repetitive parts of AoC.

37 lines (36 loc) 1.02 kB
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 };