Skip to content

Commit 1d4ce11

Browse files
committed
feat(gen:app): run all client files through Babel & JS Beautifier
1 parent 5022763 commit 1d4ce11

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

Diff for: app/generator.js

+70
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import {Base} from 'yeoman-generator';
77
import {genBase} from '../generator-base';
88
import insight from '../insight-init';
99
import {exec} from 'child_process';
10+
import babelStream from 'gulp-babel';
11+
import beaufityStream from 'gulp-beautify';
12+
import filter from 'gulp-filter';
1013

1114
export default class Generator extends Base {
1215
constructor(...args) {
@@ -119,6 +122,12 @@ export default class Generator extends Base {
119122
}[val];
120123
}
121124
}, {
125+
// TODO: enable once Babel setup supports Flow
126+
// type: 'confirm',
127+
// name: 'flow',
128+
// message: 'Would you like to use Flow types with Babel?',
129+
// when: answers => answers.transpiler === 'babel'
130+
// }, {
122131
type: 'list',
123132
name: 'markup',
124133
message: 'What would you like to write markup with?',
@@ -152,6 +161,9 @@ export default class Generator extends Base {
152161
this.filters[answers.transpiler] = true;
153162
insight.track('transpiler', answers.transpiler);
154163

164+
this.filters.flow = !!answers.flow;
165+
insight.track('flow', !!answers.flow);
166+
155167
this.filters[answers.markup] = true;
156168
insight.track('markup', answers.markup);
157169

@@ -425,6 +437,64 @@ export default class Generator extends Base {
425437
get writing() {
426438
return {
427439
generateProject: function() {
440+
/**
441+
* var tap = require('gulp-tap');
442+
this.registerTransformStream([
443+
extensionFilter,
444+
tap(function(file, t) {
445+
var contents = file.contents.toString();
446+
contents = beautify_js(contents, config);
447+
file.contents = new Buffer(contents);
448+
}),
449+
//prettifyJs(config),
450+
extensionFilter.restore
451+
]);
452+
*/
453+
454+
let babelPlugins = [
455+
'babel-plugin-syntax-flow',
456+
'babel-plugin-syntax-class-properties'
457+
];
458+
459+
// TODO: enable once Babel setup supports Flow
460+
// if(this.filters.babel && !this.filters.flow) {
461+
babelPlugins.push('babel-plugin-transform-flow-strip-types');
462+
// }
463+
464+
const jsFilter = filter(['client/**/*.js'], {restore: true});
465+
this.registerTransformStream([
466+
jsFilter,
467+
babelStream({
468+
plugins: babelPlugins.map(require.resolve),
469+
/* Babel get's confused about these if you're using an `npm link`ed
470+
generator-angular-fullstack, thus the `require.resolve` */
471+
// retainLines: true,
472+
babelrc: false // don't grab the generator's `.babelrc`
473+
}),
474+
beaufityStream({
475+
"indent_size": 2,
476+
"indent_char": " ",
477+
"indent_level": 0,
478+
"indent_with_tabs": false,
479+
"preserve_newlines": true,
480+
"max_preserve_newlines": 10,
481+
"jslint_happy": false,
482+
"space_after_anon_function": false,
483+
"brace_style": "collapse",
484+
"keep_array_indentation": false,
485+
"keep_function_indentation": false,
486+
"space_before_conditional": true,
487+
"break_chained_methods": true,
488+
"eval_code": false,
489+
"unescape_strings": false,
490+
"wrap_line_length": 100,
491+
"wrap_attributes": "auto",
492+
"wrap_attributes_indent_size": 4,
493+
"end_with_newline": true
494+
}),
495+
jsFilter.restore
496+
]);
497+
428498
let self = this;
429499
this.sourceRoot(path.join(__dirname, './templates'));
430500
this.processDirectory('.', '.', function(dest) {

Diff for: package.json

+6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,18 @@
3535
},
3636
"dependencies": {
3737
"babel-core": "^6.7.0",
38+
"babel-plugin-syntax-class-properties": "^6.5.0",
39+
"babel-plugin-syntax-flow": "^6.5.0",
3840
"babel-plugin-transform-class-properties": "^6.6.0",
41+
"babel-plugin-transform-flow-strip-types": "^6.7.0",
3942
"babel-preset-es2015": "^6.6.0",
4043
"babel-register": "^6.6.5",
4144
"chalk": "^1.1.0",
4245
"generator-ng-component": "~0.2.1",
4346
"glob": "^7.0.3",
47+
"gulp-babel": "^6.1.2",
48+
"gulp-beautify": "^2.0.0",
49+
"gulp-filter": "^4.0.0",
4450
"insight": "~0.8.1",
4551
"lodash": "^4.6.1",
4652
"underscore.string": "^3.1.1",

0 commit comments

Comments
 (0)