Skip to content
This repository was archived by the owner on May 29, 2023. It is now read-only.

Commit a7c1218

Browse files
committed
feat: added WorkerPipe
1 parent fb2c592 commit a7c1218

File tree

15 files changed

+99
-53
lines changed

15 files changed

+99
-53
lines changed

projects/demo/src/app/app.browser.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
import {NgModule} from '@angular/core';
88
import {FormsModule} from '@angular/forms';
99
import {BrowserModule} from '@angular/platform-browser';
10-
import {WebWorkerModule} from '@ng-web-apis/workers';
10+
import {WorkerModule} from '@ng-web-apis/workers';
1111
import {AppComponent} from './app.component';
1212
import {AppRoutingModule} from './app.routes';
1313

@@ -18,7 +18,7 @@ import {AppRoutingModule} from './app.routes';
1818
FormsModule,
1919
BrowserModule.withServerTransition({appId: 'demo'}),
2020
AppRoutingModule,
21-
WebWorkerModule,
21+
WorkerModule,
2222
],
2323
declarations: [AppComponent],
2424
providers: [

projects/demo/src/app/app.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
<button type="button" (click)="workerThread.complete()">Complete</button>
55
</form>
66

7-
{{ workerThread | async | json }}
7+
{{ workerThread | async | waWorker: oneMoreFn | async | json }}

projects/demo/src/app/app.component.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {ChangeDetectionStrategy, Component} from '@angular/core';
2-
import {WebWorker, WebWorkerExecutor} from '@ng-web-apis/workers';
2+
import {WebWorker, WorkerExecutor} from '@ng-web-apis/workers';
33

44
@Component({
55
selector: 'main',
@@ -10,9 +10,13 @@ import {WebWorker, WebWorkerExecutor} from '@ng-web-apis/workers';
1010
export class AppComponent {
1111
public workerThread: WebWorker<string, string>;
1212

13-
constructor(webWorkerExecutor: WebWorkerExecutor) {
13+
constructor(webWorkerExecutor: WorkerExecutor) {
1414
this.workerThread = webWorkerExecutor.createWorker((result: string) =>
1515
Promise.resolve(`Message from worker: ${result}`),
1616
);
1717
}
18+
19+
oneMoreFn(data: any): Promise<any> {
20+
return Promise.resolve().then(() => data);
21+
}
1822
}

projects/workers/src/public-api.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Public API Surface of @ng-web-apis/workers
33
*/
4-
export * from './web-worker/web-worker.module';
5-
export * from './web-worker/types/web-worker-function';
6-
export * from './web-worker/services/web-worker-executor.service';
7-
export * from './web-worker/classes/web-worker';
4+
export * from './worker/worker.module';
5+
export * from './worker/types/worker-function';
6+
export * from './worker/services/worker-executor.service';
7+
export * from './worker/classes/web-worker';

projects/workers/src/web-worker/services/web-worker-executor.service.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

projects/workers/src/web-worker/types/web-worker-function.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

projects/workers/src/web-worker/web-worker.module.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

projects/workers/src/web-worker/classes/web-worker.ts renamed to projects/workers/src/worker/classes/web-worker.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {fromEvent} from 'rxjs';
22
import {takeWhile} from 'rxjs/operators';
3-
import {WebWorkerFunction} from '../types/web-worker-function';
3+
import {WorkerFunction} from '../types/worker-function';
44
import {AnyNextSubject} from './any-next-subject';
55

6-
export class WebWorker<T, R> extends AnyNextSubject<R> {
6+
export class WebWorker<T = any, R = any> extends AnyNextSubject<R> {
77
private worker!: Worker;
88

9-
private static createFnUrl(fn: WebWorkerFunction): string {
9+
private static createFnUrl(fn: WorkerFunction): string {
1010
const script = `
1111
self.addEventListener('message', function(e) {
1212
var result = ((${fn.toString()}).call(null, e.data));
@@ -28,7 +28,7 @@ self.addEventListener('message', function(e) {
2828
}
2929

3030
public static fromFunction<T, R>(
31-
fn: WebWorkerFunction<T, R>,
31+
fn: WorkerFunction<T, R>,
3232
options?: WorkerOptions,
3333
): WebWorker<T, R> {
3434
return new WebWorker<T, R>(WebWorker.createFnUrl(fn), options);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {WorkerExecutor} from '../services/worker-executor.service';
2+
import {WorkerPipe} from './worker.pipe';
3+
4+
describe('WorkerPipe', () => {
5+
it('create an instance', () => {
6+
const pipe = new WorkerPipe(new WorkerExecutor());
7+
8+
expect(pipe).toBeTruthy();
9+
});
10+
});

0 commit comments

Comments
 (0)