From fcbe988d109b6bc43de463901e08877bc5b0a206 Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Thu, 11 Apr 2019 09:20:41 +0200 Subject: [PATCH] fix(@schematics/angular): properly log data received in web worker snippet The generated snippet was: worker.onmessage = ({ data }) => { console.log('page got message: $\{data\}'); }; which doesn't use a template string and so does not log `data`. Fixes the generated snippet to be `console.log(`page got message: ${data}`);`. Also adds a newline at the end of the web worker template to not fail the default TSLint rules if the schematic is used. --- .../files/worker/__name@dasherize__.worker.ts.template | 2 +- packages/schematics/angular/web-worker/index.ts | 3 ++- packages/schematics/angular/web-worker/index_spec.ts | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/schematics/angular/web-worker/files/worker/__name@dasherize__.worker.ts.template b/packages/schematics/angular/web-worker/files/worker/__name@dasherize__.worker.ts.template index b88e1b10b6..27020fe12b 100644 --- a/packages/schematics/angular/web-worker/files/worker/__name@dasherize__.worker.ts.template +++ b/packages/schematics/angular/web-worker/files/worker/__name@dasherize__.worker.ts.template @@ -1,4 +1,4 @@ addEventListener('message', ({ data }) => { const response = `worker response to ${data}`; postMessage(response); -}); \ No newline at end of file +}); diff --git a/packages/schematics/angular/web-worker/index.ts b/packages/schematics/angular/web-worker/index.ts index 352c8d889d..ba7f32727b 100644 --- a/packages/schematics/angular/web-worker/index.ts +++ b/packages/schematics/angular/web-worker/index.ts @@ -150,12 +150,13 @@ function addSnippet(options: WebWorkerOptions): Rule { } const siblingModulePath = `${options.path}/${siblingModules[0]}`; + const logMessage = 'console.log(`page got message: ${data}`);'; const workerCreationSnippet = tags.stripIndent` if (typeof Worker !== 'undefined') { // Create a new const worker = new Worker('./${options.name}.worker', { type: 'module' }); worker.onmessage = ({ data }) => { - console.log('page got message: $\{data\}'); + ${logMessage} }; worker.postMessage('hello'); } else { diff --git a/packages/schematics/angular/web-worker/index_spec.ts b/packages/schematics/angular/web-worker/index_spec.ts index 940d890d2f..dbe82d7733 100644 --- a/packages/schematics/angular/web-worker/index_spec.ts +++ b/packages/schematics/angular/web-worker/index_spec.ts @@ -81,5 +81,6 @@ describe('Service Worker Schematic', () => { const tree = schematicRunner.runSchematic('web-worker', defaultOptions, appTree); const appComponent = tree.readContent('/projects/bar/src/app/app.component.ts'); expect(appComponent).toContain(`new Worker('./${defaultOptions.name}.worker`); + expect(appComponent).toContain('console.log(`page got message: ${data}`)'); }); });