(node: QueryString | QueryRegex, context: Context)
| 647 | } |
| 648 | |
| 649 | function handleLabel(node: QueryString | QueryRegex, context: Context) { |
| 650 | switch (node.label) { |
| 651 | case tag: { |
| 652 | buildTagSearch(node, context) |
| 653 | break |
| 654 | } |
| 655 | case template: { |
| 656 | if (node.type === 'Regex') { |
| 657 | context.regexpWithFlags(node, `template.name`) |
| 658 | } else { |
| 659 | context.joinTemplateNameFts = true |
| 660 | context.like(node, 'templateNameFts', 'name') |
| 661 | } |
| 662 | break |
| 663 | } |
| 664 | case templateId: { |
| 665 | if (node.type === 'Regex') throwExp() |
| 666 | const equals = sql.raw(node.negate ? '!=' : '=') |
| 667 | context.parameterizeSql(sql`note.templateId ${equals} ${node.value}`) |
| 668 | break |
| 669 | } |
| 670 | case cardId: { |
| 671 | if (node.type === 'Regex') throwExp() |
| 672 | const equals = sql.raw(node.negate ? '!=' : '=') |
| 673 | context.parameterizeSql(sql`card.id ${equals} ${node.value}`) |
| 674 | break |
| 675 | } |
| 676 | case noteId: { |
| 677 | if (node.type === 'Regex') throwExp() |
| 678 | const equals = sql.raw(node.negate ? '!=' : '=') |
| 679 | context.parameterizeSql(sql`note.id ${equals} ${node.value}`) |
| 680 | break |
| 681 | } |
| 682 | case setting: { |
| 683 | if (node.type === 'Regex') { |
| 684 | context.regexpWithFlags(node, `cardSetting.name`) |
| 685 | } else { |
| 686 | context.joinCardSettingNameFts = true |
| 687 | context.like(node, 'cardSettingNameFts', 'name') |
| 688 | } |
| 689 | break |
| 690 | } |
| 691 | case settingId: { |
| 692 | if (node.type === 'Regex') throwExp() |
| 693 | const equals = sql.raw(node.negate ? '!=' : '=') |
| 694 | context.parameterizeSql(sql`card.cardSettingId ${equals} ${node.value}`) |
| 695 | break |
| 696 | } |
| 697 | case kind: { |
| 698 | if (node.type === 'Regex') throwExp() |
| 699 | context.joinLatestReview = true |
| 700 | const n = serializeKind(node.value as KindEnum) |
| 701 | const equals = sql.raw(node.negate ? 'IS NOT' : 'IS') |
| 702 | context.parameterizeSql(sql`latestReview.kind ${equals} ${n}`) |
| 703 | break |
| 704 | } |
| 705 | case state: { |
| 706 | if (node.type === 'Regex') throwExp() |
no test coverage detected