From d5d9f0da7fa666cf1cdb24429ab43d63091ddeb5 Mon Sep 17 00:00:00 2001 From: James Daniels Date: Sat, 12 Oct 2019 19:27:40 +0100 Subject: [PATCH] Cleaned up and perf mixin nits --- .gitignore | 1 + addon/mixins/performance-route.ts | 30 ++++++++++++++---------------- initializers/emberfire.d.ts | 5 ----- mixins/.gitkeep | 0 mixins/analytics-route.d.ts | 7 ------- mixins/performance-route.d.ts | 7 ------- mixins/realtime-route.d.ts | 7 ------- 7 files changed, 15 insertions(+), 42 deletions(-) delete mode 100644 initializers/emberfire.d.ts create mode 100644 mixins/.gitkeep delete mode 100644 mixins/analytics-route.d.ts delete mode 100644 mixins/performance-route.d.ts delete mode 100644 mixins/realtime-route.d.ts diff --git a/.gitignore b/.gitignore index 81292fa0..ca6437a0 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ package.json.ember-try addon/**/*.js app/**/*.js adapters/*.d.ts +mixins/*.d.ts authenticators/*.d.ts authorizers/*.d.ts serializers/*.d.ts diff --git a/addon/mixins/performance-route.ts b/addon/mixins/performance-route.ts index 16132d82..8364ab79 100644 --- a/addon/mixins/performance-route.ts +++ b/addon/mixins/performance-route.ts @@ -1,7 +1,7 @@ import { inject as service } from '@ember/service'; import Mixin from '@ember/object/mixin'; import { performance } from 'firebase'; -import { Promise, reject } from 'rsvp'; +import { reject } from 'rsvp'; export default Mixin.create({ firebaseApp: service('firebase-app'), @@ -15,28 +15,26 @@ export default Mixin.create({ if (this.toString().indexOf("@route:application::") > 0) { throw "PerformanceRouteMixin does not work correctly in the application route" } }, beforeModel() { - // TODO promise proxy this.set('trace', this.get('firebaseApp').performance().then(perf => { const trace = perf.trace(`${this.toString()}:didTransition`); trace.start(); return trace; })); }, + routeDidChange() { + const router = this.get('router'); + router.removeObserver('currentRoute', this, this.routeDidChange); + const screen_name = router.currentRoute.name; + this.get('trace').then(trace => { + trace.putAttribute('url', router.currentURL); + // TODO allow name to be set + (trace as any).name = `${screen_name}:didTransition`; + trace.stop(); + this.set('trace', reject()); + }); + }, afterModel() { - const tracePromise = this.get('trace')!; const router = this.get('router'); - tracePromise.then((trace:performance.Trace|undefined) => { - // TODO figure out how to disconnect the routeDidChange listener - router.on('routeDidChange', () => { - if (trace) { - const screen_name = router.currentRouteName; - trace.putAttribute('url', router.currentURL); - (trace as any).name = `${screen_name}:didTransition`; - trace.stop(); - this.set('trace', reject()); - trace = undefined; - } - }); - }) + router.addObserver('currentRoute', this, this.routeDidChange); } }); \ No newline at end of file diff --git a/initializers/emberfire.d.ts b/initializers/emberfire.d.ts deleted file mode 100644 index e199f322..00000000 --- a/initializers/emberfire.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const _default: { - name: string; - initialize: (application: any) => void; -}; -export default _default; diff --git a/mixins/.gitkeep b/mixins/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/mixins/analytics-route.d.ts b/mixins/analytics-route.d.ts deleted file mode 100644 index 9fdbcad6..00000000 --- a/mixins/analytics-route.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Mixin from '@ember/object/mixin'; -declare const _default: Mixin<{ - firebaseApp: import("@ember/object/computed").default; - router: import("@ember/object/computed").default; - init(): void; -}, import("@ember/object").default>; -export default _default; diff --git a/mixins/performance-route.d.ts b/mixins/performance-route.d.ts deleted file mode 100644 index 9fdbcad6..00000000 --- a/mixins/performance-route.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Mixin from '@ember/object/mixin'; -declare const _default: Mixin<{ - firebaseApp: import("@ember/object/computed").default; - router: import("@ember/object/computed").default; - init(): void; -}, import("@ember/object").default>; -export default _default; diff --git a/mixins/realtime-route.d.ts b/mixins/realtime-route.d.ts deleted file mode 100644 index d1a46b53..00000000 --- a/mixins/realtime-route.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Mixin from '@ember/object/mixin'; -import DS from 'ember-data'; -declare const _default: Mixin<{ - afterModel(model: DS.Model): any; - deactivate(): any; -}, import("@ember/object").default>; -export default _default;