UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

40 lines (39 loc) 1.79 kB
/** * CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24 * Update:: import { getDateFromNow } to '@mikezimm/fps-core-v7/lib/logic/Time/getDateFromNow;' */ // import { getDateFromNow } from "@mikezimm/fps-library-v2/lib/logic/Time/getDateFromNow"; import { getDateFromNow } from "../../Time/getDateFromNow"; // Per chatGPT... Move to logic/Time if it works ok /** * 2024-08-23: Copied from drillFunctions, ported to Hierarchy-Explorer for QFButtons * parseTodayXExpression will: * 1. take a string eval expression * 2. look for a patter like [Today - 10] * 3. and substitute it for the equivilant toISOString * * @param expression * @returns */ export function parseTodayXExpression(expression) { let parsedExpression = `${expression}`; // const todayXRegex = /\[\s*Today\s*([+-])\s*(\d+)\s*\]/gi; // const todayXRegex = /\[\s*Today\s*([+-])\s*(\d+)\s*\]/gi; const todayXRegex = /\[\s*Today\s*([+-])\s*(\d+)\s*\]/; const matchX = parsedExpression.match(todayXRegex); if (matchX) { const operator = matchX[1]; const daysOffset = parseInt(matchX[2], 10); const OffsetDate = getDateFromNow(daysOffset * (operator === '-' ? -1 : 1)); parsedExpression = parsedExpression.replace(todayXRegex, `'${OffsetDate.toISOString()}'`); } const todayRegex = /\[\s*Today\s*\]/; // const todayRegex = /\[\\s*Today\\s*\]/gi; const match = parsedExpression.match(todayRegex); if (match) { const OffsetDate = getDateFromNow(0); parsedExpression = parsedExpression.replace(todayRegex, `'${OffsetDate.toISOString()}'`); } return parsedExpression; // Return the original if no match is found } //# sourceMappingURL=parseTodayXExpression.js.map