MCPcopy Create free account
hub / github.com/chhoumann/quickadd / parseNaturalLanguageDate

Function parseNaturalLanguageDate

src/utils/dateParser.ts:21–62  ·  view source on GitHub ↗
(
	input: string,
	format?: string,
	dateParser: IDateParser = NLDParser,
	aliases?: DateAliasMap,
)

Source from the content-addressed store, hash-verified

19 * @returns ParsedDate object with the result
20 */
21export function parseNaturalLanguageDate(
22 input: string,
23 format?: string,
24 dateParser: IDateParser = NLDParser,
25 aliases?: DateAliasMap,
26): ParsedDate {
27 if (!input || !input.trim()) {
28 return {
29 isValid: false,
30 error: "Empty input"
31 };
32 }
33
34 try {
35 const aliasMap = aliases ?? settingsStore.getState().dateAliases;
36 const normalizedInput = normalizeDateInput(input, aliasMap);
37 const parseResult = dateParser.parseDate(normalizedInput);
38
39 if (parseResult?.moment?.isValid()) {
40 const isoString = parseResult.moment.toISOString();
41 const formatted = format
42 ? parseResult.moment.format(format)
43 : parseResult.moment.format("YYYY-MM-DD");
44
45 return {
46 isValid: true,
47 isoString,
48 formatted
49 };
50 } else {
51 return {
52 isValid: false,
53 error: "Unable to parse date"
54 };
55 }
56 } catch (error) {
57 return {
58 isValid: false,
59 error: `Parse error: ${error instanceof Error ? error.message : "Unknown error"}`
60 };
61 }
62}
63
64/**
65 * Format an ISO date string using moment.js

Callers 4

dateParser.test.tsFile · 0.90
updatePreviewMethod · 0.90

Calls 3

normalizeDateInputFunction · 0.90
parseDateMethod · 0.65
formatMethod · 0.45

Tested by

no test coverage detected