diff --git a/assets/js/main.js b/assets/js/main.js index f2e1809..140d64f 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -12,6 +12,18 @@ import { hello4 } from './lib'; // From the Hugo template. import * as params from '@params'; +var worker = new Worker(params.myworker); + +worker.addEventListener( + 'message', + function(e) { + console.log('Worker said: ', e.data); + }, + false +); + +worker.postMessage('Hello Worker'); + // https://github.com/gohugoio/hugo/issues/7948 // TODO(bep) make this work in Hugo integration tests import { helloNodeModules } from 'mynodemod'; diff --git a/assets/js/myworker.js b/assets/js/myworker.js new file mode 100644 index 0000000..c1d7906 --- /dev/null +++ b/assets/js/myworker.js @@ -0,0 +1,7 @@ +self.addEventListener( + 'message', + function(e) { + self.postMessage('Echo From Worker: ' + e.data); + }, + false +); diff --git a/layouts/index.html b/layouts/index.html index e70dd7f..1c02649 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -10,8 +10,10 @@ {{ end }} + {{/* We (Hugo/ESBuild) needs to improve the worker integration, but this could be a OK workaround. */}} + {{ $worker := resources.Get "js/myworker.js" | js.Build }} {{ $inject := slice "js/shims/process.js" }} - {{ $js := resources.Get "js/main.js" | js.Build (dict "minify" false "params" (dict "myparam" "Hugo Rocks!") "inject" $inject ) }} + {{ $js := resources.Get "js/main.js" | js.Build (dict "minify" false "params" (dict "myparam" "Hugo Rocks!" "myworker" $worker.RelPermalink) "inject" $inject ) }} {{ partialCached "jslibs/alpinejs/script-src.html" "-" }}