From 06b3ece074f1c1c96d9bb75436181147943f6026 Mon Sep 17 00:00:00 2001 From: Sushain Cherivirala Date: Sun, 7 Apr 2019 23:10:54 -0700 Subject: [PATCH] Update webpack-require-from to next --- package.json | 2 +- src/scripts/index.tsx | 4 ++++ src/scripts/types.d.ts | 7 +++++++ src/scripts/worker.ts | 22 +++++++++++++--------- webpack.config.js | 2 +- yarn.lock | 4 ++-- 6 files changed, 28 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 6c15d68..1e8b4e4 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "webpack": "^4.16.5", "webpack-assets-manifest": "^3.0.2", "webpack-cli": "^3.1.0", - "webpack-require-from": "^1.7.0", + "webpack-require-from": "https://github.com/agoldis/webpack-require-from.git#next", "worker-loader": "^2.0.0" } } diff --git a/src/scripts/index.tsx b/src/scripts/index.tsx index 5d67581..cf0660a 100644 --- a/src/scripts/index.tsx +++ b/src/scripts/index.tsx @@ -206,6 +206,10 @@ class App extends React.Component { onWrapToggle: this.handleWrapToggle, }); + this.worker.postMessage({ + path: `${window.location.protocol}//${window.location.host}/`, + type: WorkerMessageType.INITIALIZE, + }); this.worker.addEventListener('message', this.handleWorkerMessage); this.requestWorkerContentRender(); } diff --git a/src/scripts/types.d.ts b/src/scripts/types.d.ts index 5b41bfd..55c0185 100644 --- a/src/scripts/types.d.ts +++ b/src/scripts/types.d.ts @@ -7,6 +7,7 @@ export const enum Mode { } export const enum WorkerMessageType { + INITIALIZE = 'INITIALIZE', RESULT = 'RESULT', ERROR = 'ERROR', RENDER_CODE = 'RENDER_CODE', @@ -33,7 +34,13 @@ interface WorkerRenderMarkdownRequestMessage { content: string; } +interface WorkerInitializeRequestMessage { + type: WorkerMessageType.INITIALIZE; + path: string; +} + export type WorkerRequestMessage = + | WorkerInitializeRequestMessage | WorkerRenderCodeRequestMessage | WorkerListLanguagesRequestMessage | WorkerRenderMarkdownRequestMessage; diff --git a/src/scripts/worker.ts b/src/scripts/worker.ts index a297ca1..23e1702 100644 --- a/src/scripts/worker.ts +++ b/src/scripts/worker.ts @@ -24,7 +24,6 @@ const getCodeRenderer = async () => { const getMarkdownRenderer = async () => { if (!ctx.MarkdownIt) { - (self as any).__webpack_public_path__ = '/assets/'; const md = await import(/* webpackChunkName: "markdown-it" */ 'markdown-it'); ctx.MarkdownIt = setupMarkdown(((md as any).default as typeof MarkdownIt | undefined) || md); } @@ -33,7 +32,7 @@ const getMarkdownRenderer = async () => { }; const respond = (request: T, result: WorkerResultForRequest) => { - // Unable to figure out a way to have this type more cleanly. + // TODO: get this to type more cleanly const message = { request, request_type: request.type, @@ -50,6 +49,12 @@ ctx.addEventListener('message', async ({ data: request }) => { try { switch (request.type) { + case WorkerMessageType.INITIALIZE: { + (self as any).mungeImportScriptsUrl = (url: string) => { + return `${request.path}/assets/${url}`; + }; + break; + } case WorkerMessageType.RENDER_CODE: { const { language, content } = request; const highlightJs = await getCodeRenderer(); @@ -75,13 +80,12 @@ ctx.addEventListener('message', async ({ data: request }) => { const _: never = request; } } catch (error) { - throw error; - // ctx.postMessage({ - // error: error.toString(), - // request, - // request_type: request.type, - // type: WorkerMessageType.ERROR, - // }); + ctx.postMessage({ + error: error.toString(), + request, + request_type: request.type, + type: WorkerMessageType.ERROR, + }); } }); diff --git a/webpack.config.js b/webpack.config.js index aaeba85..f8c3f48 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -85,7 +85,7 @@ module.exports = { }), new WebpackAssetsManifest(), new WebpackRequireFrom({ - path: 'http://localhost:8080/', + replaceSrcMethodName: 'mungeImportScriptsUrl', suppressErrors: true, }), ], diff --git a/yarn.lock b/yarn.lock index 175277c..d5baef7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5601,9 +5601,9 @@ webpack-log@^1.1.2: loglevelnext "^1.0.1" uuid "^3.1.0" -webpack-require-from@^1.7.0: +"webpack-require-from@https://github.com/agoldis/webpack-require-from.git#next": version "1.7.0" - resolved "https://registry.yarnpkg.com/webpack-require-from/-/webpack-require-from-1.7.0.tgz#6618ef294e8070a57f32563aaf6bb04a3757f17a" + resolved "https://github.com/agoldis/webpack-require-from.git#2b3811bee24fb0e3ba81f052548c61c52085297d" webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.1.0"