perf(angular): proxy fast properties (#16888)

* perf(angular): proxy fast properties

* update stencil
This commit is contained in:
Manu MA
2018-12-28 18:37:24 +01:00
committed by GitHub
parent 8b140306ef
commit ca9ec3e18a
6 changed files with 400 additions and 388 deletions

View File

@ -2,8 +2,6 @@ import { Injectable } from '@angular/core';
import { BackButtonDetail, Platforms, getPlatforms, isPlatform } from '@ionic/core';
import { Subject, Subscription } from 'rxjs';
import { proxyEvent } from '../util/util';
export interface BackButtonEmitter extends Subject<BackButtonDetail> {
subscribeWithPriority(priority: number, callback: () => Promise<any> | void): Subscription;
}
@ -177,3 +175,10 @@ function readQueryParam(url: string, key: string) {
const results = regex.exec(url);
return results ? decodeURIComponent(results[1].replace(/\+/g, ' ')) : null;
}
function proxyEvent<T>(emitter: Subject<T>, el: EventTarget, eventName: string) {
el.addEventListener(eventName, (ev: Event | undefined | null) => {
// ?? cordova might emit "null" events
emitter.next(ev != null ? (ev as any).detail as T : undefined);
});
}