@@ -4,6 +4,7 @@ import util from 'util';
44import path from 'path' ;
55import lodash from 'lodash' ;
66import s from 'underscore.string' ;
7+ import semver from 'semver' ;
78import yoWelcome from 'yeoman-welcome' ;
89import * as genUtils from './util' ;
910
@@ -13,6 +14,12 @@ lodash.mixin(s.exports());
1314export function genBase ( self ) {
1415 self = self || this ;
1516
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+
1623 self . lodash = lodash ;
1724 self . yoWelcome = yoWelcome ;
1825
@@ -46,19 +53,21 @@ export function genBase(self) {
4653 self . processDirectory = genUtils . processDirectory . bind ( self ) ;
4754 // rewrite a file in place
4855 self . rewriteFile = genUtils . rewriteFile ;
56+
57+ return yoCheckPromise ;
4958}
5059
5160export function genNamedBase ( self ) {
5261 self = self || this ;
5362
5463 // 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, '-' ) ;
5866
59- self . cameledName = lodash . camelize ( name ) ;
60- self . classedName = lodash . classify ( name ) ;
67+ self . cameledName = lodash . camelize ( name ) ;
68+ self . classedName = lodash . classify ( name ) ;
6169
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+ } ) ;
6473}
0 commit comments