@@ -5,6 +5,7 @@ import path from 'path';
5
5
import chalk from 'chalk' ;
6
6
import { Base } from 'yeoman-generator' ;
7
7
import { genBase } from '../generator-base' ;
8
+ import insight from '../insight-init' ;
8
9
9
10
export default class Generator extends Base {
10
11
@@ -28,13 +29,30 @@ export default class Generator extends Base {
28
29
29
30
get initializing ( ) {
30
31
return {
31
-
32
32
init : function ( ) {
33
+ var cb = this . async ( ) ;
34
+
33
35
this . config . set ( 'generatorVersion' , this . rootGeneratorVersion ( ) ) ;
34
36
this . filters = { } ;
35
37
36
38
// init shared generator properies and methods
37
39
genBase ( this ) ;
40
+
41
+ if ( insight . optOut === undefined ) {
42
+ insight . askPermission ( null , ( err , optIn ) => {
43
+ if ( err || ! optIn ) return cb ( ) ;
44
+ insight . track ( 'generatorVersion' , this . rootGeneratorVersion ( ) ) ;
45
+ insight . track ( 'node' , process . version ) ;
46
+ exec ( 'npm --version' , ( err , stdin , stderr ) => {
47
+ if ( err || stderr . length > 0 ) return insight . track ( 'npm' , 'error' ) ;
48
+ else return insight . track ( 'npm' , stdin . toString ( ) . trim ( ) ) ;
49
+ } ) ;
50
+ insight . track ( 'platform' , process . platform ) ;
51
+ return cb ( ) ;
52
+ } ) ;
53
+ } else {
54
+ return cb ( ) ;
55
+ }
38
56
} ,
39
57
40
58
info : function ( ) {
@@ -55,7 +73,8 @@ export default class Generator extends Base {
55
73
} ] , function ( answers ) {
56
74
this . skipConfig = answers . skipConfig ;
57
75
58
- if ( this . skipConfig ) {
76
+ if ( this . skipConfig ) {
77
+ insight . track ( 'skipConfig' , 'true' ) ;
59
78
this . filters = existingFilters ;
60
79
61
80
this . scriptExt = this . filters . ts ? 'ts' : 'js' ;
@@ -65,6 +84,7 @@ export default class Generator extends Base {
65
84
this . filters . stylus ? 'styl' :
66
85
'css' ;
67
86
} else {
87
+ insight . track ( 'skipConfig' , 'false' ) ;
68
88
this . filters = { } ;
69
89
this . forceConfig = true ;
70
90
this . config . set ( 'filters' , this . filters ) ;
@@ -77,7 +97,6 @@ export default class Generator extends Base {
77
97
cb ( ) ;
78
98
}
79
99
}
80
-
81
100
} ;
82
101
}
83
102
@@ -133,14 +152,24 @@ export default class Generator extends Base {
133
152
return answers . bootstrap ;
134
153
}
135
154
} ] , function ( answers ) {
136
-
137
155
this . filters . js = true ;
138
156
this . filters [ answers . transpiler ] = true ;
157
+ insight . track ( 'transpiler' , answers . transpiler ) ;
158
+
139
159
this . filters [ answers . markup ] = true ;
160
+ insight . track ( 'markup' , answers . markup ) ;
161
+
140
162
this . filters [ answers . stylesheet ] = true ;
163
+ insight . track ( 'stylesheet' , answers . stylesheet ) ;
164
+
141
165
this . filters [ answers . router ] = true ;
166
+ insight . track ( 'router' , answers . router ) ;
167
+
142
168
this . filters . bootstrap = ! ! answers . bootstrap ;
169
+ insight . track ( 'bootstrap' , ! ! answers . bootstrap ) ;
170
+
143
171
this . filters . uibootstrap = ! ! answers . uibootstrap ;
172
+ insight . track ( 'uibootstrap' , ! ! answers . uibootstrap ) ;
144
173
145
174
this . scriptExt = answers . transpiler === 'ts' ? 'ts' : 'js' ;
146
175
this . templateExt = answers . markup ;
@@ -228,7 +257,11 @@ export default class Generator extends Base {
228
257
default : true
229
258
} ] , function ( answers ) {
230
259
if ( answers . socketio ) this . filters . socketio = true ;
260
+ insight . track ( 'socketio' , ! ! answers . socketio ) ;
261
+
231
262
if ( answers . auth ) this . filters . auth = true ;
263
+ insight . track ( 'auth' , ! ! answers . auth ) ;
264
+
232
265
if ( answers . odms && answers . odms . length > 0 ) {
233
266
var models ;
234
267
if ( ! answers . models ) {
@@ -241,15 +274,26 @@ export default class Generator extends Base {
241
274
answers . odms . forEach ( function ( odm ) {
242
275
this . filters [ odm ] = true ;
243
276
} . bind ( this ) ) ;
277
+ insight . track ( 'oauth' , ! ! answers . oauth ) ;
244
278
} else {
245
279
this . filters . noModels = true ;
246
280
}
281
+ insight . track ( 'odms' , answers . odms && answers . odms . length > 0 ) ;
282
+ insight . track ( 'mongoose' , ! ! this . filters . mongoose ) ;
283
+ insight . track ( 'mongooseModels' , ! ! this . filters . mongooseModels ) ;
284
+ insight . track ( 'sequelize' , ! ! this . filters . sequelize ) ;
285
+ insight . track ( 'sequelizeModels' , ! ! this . filters . sequelizeModels ) ;
286
+
247
287
if ( answers . oauth ) {
248
288
if ( answers . oauth . length ) this . filters . oauth = true ;
249
289
answers . oauth . forEach ( function ( oauthStrategy ) {
250
290
this . filters [ oauthStrategy ] = true ;
251
291
} . bind ( this ) ) ;
252
292
}
293
+ insight . track ( 'oauth' , ! ! this . filters . oauth ) ;
294
+ insight . track ( 'google-oauth' , ! ! this . filters [ 'googleAuth' ] ) ;
295
+ insight . track ( 'facebook-oauth' , ! ! this . filters [ 'facebookAuth' ] ) ;
296
+ insight . track ( 'twitter-oauth' , ! ! this . filters [ 'twitterAuth' ] ) ;
253
297
254
298
cb ( ) ;
255
299
} . bind ( this ) ) ;
@@ -295,13 +339,16 @@ export default class Generator extends Base {
295
339
}
296
340
} ] , function ( answers ) {
297
341
this . filters [ answers . buildtool ] = true ;
342
+ insight . track ( 'buildtool' , answers . buildtool ) ;
298
343
299
344
this . filters [ answers . testing ] = true ;
345
+ insight . track ( 'testing' , answers . testing ) ;
300
346
if ( answers . testing === 'mocha' ) {
301
347
this . filters . jasmine = false ;
302
348
this . filters . should = false ;
303
349
this . filters . expect = false ;
304
350
this . filters [ answers . chai ] = true ;
351
+ insight . track ( 'chai-assertions' , answers . chai ) ;
305
352
}
306
353
if ( answers . testing === 'jasmine' ) {
307
354
this . filters . mocha = false ;
0 commit comments