aboutsummaryrefslogtreecommitdiff
path: root/src/view/client/lib/search.ts
diff options
context:
space:
mode:
authorJoris2023-09-16 18:28:16 +0200
committerJoris2023-09-16 18:31:24 +0200
commit06f045e90bb57c36738e58ee6830e2a2391bc6a3 (patch)
treea5b65b048c103b4ea0e5d3c0fa5e115cbaf3cf5f /src/view/client/lib/search.ts
parent230f2e0623d22af6e68466884bd5dea5dcb846dc (diff)
Migrate CLI to python
Diffstat (limited to 'src/view/client/lib/search.ts')
-rw-r--r--src/view/client/lib/search.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/view/client/lib/search.ts b/src/view/client/lib/search.ts
new file mode 100644
index 0000000..026cb94
--- /dev/null
+++ b/src/view/client/lib/search.ts
@@ -0,0 +1,17 @@
+export function match(search: string, ...targets: Array<string | undefined>): boolean {
+ const formattedTargets = targets
+ .filter(t => t !== undefined)
+ .map(format)
+
+ return search.split(/\s+/).every(subSearch =>
+ formattedTargets.some(target => target.includes(format(subSearch)))
+ )
+}
+
+export function format(str: string): string {
+ return unaccent(str.toLowerCase())
+}
+
+function unaccent(str: string): string {
+ return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
+}