(state: ParsingState, key: string, value: string)
| 356 | } |
| 357 | |
| 358 | private static applyDataviewField(state: ParsingState, key: string, value: string): void { |
| 359 | const normalizedKey = key.trim().toLowerCase(); |
| 360 | |
| 361 | switch (normalizedKey) { |
| 362 | case "priority": |
| 363 | state.parsed.priority = this.normalizePriority(value); |
| 364 | return; |
| 365 | case "start": |
| 366 | this.assignDateField(state, "startDate", value); |
| 367 | return; |
| 368 | case "created": |
| 369 | this.assignDateField(state, "createdDate", value); |
| 370 | return; |
| 371 | case "scheduled": |
| 372 | this.assignDateField(state, "scheduledDate", value); |
| 373 | return; |
| 374 | case "due": |
| 375 | this.assignDateField(state, "dueDate", value); |
| 376 | return; |
| 377 | case "completion": |
| 378 | case "done": |
| 379 | this.assignDateField(state, "doneDate", value); |
| 380 | return; |
| 381 | case "repeat": |
| 382 | Object.assign(state.parsed, this.parseRecurrence(value)); |
| 383 | return; |
| 384 | case "oncompletion": |
| 385 | if (value.toLowerCase() === "keep" || value.toLowerCase() === "delete") { |
| 386 | state.parsed.onCompletion = value.toLowerCase() as "keep" | "delete"; |
| 387 | } |
| 388 | return; |
| 389 | case "id": |
| 390 | state.parsed.taskPluginId = value; |
| 391 | return; |
| 392 | case "dependson": { |
| 393 | const dependsOn = this.parseTaskIdList(value); |
| 394 | if (dependsOn.length > 0) { |
| 395 | state.parsed.dependsOn = dependsOn; |
| 396 | } |
| 397 | return; |
| 398 | } |
| 399 | case "summary": |
| 400 | case "description": |
| 401 | case "details": |
| 402 | this.appendDetails(state, value); |
| 403 | return; |
| 404 | default: |
| 405 | this.assignCustomFrontmatter(state, key, value); |
| 406 | } |
| 407 | } |
| 408 | |
| 409 | private static assignDateField( |
| 410 | state: ParsingState, |
no test coverage detected