Skip to content

Instantly share code, notes, and snippets.

@takumifukasawa
Created December 11, 2021 15:29
Show Gist options
  • Save takumifukasawa/af189add3c39140fd3fb4a7b0bda834e to your computer and use it in GitHub Desktop.
Save takumifukasawa/af189add3c39140fd3fb4a7b0bda834e to your computer and use it in GitHub Desktop.
【Javascript】Inline Worker
/**
* usage
*
* const worker = new FunctionWorker(() => {
* self.onmessage = (e) => {
* postMessage(e);
* }
* });
*
*/
class FunctionWorker extends Worker {
constructor(src) {
const str = src.toString()
.replace(/^.*{.*/, "")
.replace(/.*\}$/, "")
.replace(/^\n\s*/, "")
.replace(/\n$/, "");
const blobUrl = window.URL.createObjectURL(new Blob([str]));
super(blobUrl);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment