diff --git a/package.json b/package.json index aad5419fb..7b7bcdfe9 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "babel-register": "^6.22.0", "bluebird": "^3.4.5", "chalk": "^2.1.0", + "generator-angular-fullstack-component": "~1.0.1", "glob": "^7.0.5", "gulp-eslint": "^3.0.1", "gulp-filter": "^5.0.0", @@ -57,7 +58,7 @@ "lodash": "^4.17.4", "semver": "^5.1.0", "underscore.string": "^3.1.1", - "yeoman-generator": "^1.1.1", + "yeoman-generator": "2.0.4", "yeoman-welcome": "^1.0.1" }, "devDependencies": { @@ -78,11 +79,12 @@ "gulp-conventional-changelog": "^1.1.0", "gulp-gh-pages": "^0.5.4", "gulp-if": "^2.0.1", - "gulp-mocha": "^4.3.1", + "gulp-mocha": "^6.0.0", "gulp-plumber": "^1.1.0", "gulp-util": "^3.0.7", "jit-grunt": "~0.10.0", "lazypipe": "^1.0.1", + "mem-fs-editor": "4.0.0", "merge-stream": "^1.0.0", "minimatch": "^3.0.2", "mocha": "^3.1.2", @@ -91,8 +93,8 @@ "run-sequence": "^2.1.0", "shelljs": "^0.7.5", "should": "^12.0.0", - "yeoman-assert": "^3.0.0", - "yeoman-test": "~1.7.0" + "yeoman-assert": "^3.1.1", + "yeoman-test": "^1.7.2" }, "peerDependencies": { "yo": ">= 1.7.1" diff --git a/src/generators/app/index.js b/src/generators/app/index.js index b297b15f7..ce9793c6a 100644 --- a/src/generators/app/index.js +++ b/src/generators/app/index.js @@ -387,68 +387,40 @@ export class Generator extends Base { this.config.set('filters', this.filters); this.config.save(); }, - // TODO: switch to ng2 component generator - // ngComponent: function() { - // if(this.skipConfig) return; - // var appPath = 'client/app/'; - // var extensions = []; - // var filters = [ - // 'ngroute', - // 'uirouter', - // 'jasmine', - // 'mocha', - // 'expect', - // 'should' - // ].filter(v => this.filters[v]); - - // if(this.filters.ngroute) filters.push('ngroute'); - // if(this.filters.uirouter) filters.push('uirouter'); - // if(this.filters.babel) extensions.push('babel'); - // if(this.filters.ts) extensions.push('ts'); - // if(this.filters.js) extensions.push('js'); - // if(this.filters.html) extensions.push('html'); - // if(this.filters.pug) extensions.push('pug'); - // if(this.filters.css) extensions.push('css'); - // if(this.filters.stylus) extensions.push('styl'); - // if(this.filters.sass) extensions.push('scss'); - // if(this.filters.less) extensions.push('less'); - - // filters.push('es6'); // Generate ES6 syntax code - // filters.push('webpack'); // Generate ES6 Module imports/exports - - // this.composeWith('ng-component', { - // options: { - // 'routeDirectory': appPath, - // 'directiveDirectory': appPath, - // 'filterDirectory': appPath, - // 'serviceDirectory': appPath, - // 'componentDirectory': `${appPath}components/`, - // 'filters': filters, - // 'extensions': extensions, - // 'basePath': 'client', - // 'forceConfig': this.forceConfig - // } - // }, { local: require.resolve('generator-ng-component/generators/app/index.js') }); - // }, - // ngModules: function() { - // var angModules = [ - // `'${this.scriptAppName}.constants'`, - // "'ngCookies'", - // "'ngResource'", - // "'ngSanitize'" - // ]; - // if(this.filters.ngroute) angModules.push("'ngRoute'"); - // if(this.filters.socketio) angModules.push("'btford.socket-io'"); - // if(this.filters.uirouter) angModules.push("'ui.router'"); - // if(this.filters.uibootstrap) angModules.push("'ui.bootstrap'"); - // if(this.filters.auth) { - // angModules.unshift(`'${this.scriptAppName}.admin'`); - // angModules.unshift(`'${this.scriptAppName}.auth'`); - // angModules.push("'validation.match'"); - // } - - // this.angularModules = '\n ' + angModules.join(',\n ') +'\n'; - // } + angularComponent: function() { + if(this.skipConfig) return; + var appPath = 'client/app/'; + var extensions = []; + var filters = [ + 'jasmine', + 'mocha', + 'expect', + 'should' + ].filter(v => this.filters[v]); + + if(this.filters.babel) extensions.push('babel'); + if(this.filters.ts) extensions.push('ts'); + if(this.filters.js) extensions.push('js'); + if(this.filters.html) extensions.push('html'); + if(this.filters.pug) extensions.push('pug'); + if(this.filters.css) extensions.push('css'); + if(this.filters.stylus) extensions.push('styl'); + if(this.filters.sass) extensions.push('scss'); + if(this.filters.less) extensions.push('less'); + + this.composeWith(require.resolve('generator-angular-fullstack-component/generators/app/index.js'), { + appModulePath: `${appPath}app.module.${this.filters.ts ? 'ts' : 'js'}`, + routeDirectory: appPath, + directiveDirectory: appPath, + filterDirectory: appPath, + serviceDirectory: appPath, + componentDirectory: `${appPath}components/`, + filters: filters, + extensions: extensions, + basePath: 'client', + forceConfig: this.forceConfig + }); + }, }; } diff --git a/src/generators/route/index.js b/src/generators/route/index.js index bfe6e4c26..3be676aa1 100644 --- a/src/generators/route/index.js +++ b/src/generators/route/index.js @@ -1,10 +1,12 @@ -'use strict'; -var yeoman = require('yeoman-generator'); +import Generator from 'yeoman-generator'; +import { Base } from '../generator-base'; -var Generator = yeoman.Base.extend({ - compose: function() { - this.composeWith('ng-component:route', {arguments: this.arguments}, { local: require.resolve('generator-ng-component/generators/route') }); +class RouteGenerator extends Base { + compose() { + this.composeWith( + require.resolve('generator-angular-fullstack-component/generators/route'), + {arguments: this.arguments}, + ); } -}); - -module.exports = Generator; +} +module.exports = RouteGenerator;