🍔 Worker biting back
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
"@types/sharp": "^0.28.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"clooney": "^0.6.6",
|
||||
"comlink-loader": "^2.0.0",
|
||||
"express": "^4.17.1",
|
||||
"fs-extra": "^9.1.0",
|
||||
"imghash": "^0.0.8",
|
||||
|
||||
@@ -2,7 +2,7 @@ import * as React from "react";
|
||||
import _ from "lodash";
|
||||
import { connect } from "react-redux";
|
||||
import * as Comlink from "comlink";
|
||||
import ExpensiveProcessor from "worker-loader!../workers/extractCovers.worker";
|
||||
import ExpensiveProcessor from "comlink-loader!../workers/extractCovers.worker";
|
||||
|
||||
interface IProps {
|
||||
matches: unknown;
|
||||
|
||||
12
src/client/types/index.d.ts
vendored
12
src/client/types/index.d.ts
vendored
@@ -9,12 +9,12 @@ declare module "*.png" {
|
||||
// export default ImportComicBooksWorker;
|
||||
// }
|
||||
|
||||
declare module "worker-loader!*" {
|
||||
class WebpackWorker extends Worker {
|
||||
constructor();
|
||||
}
|
||||
export default WebpackWorker;
|
||||
}
|
||||
// declare module "worker-loader!*" {
|
||||
// class WebpackWorker extends Worker {
|
||||
// constructor();
|
||||
// }
|
||||
// export default WebpackWorker;
|
||||
// }
|
||||
|
||||
declare module "*.jpg";
|
||||
declare module "*.gif";
|
||||
|
||||
@@ -1,19 +1,3 @@
|
||||
// const worker: DedicatedWorkerGlobalScope = self as any;
|
||||
|
||||
// worker.onmessage = ({ data }) => {
|
||||
// if (data instanceof Array) {
|
||||
// worker.postMessage(data.join(" ") + "!");
|
||||
// }
|
||||
// };
|
||||
|
||||
import { expose } from "comlink";
|
||||
|
||||
class ExpensiveProcessor {
|
||||
_foo: string;
|
||||
/* ... async methods here ... */
|
||||
constructor() {
|
||||
this._foo = "rishi";
|
||||
}
|
||||
}
|
||||
|
||||
expose(ExpensiveProcessor, self);
|
||||
export async function greet(subject: string): string {
|
||||
return `Hello, ${subject}!`;
|
||||
}
|
||||
@@ -13,9 +13,20 @@ module.exports = {
|
||||
devtool: "source-map",
|
||||
module: {
|
||||
rules: [
|
||||
// {
|
||||
// test: /\.worker\.ts$/,
|
||||
// use: { loader: "worker-loader" },
|
||||
// },
|
||||
{
|
||||
test: /\.worker\.ts$/,
|
||||
use: { loader: "worker-loader" },
|
||||
test: /\.worker\.(js|ts)$/i,
|
||||
use: [
|
||||
{
|
||||
loader: "comlink-loader",
|
||||
options: {
|
||||
singleton: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
test: [/\.js?$/, /\.jsx?$/, /\.tsx?$/],
|
||||
|
||||
30
yarn.lock
30
yarn.lock
@@ -3595,7 +3595,17 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
comlink@^4.3.0:
|
||||
comlink-loader@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/comlink-loader/-/comlink-loader-2.0.0.tgz#a1f4b59a6bdb9b774f4d51dd90324d3844a0ee62"
|
||||
integrity sha512-106/k0JSssSCo2QO4ucbgbyWsb2zAEOSXFAVH2A+EO8kOz3n2BkvmkToxsoo+SWKUIKy8qubhAOLCS5mpFUvHw==
|
||||
dependencies:
|
||||
comlink "^4.2.0"
|
||||
loader-utils "^1.1.0"
|
||||
slash "^3.0.0"
|
||||
worker-loader "^2.0.0"
|
||||
|
||||
comlink@^4.2.0, comlink@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/comlink/-/comlink-4.3.0.tgz#80b3366baccd87897dab3638ebfcfae28b2f87c7"
|
||||
integrity sha512-mu4KKKNuW8TvkfpW/H88HBPeILubBS6T94BdD1VWBXNXfiyqVtwUCVNO1GeNOBTsIswzsMjWlycYr+77F5b84g==
|
||||
@@ -7764,7 +7774,7 @@ loader-runner@^4.2.0:
|
||||
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
||||
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
||||
|
||||
loader-utils@^1.1.0, loader-utils@^1.4.0:
|
||||
loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
||||
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
||||
@@ -10522,6 +10532,14 @@ scheduler@^0.20.2:
|
||||
loose-envify "^1.1.0"
|
||||
object-assign "^4.1.1"
|
||||
|
||||
schema-utils@^0.4.0:
|
||||
version "0.4.7"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
|
||||
integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
|
||||
dependencies:
|
||||
ajv "^6.1.0"
|
||||
ajv-keywords "^3.1.0"
|
||||
|
||||
schema-utils@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
|
||||
@@ -12483,6 +12501,14 @@ word-wrap@^1.2.3, word-wrap@~1.2.3:
|
||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
||||
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
|
||||
|
||||
worker-loader@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac"
|
||||
integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==
|
||||
dependencies:
|
||||
loader-utils "^1.0.0"
|
||||
schema-utils "^0.4.0"
|
||||
|
||||
worker-loader@^3.0.8:
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37"
|
||||
|
||||
Reference in New Issue
Block a user