From ce60fc0c3a899601af1202c37ff878a817935720 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 18 Feb 2024 00:36:37 +0200 Subject: [PATCH] server-ts: Port services/search/expressions/expression --- src/services/search/expressions/ancestor.js | 2 +- src/services/search/expressions/and.js | 2 +- src/services/search/expressions/attribute_exists.js | 2 +- src/services/search/expressions/child_of.js | 2 +- src/services/search/expressions/descendant_of.js | 2 +- .../expressions/{expression.js => expression.ts} | 11 ++++++++--- src/services/search/expressions/is_hidden.js | 2 +- src/services/search/expressions/label_comparison.js | 2 +- src/services/search/expressions/not.js | 2 +- .../search/expressions/note_content_fulltext.js | 2 +- src/services/search/expressions/note_flat_text.js | 2 +- src/services/search/expressions/or.js | 2 +- src/services/search/expressions/order_by_and_limit.js | 2 +- src/services/search/expressions/parent_of.js | 2 +- .../search/expressions/property_comparison.js | 2 +- src/services/search/expressions/relation_where.js | 2 +- src/services/search/expressions/true.js | 2 +- 17 files changed, 24 insertions(+), 19 deletions(-) rename src/services/search/expressions/{expression.js => expression.ts} (54%) diff --git a/src/services/search/expressions/ancestor.js b/src/services/search/expressions/ancestor.js index 5275492a1..f48e9e59f 100644 --- a/src/services/search/expressions/ancestor.js +++ b/src/services/search/expressions/ancestor.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const log = require('../../log'); const becca = require('../../../becca/becca'); diff --git a/src/services/search/expressions/and.js b/src/services/search/expressions/and.js index a0dd35047..3d510ac25 100644 --- a/src/services/search/expressions/and.js +++ b/src/services/search/expressions/and.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const TrueExp = require('./true.js'); class AndExp extends Expression { diff --git a/src/services/search/expressions/attribute_exists.js b/src/services/search/expressions/attribute_exists.js index 4c723a433..6d2e92d64 100644 --- a/src/services/search/expressions/attribute_exists.js +++ b/src/services/search/expressions/attribute_exists.js @@ -2,7 +2,7 @@ const NoteSet = require('../note_set'); const becca = require('../../../becca/becca'); -const Expression = require('./expression.js'); +const Expression = require('./expression'); class AttributeExistsExp extends Expression { constructor(attributeType, attributeName, prefixMatch) { diff --git a/src/services/search/expressions/child_of.js b/src/services/search/expressions/child_of.js index fde480a83..bbfc4a6ef 100644 --- a/src/services/search/expressions/child_of.js +++ b/src/services/search/expressions/child_of.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); class ChildOfExp extends Expression { diff --git a/src/services/search/expressions/descendant_of.js b/src/services/search/expressions/descendant_of.js index 11ad011e8..918bd352e 100644 --- a/src/services/search/expressions/descendant_of.js +++ b/src/services/search/expressions/descendant_of.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const becca = require('../../../becca/becca'); diff --git a/src/services/search/expressions/expression.js b/src/services/search/expressions/expression.ts similarity index 54% rename from src/services/search/expressions/expression.js rename to src/services/search/expressions/expression.ts index 6ffbc290e..a83c139f2 100644 --- a/src/services/search/expressions/expression.js +++ b/src/services/search/expressions/expression.ts @@ -1,6 +1,11 @@ "use strict"; -class Expression { +import NoteSet = require("../note_set"); +import SearchContext = require("../search_context"); + +abstract class Expression { + name: string; + constructor() { this.name = this.constructor.name; // for DEBUG mode to have expression name as part of dumped JSON } @@ -11,7 +16,7 @@ class Expression { * @param {SearchContext} searchContext * @returns {NoteSet} */ - execute(inputNoteSet, executionContext, searchContext) {} + abstract execute(inputNoteSet: NoteSet, executionContext: {}, searchContext: SearchContext): NoteSet; } -module.exports = Expression; +export = Expression; diff --git a/src/services/search/expressions/is_hidden.js b/src/services/search/expressions/is_hidden.js index e5ff48536..9fb59cec3 100644 --- a/src/services/search/expressions/is_hidden.js +++ b/src/services/search/expressions/is_hidden.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); /** diff --git a/src/services/search/expressions/label_comparison.js b/src/services/search/expressions/label_comparison.js index 961bf13f5..1d6f7572b 100644 --- a/src/services/search/expressions/label_comparison.js +++ b/src/services/search/expressions/label_comparison.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const becca = require('../../../becca/becca'); diff --git a/src/services/search/expressions/not.js b/src/services/search/expressions/not.js index 2efd741e2..3117b4a01 100644 --- a/src/services/search/expressions/not.js +++ b/src/services/search/expressions/not.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); class NotExp extends Expression { constructor(subExpression) { diff --git a/src/services/search/expressions/note_content_fulltext.js b/src/services/search/expressions/note_content_fulltext.js index 6a5466a3e..f8a937f6a 100644 --- a/src/services/search/expressions/note_content_fulltext.js +++ b/src/services/search/expressions/note_content_fulltext.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const log = require('../../log'); const becca = require('../../../becca/becca'); diff --git a/src/services/search/expressions/note_flat_text.js b/src/services/search/expressions/note_flat_text.js index cf523bfbb..308fd0688 100644 --- a/src/services/search/expressions/note_flat_text.js +++ b/src/services/search/expressions/note_flat_text.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const becca = require('../../../becca/becca'); const utils = require('../../utils'); diff --git a/src/services/search/expressions/or.js b/src/services/search/expressions/or.js index c5a9c64c4..529320724 100644 --- a/src/services/search/expressions/or.js +++ b/src/services/search/expressions/or.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const TrueExp = require('./true.js'); diff --git a/src/services/search/expressions/order_by_and_limit.js b/src/services/search/expressions/order_by_and_limit.js index 9a68f9eb2..2de6547ed 100644 --- a/src/services/search/expressions/order_by_and_limit.js +++ b/src/services/search/expressions/order_by_and_limit.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); class OrderByAndLimitExp extends Expression { diff --git a/src/services/search/expressions/parent_of.js b/src/services/search/expressions/parent_of.js index 5f388696b..9a474ed40 100644 --- a/src/services/search/expressions/parent_of.js +++ b/src/services/search/expressions/parent_of.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); class ParentOfExp extends Expression { diff --git a/src/services/search/expressions/property_comparison.js b/src/services/search/expressions/property_comparison.js index 5f8ac14b3..865e50ff1 100644 --- a/src/services/search/expressions/property_comparison.js +++ b/src/services/search/expressions/property_comparison.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const buildComparator = require('../services/build_comparator.js'); diff --git a/src/services/search/expressions/relation_where.js b/src/services/search/expressions/relation_where.js index 77283b45c..33d4e8f59 100644 --- a/src/services/search/expressions/relation_where.js +++ b/src/services/search/expressions/relation_where.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); const NoteSet = require('../note_set'); const becca = require('../../../becca/becca'); diff --git a/src/services/search/expressions/true.js b/src/services/search/expressions/true.js index 7dbf35c27..fd685cc17 100644 --- a/src/services/search/expressions/true.js +++ b/src/services/search/expressions/true.js @@ -1,6 +1,6 @@ "use strict"; -const Expression = require('./expression.js'); +const Expression = require('./expression'); class TrueExp extends Expression { execute(inputNoteSet, executionContext, searchContext) {