@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
JavaScript
/**
* 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