diff options
author | Minteck <contact@minteck.org> | 2022-01-08 21:47:45 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-01-08 21:47:45 +0100 |
commit | be6c790e43be36cfa6669110c7064a67ad3c4623 (patch) | |
tree | 3e81dd5a8caaf3f9c9db6b21f858167f01983119 /modules/result.js | |
parent | ac2dea4a23ca72001e41c1dbf66ff1a0d01e217c (diff) | |
download | ponyfind-be6c790e43be36cfa6669110c7064a67ad3c4623.tar.gz ponyfind-be6c790e43be36cfa6669110c7064a67ad3c4623.tar.bz2 ponyfind-be6c790e43be36cfa6669110c7064a67ad3c4623.zip |
Update
Diffstat (limited to 'modules/result.js')
-rw-r--r-- | modules/result.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/result.js b/modules/result.js new file mode 100644 index 0000000..3f94ebb --- /dev/null +++ b/modules/result.js @@ -0,0 +1,41 @@ +const db = require('../data/search.json').associations; +const Fuse = require('fuse.js'); + +module.exports = (query) => { + const fuse = new Fuse(db, { + keys: [ 'title', 'endpoint' ] + }) + + let results = []; + for (let item of fuse.search(query)) { + results.push(item.item.endpoint); + } + + if (fuse.search(query).length > 0) { + exact = fuse.search(query)[0].item.endpoint; + } else { + exact = null; + } + + let first = [ + null, + null, + null + ] + + findex = 0; + for (let result of fuse.search(query)) { + if (!first.includes(result.item.endpoint) && findex < 3) { + first[findex] = result.item.endpoint + findex++ + } + } + + console.log(first); + + return { + results, + first, + exact + }; +}
\ No newline at end of file |