MCPcopy Create free account
hub / github.com/AlexErrant/Pentive / handleLabel

Function handleLabel

shared-dom/src/language/query2sql.ts:649–815  ·  view source on GitHub ↗
(node: QueryString | QueryRegex, context: Context)

Source from the content-addressed store, hash-verified

647}
648
649function 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()

Callers 1

serializeFunction · 0.85

Calls 12

throwExpFunction · 0.90
serializeKindFunction · 0.90
serializeStateFunction · 0.90
assertNeverFunction · 0.90
buildTagSearchFunction · 0.85
handleCreatedEditedDueFunction · 0.85
handleTagCountFunction · 0.85
regexpWithFlagsMethod · 0.80
likeMethod · 0.80
parameterizeSqlMethod · 0.80
trustedSqlMethod · 0.80
serializeFunction · 0.70

Tested by

no test coverage detected