@@ -4,6 +4,7 @@ import util from 'util';
4
4
import path from 'path' ;
5
5
import lodash from 'lodash' ;
6
6
import s from 'underscore.string' ;
7
+ import semver from 'semver' ;
7
8
import yoWelcome from 'yeoman-welcome' ;
8
9
import * as genUtils from './util' ;
9
10
@@ -13,6 +14,12 @@ lodash.mixin(s.exports());
13
14
export function genBase ( self ) {
14
15
self = self || this ;
15
16
17
+ let yoCheckPromise = genUtils . runCmd ( 'yo --version' ) . then ( stdout => {
18
+ if ( ! semver . satisfies ( semver . clean ( stdout ) , '>= 1.7.1' ) ) {
19
+ throw new Error ( 'ERROR: You need to update yo to at least 1.7.1 (npm i -g yo)' ) ;
20
+ }
21
+ } ) ;
22
+
16
23
self . lodash = lodash ;
17
24
self . yoWelcome = yoWelcome ;
18
25
@@ -46,19 +53,21 @@ export function genBase(self) {
46
53
self . processDirectory = genUtils . processDirectory . bind ( self ) ;
47
54
// rewrite a file in place
48
55
self . rewriteFile = genUtils . rewriteFile ;
56
+
57
+ return yoCheckPromise ;
49
58
}
50
59
51
60
export function genNamedBase ( self ) {
52
61
self = self || this ;
53
62
54
63
// extend genBase
55
- genBase ( self ) ;
56
-
57
- var name = self . name . replace ( / \/ / g, '-' ) ;
64
+ return genBase ( self ) . then ( ( ) => {
65
+ var name = self . name . replace ( / \/ / g, '-' ) ;
58
66
59
- self . cameledName = lodash . camelize ( name ) ;
60
- self . classedName = lodash . classify ( name ) ;
67
+ self . cameledName = lodash . camelize ( name ) ;
68
+ self . classedName = lodash . classify ( name ) ;
61
69
62
- self . basename = path . basename ( self . name ) ;
63
- self . dirname = ( self . name . indexOf ( '/' ) >= 0 ) ? path . dirname ( self . name ) : self . name ;
70
+ self . basename = path . basename ( self . name ) ;
71
+ self . dirname = ( self . name . indexOf ( '/' ) >= 0 ) ? path . dirname ( self . name ) : self . name ;
72
+ } ) ;
64
73
}
0 commit comments