docs(service-worker): improve API docs for SwPush/SwUpdate (#23138)

PR Close #23138
This commit is contained in:
George Kalpakas
2018-05-17 15:30:36 +03:00
committed by Jason Aden
parent 77942cc690
commit bfeed842ee
3 changed files with 33 additions and 46 deletions

View File

@ -61,19 +61,10 @@ function errorObservable(message: string): Observable<any> {
* @experimental
*/
export class NgswCommChannel {
/**
* @internal
*/
readonly worker: Observable<ServiceWorker>;
/**
* @internal
*/
readonly registration: Observable<ServiceWorkerRegistration>;
/**
* @internal
*/
readonly events: Observable<TypedEvent>;
constructor(private serviceWorker: ServiceWorkerContainer|undefined) {
@ -100,9 +91,6 @@ export class NgswCommChannel {
}
}
/**
* @internal
*/
postMessage(action: string, payload: Object): Promise<void> {
return this.worker
.pipe(take(1), tap((sw: ServiceWorker) => {
@ -114,38 +102,23 @@ export class NgswCommChannel {
.then(() => undefined);
}
/**
* @internal
*/
postMessageWithStatus(type: string, payload: Object, nonce: number): Promise<void> {
const waitForStatus = this.waitForStatus(nonce);
const postMessage = this.postMessage(type, payload);
return Promise.all([waitForStatus, postMessage]).then(() => undefined);
}
/**
* @internal
*/
generateNonce(): number { return Math.round(Math.random() * 10000000); }
/**
* @internal
*/
eventsOfType<T extends TypedEvent>(type: T['type']): Observable<T> {
const filterFn = (event: TypedEvent): event is T => event.type === type;
return this.events.pipe(filter(filterFn));
}
/**
* @internal
*/
nextEventOfType<T extends TypedEvent>(type: T['type']): Observable<T> {
return this.eventsOfType(type).pipe(take(1));
}
/**
* @internal
*/
waitForStatus(nonce: number): Promise<void> {
return this.eventsOfType<StatusEvent>('STATUS')
.pipe(filter(event => event.nonce === nonce), take(1), map(event => {