diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-05-03 16:18:04 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-05-31 12:11:48 -0300 |
commit | 94b9895a5a0d836f9e91ef87779ac29a1b2c525f (patch) | |
tree | 6a3fac2e9d99119a99436fe6b563ab33d8e1bca9 /src/static/js/search-worker.js | |
parent | f415551fb45174f2618f916fd323fb076adfd7a6 (diff) |
client: wrap search-worker main code in function
Avoids top-level await in client code and organizes control flow a little nicer.
Diffstat (limited to 'src/static/js/search-worker.js')
-rw-r--r-- | src/static/js/search-worker.js | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/static/js/search-worker.js b/src/static/js/search-worker.js index 7932655b..24412b22 100644 --- a/src/static/js/search-worker.js +++ b/src/static/js/search-worker.js @@ -4,28 +4,34 @@ import {withEntries} from '../shared-util/sugar.js'; import FlexSearch from '../lib/flexsearch/flexsearch.bundle.module.min.js'; let status = null; +let indexes = null; +let searchData = null; onmessage = handleWindowMessage; - postStatus('alive'); -const indexes = - makeSearchIndexes(FlexSearch); +main().then( + () => { + postStatus('ready'); + }); + +async function main() { + indexes = + makeSearchIndexes(FlexSearch); -const searchData = - await fetch('/search-data/index.json') - .then(resp => resp.json()); + searchData = + await fetch('/search-data/index.json') + .then(resp => resp.json()); -// If this fails, it's because an outdated index was cached. -// TODO: If this fails, try again once with a cache busting url. -for (const [indexName, indexData] of Object.entries(searchData)) { - for (const [key, value] of Object.entries(indexData)) { - indexes[indexName].import(key, value); + // If this fails, it's because an outdated index was cached. + // TODO: If this fails, try again once with a cache busting url. + for (const [indexName, indexData] of Object.entries(searchData)) { + for (const [key, value] of Object.entries(indexData)) { + indexes[indexName].import(key, value); + } } } -postStatus('ready'); - function handleWindowMessage(message) { switch (message.data.kind) { case 'action': |