1- const puppeteer = require ( " puppeteer" ) ;
2- const cache = require ( " ./cache" ) ;
1+ const puppeteer = require ( ' puppeteer' ) ;
2+ const cache = require ( ' ./cache' ) ;
33
44module . exports = async function gatherTelemetry ( url ) {
55 const browser = await puppeteer . launch ( { ignoreHTTPSErrors : true } ) ;
66 const page = await browser . newPage ( ) ;
77
88 await page . goto ( url ) ;
99
10- await page . exposeFunction ( " logErrorInNodeProcess" , message => {
10+ await page . exposeFunction ( ' logErrorInNodeProcess' , message => {
1111 console . error ( message ) ; // eslint-disable-line no-console
1212 } ) ;
1313
1414 // Get the "viewport" of the page, as reported by the page.
1515 const telemetry = await page . evaluate ( ( ) => {
16- const SKIPPED_MODULES = [ " fetch/ajax" ] ;
16+ const SKIPPED_MODULES = [ ' fetch/ajax' ] ;
1717
1818 /* globals window, Ember */
1919 let telemetry = { } ;
@@ -35,9 +35,7 @@ module.exports = async function gatherTelemetry(url) {
3535 }
3636 } catch ( error ) {
3737 // log the error, but continue
38- window . logErrorInNodeProcess (
39- `error evaluating \`${ modulePath } \`: ${ error . message } `
40- ) ;
38+ window . logErrorInNodeProcess ( `error evaluating \`${ modulePath } \`: ${ error . message } ` ) ;
4139 }
4240 }
4341
@@ -49,18 +47,15 @@ module.exports = async function gatherTelemetry(url) {
4947 */
5048 function getType ( object ) {
5149 const types = [
52- " Application" ,
53- " Controller" ,
54- " Route" ,
55- " Component" ,
56- " Service" ,
57- " Router" ,
58- " Engine"
50+ ' Application' ,
51+ ' Controller' ,
52+ ' Route' ,
53+ ' Component' ,
54+ ' Service' ,
55+ ' Router' ,
56+ ' Engine' ,
5957 ] ;
60- return (
61- types . find ( type => Ember [ type ] && object instanceof Ember [ type ] ) ||
62- "EmberObject"
63- ) ;
58+ return types . find ( type => Ember [ type ] && object instanceof Ember [ type ] ) || 'EmberObject' ;
6459 }
6560
6661 /**
@@ -85,32 +80,24 @@ module.exports = async function gatherTelemetry(url) {
8580 const { source } = meta ;
8681 const type = getType ( source ) ;
8782
88- const ownProperties = Object . keys ( source ) . filter (
89- key => ! [ "_super" , "actions" ] . includes ( key )
90- ) ;
83+ const ownProperties = Object . keys ( source ) . filter ( key => ! [ '_super' , 'actions' ] . includes ( key ) ) ;
9184
9285 const ownActions = source . actions ? Object . keys ( source . actions ) : [ ] ;
9386
9487 const observedProperties = Object . keys ( meta . _watching || { } ) ;
9588
96- const overriddenProperties = ownProperties . filter ( key =>
97- isOverridden ( meta . parent , key )
98- ) ;
89+ const overriddenProperties = ownProperties . filter ( key => isOverridden ( meta . parent , key ) ) ;
9990
100- const overriddenActions = ownActions . filter ( key =>
101- isActionOverridden ( meta . parent , key )
102- ) ;
91+ const overriddenActions = ownActions . filter ( key => isActionOverridden ( meta . parent , key ) ) ;
10392
10493 const computedProperties = [ ] ;
10594 meta . forEachDescriptors ( ( name , desc ) => {
10695 const descProto = Object . getPrototypeOf ( desc ) || { } ;
107- const constructorName = descProto . constructor
108- ? descProto . constructor . name
109- : "" ;
96+ const constructorName = descProto . constructor ? descProto . constructor . name : '' ;
11097 if (
11198 desc . enumerable &&
11299 ownProperties . includes ( name ) &&
113- constructorName === " ComputedProperty"
100+ constructorName === ' ComputedProperty'
114101 ) {
115102 computedProperties . push ( name ) ;
116103 }
@@ -119,16 +106,16 @@ module.exports = async function gatherTelemetry(url) {
119106 const { offProperties, unobservedProperties } = ownProperties . reduce (
120107 ( { offProperties, unobservedProperties } , key ) => {
121108 const { type, events } = getListenerData ( meta . parent , key ) ;
122- if ( type === " event" ) {
109+ if ( type === ' event' ) {
123110 offProperties [ key ] = events ;
124- } else if ( type === " observer" ) {
111+ } else if ( type === ' observer' ) {
125112 unobservedProperties [ key ] = events ;
126113 }
127114 return { offProperties, unobservedProperties } ;
128115 } ,
129116 {
130117 offProperties : { } ,
131- unobservedProperties : { }
118+ unobservedProperties : { } ,
132119 }
133120 ) ;
134121
@@ -147,7 +134,7 @@ module.exports = async function gatherTelemetry(url) {
147134 overriddenProperties,
148135 ownProperties,
149136 type,
150- unobservedProperties
137+ unobservedProperties,
151138 } ;
152139 }
153140
@@ -162,24 +149,21 @@ module.exports = async function gatherTelemetry(url) {
162149 */
163150 function getListenerData ( map , key ) {
164151 while ( map ) {
165- let type = "event" ;
166- const events = parseListeners ( map . _listeners ) . reduce (
167- ( acc , [ event , , method ] ) => {
168- if ( method === key ) {
169- const [ observedProp , observerEvent ] = event . split ( ":" ) ;
170- if ( observerEvent ) {
171- type = "observer" ;
172- }
173- acc . push ( observedProp ) ;
152+ let type = 'event' ;
153+ const events = parseListeners ( map . _listeners ) . reduce ( ( acc , [ event , , method ] ) => {
154+ if ( method === key ) {
155+ const [ observedProp , observerEvent ] = event . split ( ':' ) ;
156+ if ( observerEvent ) {
157+ type = 'observer' ;
174158 }
175- return acc ;
176- } ,
177- [ ]
178- ) ;
159+ acc . push ( observedProp ) ;
160+ }
161+ return acc ;
162+ } , [ ] ) ;
179163 if ( events . length ) {
180164 return {
181165 type,
182- events
166+ events,
183167 } ;
184168 }
185169 map = map . parent ;
@@ -197,12 +181,12 @@ module.exports = async function gatherTelemetry(url) {
197181 function parseListeners ( listeners = [ ] , size = 4 ) {
198182 var result = [ ] ;
199183 if ( listeners . length ) {
200- if ( typeof listeners [ 0 ] === " object" ) {
184+ if ( typeof listeners [ 0 ] === ' object' ) {
201185 result = listeners . map ( ( { event, target, method, kind } ) => [
202186 event ,
203187 target ,
204188 method ,
205- kind
189+ kind ,
206190 ] ) ;
207191 } else {
208192 const input = listeners . slice ( 0 ) ;
@@ -257,7 +241,7 @@ module.exports = async function gatherTelemetry(url) {
257241 return telemetry ;
258242 } ) ;
259243
260- cache . set ( " telemetry" , JSON . stringify ( telemetry ) ) ;
244+ cache . set ( ' telemetry' , JSON . stringify ( telemetry ) ) ;
261245
262246 await browser . close ( ) ;
263247} ;
0 commit comments