Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cli(refactor): improve folder structure #371

Merged
merged 9 commits into from
Apr 2, 2018

Conversation

evenstensberg
Copy link
Member

What kind of change does this PR introduce?
Refactoring

Did you add tests for your changes?
Yes
If relevant, did you update the documentation?
N/A
Summary
Improves folder structure and removes boilerplate code.

Does this PR introduce a breaking change?
No

Other information
<3

) {
module.exports = function migrate(...args) {
const filePaths = args ? args.slice(2).pop() : null;
const currentConfigPath = args.slice(2).length === 1 ? [] : [filePaths];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed. filePaths will be a string and we can check for that directly. No need to make an array and then using element at 0th index. This will only be useful if we're supporting more than one args.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we're supporting more than one args

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In migrate? What's the second argument and where is it used in the code?

Copy link
Contributor

@ematipico ematipico Mar 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to leave the functionality open to multiple arguments :)
The comments say that the second argument is the output path

module.exports = function migrate(...args) {
const filePaths = args ? args.slice(2).pop() : null;
const currentConfigPath = args.slice(2).length === 1 ? [] : [filePaths];
if (!filePaths.length) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(!filePaths || filePaths.length) since filePath can be undefined.
^In case of string, currently it's an array.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its a string now, naming is a bit weird

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on line 28, filePaths can be null. There's need for a second check: filePaths.length could throw and error

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bingo! @ematipico Good catch

if (!filePaths.length) {
throw new Error("Please specify a path to your webpack config");
}
const outputConfigPath = path.resolve(process.cwd(), filePaths[0]);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to create redundancy for config paths if both are same.
We can do just one variable with configPath instead of inputConfigPath and outputConfigPath.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, make sure to update this line as well.

fs.readFile(currentConfigPath, "utf8", (err, content) => {

This might have broken the command as in previous code currentConfigPath was a path.resolve and currently, it's an array.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above

@@ -36,7 +37,7 @@ const LoaderGenerator = webpackGenerator(
validate: str => str.length > 0
}
],
path.join(__dirname, "templates"),
path.resolve(__dirname, "..", "generate-loader"),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#369 💔

lib/index.js Outdated
if (!command) {
throw new Error(`Unknown command ${command} found`);
} else if (command == "serve") {
return require(`./commands/${command}`).serve();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! ❤️

@montogeek
Copy link
Member

What about #353 ?

module.exports = function migrate(...args) {
const filePaths = args ? args.slice(2).pop() : null;
const currentConfigPath = args.slice(2).length === 1 ? [] : [filePaths];
if (!filePaths.length) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on line 28, filePaths can be null. There's need for a second check: filePaths.length could throw and error

}
return require(`./commands/${command}`)(...args);
Copy link
Contributor

@ematipico ematipico Mar 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would throw an error no file found. Are we OK with this? Or do we want to throw a better error message?
This is more as a comment, not a blocking change

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check for require and then doing this would make sense

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, we've defined all the commands in webpack/bin/webpack.js, rest will the webpack file take care of. What do you mean with check for require?

Copy link
Member

@sendilkumarn sendilkumarn Apr 1, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like if(require(...)) and do check or pass in (..args)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we put this require request in try catch block? and in catch block throw new Error stating that command not found, otherwise the error thrown will be that module was not found.

Copy link
Member

@sendilkumarn sendilkumarn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have to do something about naming here, it should reflect what it does.

Apart from few minor comments / suggestions. This looks good to me.

But this will definitely break lerna PR. What is the status on that one? Are we gonna merge that?

* @returns {Function} creator/npmPackagesExists - returns an installation of the package,
* followed up with a yeoman instance of that if there's packages. If not, it creates a defaultGenerator
*/

module.exports = function initializeInquirer(pkg) {
module.exports = function initializeInquirer(...args) {
const popArgs = args ? args.slice(2).pop() : null;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this means, popArgs -> Do you mean you want to pop the arguments right. ( more than one)
The 3rd argument will always have all the packages that you want to check or the packages are in argument 3, 4, 5?

module.exports = function migrate(...args) {
const filePaths = args ? args.slice(2).pop() : null;
const currentConfigPath = args.slice(2).length === 1 ? [] : [filePaths];
if (!filePaths.length) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bingo! @ematipico Good catch

@@ -1,6 +1,6 @@
"use strict";

const makeLoaderName = require("./loader-generator").makeLoaderName;
const { makeLoaderName } = require("./loader-generator");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love these changes ❤️

}
return require(`./commands/${command}`)(...args);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check for require and then doing this would make sense

@webpack-bot
Copy link

@ev1stensberg Thanks for your update.

I labeled the Pull Request so reviewers will review it again.

@ematipico Please review the new changes.

@evenstensberg
Copy link
Member Author

PTAL. @montogeek lerna will stay, temporary fix

@webpack-bot
Copy link

Thank you for your pull request! The most important CI builds succeeded, we’ll review the pull request soon.

.then(ans => {
if (!ans["confirmPath"]) {
console.log(chalk.red("✖ ︎Migration aborted due no output path"));
process.exitCode = 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think without return, this might continue with migration.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

screenshot_20180401_165304

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Migration aborted due no output path

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

@dhruvdutt dhruvdutt Apr 1, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true but exitCode won't exit the process as it doesn't call the exit() method implicitly. To exit the process we'll need to do:

process.exitCode = 1;
process.exit(); // this will exit with exit code 1

or

process.exit(1); // this will also exit with exit code 1

or add a return;.

Without exiting, the process will continue and do the migration even after the chalk error log.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dhruvdutt is right, we need to abort from the chain of promises. But return won't help. I'd suggest to throw an error and handle it inside the catch

*/
module.exports = function migrate(...args) {
const filePaths = args ? args.slice(3) : null;
if (!filePaths.length) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double check here

if (!filePaths || !filePaths.length)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually tested this manually and we don't need that double check. It's going to be an empty array anyway if filepaths is empty

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So remove the ternary operator or fall back the assignment to an empty array. It might work but people that see the code might think that is wrong. Or add a comment

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

module.exports = function migrate(...args) {
const filePaths = args ? args.slice(3) : null;
if (!filePaths.length) {
throw new Error("Please specify a path to your webpack config");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of throwing an error which generates a long non-useful (in this case) stack trace, how about using chalk to show a one-line error message and exit the process gracefully? 😉

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stack traces are good for us when people submit bugs. Console.errors when we're inside a promise

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ugly though, error msg is intuitive enough for us to debug

Copy link
Contributor

@ematipico ematipico Apr 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah but in here we are intentionally showing an error to the user, not an error due to a bug in our code. I think we should separate the two concerns

Copy link
Member

@dhruvdutt dhruvdutt Apr 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm convinced either way. 😸

@evenstensberg
Copy link
Member Author

PTAL

Copy link
Member

@dhruvdutt dhruvdutt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

Copy link
Member

@sendilkumarn sendilkumarn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

const validate = require("webpack").validate;
const WebpackOptionsValidationError = require("webpack")
.WebpackOptionsValidationError;
const { validate } = require("webpack");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: can we merge this together?

Copy link
Member

@nveenjain nveenjain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 thing we could do, otherwise LGTM.

}
return require(`./commands/${command}`)(...args);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we put this require request in try catch block? and in catch block throw new Error stating that command not found, otherwise the error thrown will be that module was not found.

@evenstensberg evenstensberg merged commit f2e62f5 into master Apr 2, 2018
@evenstensberg evenstensberg deleted the feat/improve-structure branch April 2, 2018 18:10
@evenstensberg
Copy link
Member Author

🎉 This PR is included in version 2.1.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

evenstensberg added a commit that referenced this pull request May 14, 2018
* fix(loader,plugin): fix generators path bug

* cli(refactor): improve folder structure (#371)

* cli(refactor): improve folder structure

* chore(linting): fix linter errors

* cli(filepath): use local import instead

* cli(migrate): refactor error handling

* chore(review): fix review comments

* chore(review): fix review comments

* chore(review): fix review comments

* chore(version): v.2.0.14

* Add break as commit type and listed the type of commit in the documentation (#379)

* docs(commits): listed the list of type of commits available

* cli(init): mode support to config (#364)

* cli(init): mode support to config

* cli(bugfix): Allow mode "none" in CLI (#381)

* cli(init): use extractMiniCSSPlugin (#363)

* cli(init): skip redundant question

* cli(init): use mini-css-extract-plugin

* Retrieve information for CLI option from webpack schema options file (#392)

* cli(refactor): fetch available modes directly from webpack options schema

* cli(refactor): Retrieve information from webpackOptionSchema

* cli(add): write configuration to yeoman file (#348)

* misc(add): variable parity, prettify

* cli(add): write config to yeoman-rc

* misc(add): improve generator questions

* fix(init): output file name for single output (#403)

improved output filename

* cli(migrate): Update migration question (#402)

* cli(init): webpack4 ready (#356)

* cli(init): webpack4 ready

* cli(init): remove unused variable, still @next on etwp

* cli(init): Allow to use default entry in `init`

* cli(init): Fix typo in comment

* cli(init): Optimization transform and tests

* cli(init): Fix non-optimized option for splitChunks

* cli(init): Add cachingGroup per entry, don't show name in prod

* cli(init): Add cachingGroup's defaults, fix entry

* cli(init): Add a link to where the defaults live

* cli(init): Remove default caching group definition from example

* Add NoEmitOnErrorsPlugin transformation (#399)

* ast(migrate): handle no emit on error

* ast(migrate): handle module concatenation and named modules

* ast(migrate): handle module concatenation and named modules

* fix(ast): checks validity of an identifier (#360)

added test cases for validate identifier

* cli(entry): quotes sanitization (#337)

* chore: minor doc fixes

* cli(entry): quotes sanitization

* tests(entry): add test case for double quotes

* tests(entry): update snapshots

* misc(utils): entry - variable parity

* misc(prop-types): sort

* cli(entry): multiple entries quotes sanitization

* chore(versioning): v 2.0.15

* chore(versioning): push new package version

* cli(fix): remove reference to specific version during migration (#410)

* fix: remove reference to specific version during migration

* fix: rephrase update message

* chore(docs): updated old references to the extract text plugin (#412)

* chore(dev): added break to the list of type of commit

* init(fix): removed references to extract text plugin

* fix(commit): rollback

* cli(migration): update UglifyJS transformation (#416)

* cli(migration): Update UglifyJS migration file to fit webpack4 configuration

* cli(migration): Add cases where require variable does not need to exist

* cli(migration): Add transformation for usage of webpack.otimization.UglifyPlugin

* cli(tests): Update test snapshots after updating transformation

* cli(fix): fix expressionContent being null

* cli(refactor): remove plugins array if empty

Created function on ast-utils so every other transformation can use this.

* tests: add tests for new ast-utils method

* fix: fix test names and jsdoc

* fix: update maxSize for utils folder

* ast(cli): Recursively parse AST (#341)

* ast(refactor): wip refactor

* ast(refactor): wip refactor

* ast(init): refactor

* test(refactor): refactor test suite

* tests(define): swap args

* ast(parsing): refactor stuff

* ast(init): refactor

* ast(init): refactor tests

* chore(tests): remove some unneeded tests

* chore(pkg): update package.json

* chore(project): clear up project structure

* chore(cli): remove unneded files

* chore(git): add gitignore to yeoman file

* chore(deps): update pkg.json

* tests(snapshots): update snapshots

* tests(jest): use empty module for snapshots

* tests(snap): only test one prop

* chore(publishing): add semantic-release (#415)

* chore(release): [WIP] add semantic-release

* test(ci): wip

* test(ci): add node versions

* test(ci): remove extra test

* tests(ci): revise

* tests(ci): only push to npm on master

* tests(ci): use matrix on jobs

* tests(ci): revise

* tests(ci): update

* tests(ci): test

* tests(ci): test

* tests(ci): p

* tests(ci): update travis.yml

* chore(release): revise travis

* misc(yeoman): update yeoman

* chore(travis): revise travis

* misc(travis): revise travis.yml

* chore(travis): remove redundant code

* chore(pkg): add keywords

* 2.1.1

* 2.1.2

* cli(cmds): revise yargs command (#422)

* use yargs.command instead of yargs.option for sub-commands

* cli(node): Add node flags to CLI (#377)

* feat: add support for node flags

* tests: Fix node-flags test

* misc: Fix test failing due to not-found webpack-cli

* misc: remove comment

* misc: refactor removing unecessary args

* tests: add more tests to prevent argument collision

* cli(cmds): remove strict

* fix(node): remove node option for now

* chore(lerna): refactor

* chore(lerna): refactor

* chore(refactor): refactor stuff

* chore(package): update pkg.lock

* chore(templates): Update issue templates (#432)

Adds fancy templates

* ast(init): add topScope prop

* ast(merge): re-add merge prop

* cli(lerna): refactor

* chore(lerna): refactor

* chore(lerna): update

* chore(lint): revise

* chore(refactor): refactor

* chore(tests): use lerna for tests

* chore(travis): don't cache me outside

* chore(pkg): remove prefer global

* chore(release): v.2.1.3

* chore(package.lock): update pkg.lock

* fix(loader,plugin): fix generators path bug

* chore(version): v.2.0.14

* Add break as commit type and listed the type of commit in the documentation (#379)

* docs(commits): listed the list of type of commits available

* cli(bugfix): Allow mode "none" in CLI (#381)

* cli(init): use extractMiniCSSPlugin (#363)

* cli(init): skip redundant question

* cli(init): use mini-css-extract-plugin

* Retrieve information for CLI option from webpack schema options file (#392)

* cli(refactor): fetch available modes directly from webpack options schema

* cli(refactor): Retrieve information from webpackOptionSchema

* cli(add): write configuration to yeoman file (#348)

* misc(add): variable parity, prettify

* cli(add): write config to yeoman-rc

* misc(add): improve generator questions

* fix(init): output file name for single output (#403)

improved output filename

* cli(migrate): Update migration question (#402)

* fix(ast): checks validity of an identifier (#360)

added test cases for validate identifier

* chore(versioning): v 2.0.15

* chore(versioning): push new package version

* cli(fix): remove reference to specific version during migration (#410)

* fix: remove reference to specific version during migration

* fix: rephrase update message

* chore(docs): updated old references to the extract text plugin (#412)

* chore(dev): added break to the list of type of commit

* init(fix): removed references to extract text plugin

* fix(commit): rollback

* misc(yeoman): update yeoman

* cli(cmds): revise yargs command (#422)

* use yargs.command instead of yargs.option for sub-commands

* cli(node): Add node flags to CLI (#377)

* feat: add support for node flags

* tests: Fix node-flags test

* misc: Fix test failing due to not-found webpack-cli

* misc: remove comment

* misc: refactor removing unecessary args

* tests: add more tests to prevent argument collision

* cli(cmds): remove strict

* fix(node): remove node option for now

* chore(templates): Update issue templates (#432)

Adds fancy templates

* cli(lerna): refactor

* chore(lerna): refactor

* chore(pkg): remove prefer global

* chore(travis): Add encrypted private ssh key

* fix(pkg): test auto setup

* cli(init): revise installation steps (#441)

* cli(init): revise installation steps

* chore(formatting): format code

* cli(tests): refactor tests

* chore(travis): run lockfile cmds on tests (#444)

* Update dependencies to enable Greenkeeper 🌴 (#443)

chore(greenkeeper): Update dependencies to enable Greenkeeper 🌴

* chore(docs): update readme

* chore(travis): add Node.js 10 (#425)

* chore(travis): move npm ci to install task (#424)

* chore(travis): move npm ci to install task

* chore: trigger new build

* chore: upgrade Node.js for Appveyor to 8

* chore: remove redundanct npm install command
evenstensberg added a commit that referenced this pull request Jun 2, 2018
* chore(monorepo): move to lerna

* chore(monorepo): use commands as normal instead of package

* fix(revert): packagejson

* chore(monorepo): prune files and update eslint rules

* chore(monorepo): fix the no-missing-require error

* chore(monorepo): fix typo

* chore(monorepo): fix typo

* chore(monorepo): prune package json

* chore(monorepo): merge package lock json

* chore(monorepo): updated package.json

* chore(monorepo): fix plugin package.json

* chore(cli): move to lerna and scoped packages (#434)

* fix(loader,plugin): fix generators path bug

* cli(refactor): improve folder structure (#371)

* cli(refactor): improve folder structure

* chore(linting): fix linter errors

* cli(filepath): use local import instead

* cli(migrate): refactor error handling

* chore(review): fix review comments

* chore(review): fix review comments

* chore(review): fix review comments

* chore(version): v.2.0.14

* Add break as commit type and listed the type of commit in the documentation (#379)

* docs(commits): listed the list of type of commits available

* cli(init): mode support to config (#364)

* cli(init): mode support to config

* cli(bugfix): Allow mode "none" in CLI (#381)

* cli(init): use extractMiniCSSPlugin (#363)

* cli(init): skip redundant question

* cli(init): use mini-css-extract-plugin

* Retrieve information for CLI option from webpack schema options file (#392)

* cli(refactor): fetch available modes directly from webpack options schema

* cli(refactor): Retrieve information from webpackOptionSchema

* cli(add): write configuration to yeoman file (#348)

* misc(add): variable parity, prettify

* cli(add): write config to yeoman-rc

* misc(add): improve generator questions

* fix(init): output file name for single output (#403)

improved output filename

* cli(migrate): Update migration question (#402)

* cli(init): webpack4 ready (#356)

* cli(init): webpack4 ready

* cli(init): remove unused variable, still @next on etwp

* cli(init): Allow to use default entry in `init`

* cli(init): Fix typo in comment

* cli(init): Optimization transform and tests

* cli(init): Fix non-optimized option for splitChunks

* cli(init): Add cachingGroup per entry, don't show name in prod

* cli(init): Add cachingGroup's defaults, fix entry

* cli(init): Add a link to where the defaults live

* cli(init): Remove default caching group definition from example

* Add NoEmitOnErrorsPlugin transformation (#399)

* ast(migrate): handle no emit on error

* ast(migrate): handle module concatenation and named modules

* ast(migrate): handle module concatenation and named modules

* fix(ast): checks validity of an identifier (#360)

added test cases for validate identifier

* cli(entry): quotes sanitization (#337)

* chore: minor doc fixes

* cli(entry): quotes sanitization

* tests(entry): add test case for double quotes

* tests(entry): update snapshots

* misc(utils): entry - variable parity

* misc(prop-types): sort

* cli(entry): multiple entries quotes sanitization

* chore(versioning): v 2.0.15

* chore(versioning): push new package version

* cli(fix): remove reference to specific version during migration (#410)

* fix: remove reference to specific version during migration

* fix: rephrase update message

* chore(docs): updated old references to the extract text plugin (#412)

* chore(dev): added break to the list of type of commit

* init(fix): removed references to extract text plugin

* fix(commit): rollback

* cli(migration): update UglifyJS transformation (#416)

* cli(migration): Update UglifyJS migration file to fit webpack4 configuration

* cli(migration): Add cases where require variable does not need to exist

* cli(migration): Add transformation for usage of webpack.otimization.UglifyPlugin

* cli(tests): Update test snapshots after updating transformation

* cli(fix): fix expressionContent being null

* cli(refactor): remove plugins array if empty

Created function on ast-utils so every other transformation can use this.

* tests: add tests for new ast-utils method

* fix: fix test names and jsdoc

* fix: update maxSize for utils folder

* ast(cli): Recursively parse AST (#341)

* ast(refactor): wip refactor

* ast(refactor): wip refactor

* ast(init): refactor

* test(refactor): refactor test suite

* tests(define): swap args

* ast(parsing): refactor stuff

* ast(init): refactor

* ast(init): refactor tests

* chore(tests): remove some unneeded tests

* chore(pkg): update package.json

* chore(project): clear up project structure

* chore(cli): remove unneded files

* chore(git): add gitignore to yeoman file

* chore(deps): update pkg.json

* tests(snapshots): update snapshots

* tests(jest): use empty module for snapshots

* tests(snap): only test one prop

* chore(publishing): add semantic-release (#415)

* chore(release): [WIP] add semantic-release

* test(ci): wip

* test(ci): add node versions

* test(ci): remove extra test

* tests(ci): revise

* tests(ci): only push to npm on master

* tests(ci): use matrix on jobs

* tests(ci): revise

* tests(ci): update

* tests(ci): test

* tests(ci): test

* tests(ci): p

* tests(ci): update travis.yml

* chore(release): revise travis

* misc(yeoman): update yeoman

* chore(travis): revise travis

* misc(travis): revise travis.yml

* chore(travis): remove redundant code

* chore(pkg): add keywords

* 2.1.1

* 2.1.2

* cli(cmds): revise yargs command (#422)

* use yargs.command instead of yargs.option for sub-commands

* cli(node): Add node flags to CLI (#377)

* feat: add support for node flags

* tests: Fix node-flags test

* misc: Fix test failing due to not-found webpack-cli

* misc: remove comment

* misc: refactor removing unecessary args

* tests: add more tests to prevent argument collision

* cli(cmds): remove strict

* fix(node): remove node option for now

* chore(lerna): refactor

* chore(lerna): refactor

* chore(refactor): refactor stuff

* chore(package): update pkg.lock

* chore(templates): Update issue templates (#432)

Adds fancy templates

* ast(init): add topScope prop

* ast(merge): re-add merge prop

* cli(lerna): refactor

* chore(lerna): refactor

* chore(lerna): update

* chore(lint): revise

* chore(refactor): refactor

* chore(tests): use lerna for tests

* chore(travis): don't cache me outside

* chore(pkg): remove prefer global

* chore(release): v.2.1.3

* chore(package.lock): update pkg.lock

* fix(loader,plugin): fix generators path bug

* chore(version): v.2.0.14

* Add break as commit type and listed the type of commit in the documentation (#379)

* docs(commits): listed the list of type of commits available

* cli(bugfix): Allow mode "none" in CLI (#381)

* cli(init): use extractMiniCSSPlugin (#363)

* cli(init): skip redundant question

* cli(init): use mini-css-extract-plugin

* Retrieve information for CLI option from webpack schema options file (#392)

* cli(refactor): fetch available modes directly from webpack options schema

* cli(refactor): Retrieve information from webpackOptionSchema

* cli(add): write configuration to yeoman file (#348)

* misc(add): variable parity, prettify

* cli(add): write config to yeoman-rc

* misc(add): improve generator questions

* fix(init): output file name for single output (#403)

improved output filename

* cli(migrate): Update migration question (#402)

* fix(ast): checks validity of an identifier (#360)

added test cases for validate identifier

* chore(versioning): v 2.0.15

* chore(versioning): push new package version

* cli(fix): remove reference to specific version during migration (#410)

* fix: remove reference to specific version during migration

* fix: rephrase update message

* chore(docs): updated old references to the extract text plugin (#412)

* chore(dev): added break to the list of type of commit

* init(fix): removed references to extract text plugin

* fix(commit): rollback

* misc(yeoman): update yeoman

* cli(cmds): revise yargs command (#422)

* use yargs.command instead of yargs.option for sub-commands

* cli(node): Add node flags to CLI (#377)

* feat: add support for node flags

* tests: Fix node-flags test

* misc: Fix test failing due to not-found webpack-cli

* misc: remove comment

* misc: refactor removing unecessary args

* tests: add more tests to prevent argument collision

* cli(cmds): remove strict

* fix(node): remove node option for now

* chore(templates): Update issue templates (#432)

Adds fancy templates

* cli(lerna): refactor

* chore(lerna): refactor

* chore(pkg): remove prefer global

* chore(travis): Add encrypted private ssh key

* fix(pkg): test auto setup

* cli(init): revise installation steps (#441)

* cli(init): revise installation steps

* chore(formatting): format code

* cli(tests): refactor tests

* chore(travis): run lockfile cmds on tests (#444)

* Update dependencies to enable Greenkeeper 🌴 (#443)

chore(greenkeeper): Update dependencies to enable Greenkeeper 🌴

* chore(docs): update readme

* chore(travis): add Node.js 10 (#425)

* chore(travis): move npm ci to install task (#424)

* chore(travis): move npm ci to install task

* chore: trigger new build

* chore: upgrade Node.js for Appveyor to 8

* chore: remove redundanct npm install command

* chore(linting): resolve linter errors

* chore(linting): fix linting errors

* chore(linting): resolve linting

* chore(linting): resolve linting

* chore(scaffold): move addons to scaffold

* chore(scaffold): fix linting errors

* cli(prompt): initial comment for prompt file

* cli(prompt): wip

* fix(monorepo): fix lint errors

* fix(monorepo): fix cross spawn versions

* fix(monorepo): update lock files

* fix(monorepo): fix versions in pacakges

* chore(rebase): refactor stuff

* cli(pkgs): re-add entries

* chore(v): revise pkg

* v0.0.1

* chore(v): revise some deps

* v0.0.2

* v0.0.3

* chore(v): back to v1

* v0.0.2

* v0.0.3

* v0.0.4

* chore(deps): update deps

* chore(prompt): revise prompt cmd

* v0.0.5

* cli(path): resolve better

* v0.0.6

* chore(v.6): update init

* chore(pkg): v.6 on next

* chore(monorepo): add bootstrap to run

chore(monorepo): add bootstrap to ci

* chore(monorepo): fix appveyor build

* chore(monorepo): fix appveyor build

* chore(monorepo): add eslint-plugin-prettier

* chore(monorepo): fix appveyor build

chore(monorepo): fix appveyor build

chore(monorepo): add eslint-plugin-prettier

chore(monorepo): use nohoist

* chore(monorepo): fix versions and use clean bootstrap

* chore(monorepo): add rimraf globally

chore(monorepo): revert back

* chore(monorepo): fix windows build

* cli(color): don't use color on non-tty (#452)

* Added yarn lock file to gitignore (#455)

* chore(next): dev version bump

* chore(monorepo): fix windows build

* cli(symlinks): Fix paths (#453)

* cli(symlinks): fix symlinks

* chore(linting): resolve linting errors

* chore(rebase): remove old file

* cli(init): Better defaults (#451)

* cli(init): set default generator name

* cli(init): better defaults

* chore(rebase): remove old commit

* cli(init): fix broken ast and merge scaffolds

* chore(docs): better defaults

* chore(lint): fix linting errors

* chore(deps): remove path from dep installation

* chore(resolve): resolve conflicts

* fix(vulnerabilities): vulnerabilities patch for v3 (#460)

* chore(dependencies): fix vulnerabilities

* misc(scripts): update clean:all script

* chore(dependencies): fix vulnerabilities

* tests(parser): fix recursive-tests signature (#470)

* chore(deps): add lerna

* tests(coverage): fix coverage (#473)

* test(coverage): fix coverage

* test(binTestCases): run bintestcases on upper-repo

* tests(travis): add node 10

* tests(cov): use regular nyc on tests

* chore(lockfile): update pkglock

* chore(semantic): configure plugins (#475)

* fix(cli): show help flag when defaults fail (#466)

* fixed test cases

* remove unwanted console

* fix(254) - addressed PR comments

* fix(254) - added requested changes at right place

* fix(254) - exit after error

exit webpack if defaults are not found
fix test cases for no options

* fix: require chalk

* refactor - addressed PR comments

* refactor - addressed PR comments

* refactor : remove unwanted keywords

* chore(review): format

* tests(no-options): refactor tests

* ast(parser): add (#456)

* ast(parser): add, update, remove - literal node support

* ast(parser): add command

* ast(util): update property, early exit

* tests(add): resursive add ast

* tests(add): update recursive parser snaps

* misc(conflicts): resolve conflicts

* tests(parser): update tests, inputs

* chore(review): fix some things

* ast(utils): add ast-path safe traverse and type support

* ast(utils): merge update property with add property

* tests(ast): add tests for safe traversals

* misc(fixes): review comments

* tests(ast): add tests for addProperty

* misc(fixes): review comments

* misc(fixes): review comments

* misc(fixes): review comments

* cli(add): re-add add command
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants