mirror of
https://github.com/react-webpack-generators/generator-react-webpack.git
synced 2025-12-08 18:01:59 +00:00
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
'use strict';
|
|
let generator = require('yeoman-generator');
|
|
let utils = require('../../utils/all');
|
|
|
|
module.exports = generator.Base.extend({
|
|
|
|
constructor: function() {
|
|
generator.Base.apply(this, arguments);
|
|
this.argument('name', { type: String, required: true });
|
|
this.option('stateless', {
|
|
desc: 'Create a stateless component instead of a full one',
|
|
defaults: false
|
|
});
|
|
},
|
|
|
|
writing: function() {
|
|
|
|
let settings = utils.yeoman.getAllSettingsFromComponentName(this.name, this.config.get('style'));
|
|
let componentType = this.options.stateless ? 'Stateless' : 'Base';
|
|
|
|
// Create the style template
|
|
this.fs.copyTpl(
|
|
this.templatePath(`styles/Component${settings.style.suffix}`),
|
|
this.destinationPath(settings.style.path + settings.style.fileName),
|
|
settings
|
|
);
|
|
|
|
// Create the component
|
|
this.fs.copyTpl(
|
|
this.templatePath(`components/${componentType}.js`),
|
|
this.destinationPath(settings.component.path + settings.component.fileName),
|
|
settings
|
|
);
|
|
|
|
// Create the unit test
|
|
this.fs.copyTpl(
|
|
this.templatePath('tests/Base.js'),
|
|
this.destinationPath(settings.test.path + settings.test.fileName),
|
|
settings
|
|
);
|
|
}
|
|
});
|