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

Webpack-CLI version 1 #105

Merged
merged 101 commits into from
May 7, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
fa41989
feat: initial commit on last structure and transforms
evenstensberg Apr 7, 2017
4cc5d94
feat: ast for entry
evenstensberg Apr 7, 2017
ad3164e
feat: ast for output
evenstensberg Apr 7, 2017
9ce2873
feat: ast for context
evenstensberg Apr 7, 2017
c053082
feat: work in progress on resolve
evenstensberg Apr 8, 2017
9635c96
feat: add transform structure for all
evenstensberg Apr 8, 2017
f92af9c
fix: remove rx from the project
evenstensberg Apr 8, 2017
9977025
fix: return ast on no prop at resolve
evenstensberg Apr 8, 2017
2c6d1de
feat: ast for resolve
evenstensberg Apr 8, 2017
00e1eca
feat: ast for devtool
evenstensberg Apr 9, 2017
7f8da31
feat: art for target
evenstensberg Apr 9, 2017
22df329
feat: ast for watch
evenstensberg Apr 9, 2017
743f10f
feat: sat for watchOptions
evenstensberg Apr 9, 2017
423b8cb
fix: rename dev-tool to devtool
evenstensberg Apr 9, 2017
2f7a10c
feat: ast for externals
evenstensberg Apr 9, 2017
a2b9807
feat: ast for node
evenstensberg Apr 9, 2017
9d5ebbe
feat: sat for performance
evenstensberg Apr 9, 2017
97c627d
feat: ast for stats
evenstensberg Apr 9, 2017
29d0c56
feat: ast for other
evenstensberg Apr 9, 2017
bc6e1de
feat: allow multiple packages in CLI command
evenstensberg Apr 9, 2017
8153f2b
feat: allow dynamic entry points
evenstensberg Apr 10, 2017
3c7b021
feat: allow promises as entry points
evenstensberg Apr 10, 2017
e3d522b
feat: function decl for resolve.cachePredictate
evenstensberg Apr 10, 2017
2f1e891
feat: allow function for performance.assetFilter
evenstensberg Apr 10, 2017
9a230b8
feat: allow regex and functions in external prop
evenstensberg Apr 10, 2017
f87aa2b
feat: regexp for outputPrefix
evenstensberg Apr 10, 2017
009c0e7
feat: use property without strings
evenstensberg Apr 10, 2017
471fa26
feat: allow regex for unsafeCache
evenstensberg Apr 10, 2017
04add9b
feat: ast for module
evenstensberg Apr 10, 2017
bf6a27a
feat: ast for plugins
evenstensberg Apr 11, 2017
3f9d953
feat: art for paths
evenstensberg Apr 11, 2017
026ee74
feat: prettier, topScope and runtime flow
evenstensberg Apr 11, 2017
beda4db
feat: ast for cache
evenstensberg Apr 11, 2017
ea39812
feat: module regexp fix
evenstensberg Apr 11, 2017
02c9b14
feat: fix generator methods
evenstensberg Apr 11, 2017
290e4f2
chore: bump add ons dep
evenstensberg Apr 11, 2017
aba04dd
feat: introduce scaffold for external runs
evenstensberg Apr 11, 2017
6c59cda
feat: don't use jscodeshift to parse unknown values
evenstensberg Apr 12, 2017
d586952
feat: allow name conventions
evenstensberg Apr 12, 2017
559af8c
feat: allow multiple config creations
evenstensberg Apr 12, 2017
89e0376
feat: allow using inject for resolve and module
evenstensberg Apr 13, 2017
ba01b69
feat: allow merge in scaffold
evenstensberg Apr 13, 2017
a024476
fix: make build more readable
evenstensberg Apr 13, 2017
b435585
feat: add HOC to each transform
evenstensberg Apr 14, 2017
7e1ea07
feat: find correct folder for packages
evenstensberg Apr 14, 2017
4dbc02a
fix: example transform in generator and fix to path
evenstensberg Apr 14, 2017
e315511
Add your first test (#114)
Apr 16, 2017
4716da5
Tests for entry.js (#115)
Apr 17, 2017
1567dae
fix: add identifier creation and fix entry tests
evenstensberg Apr 17, 2017
c052bc8
Add more tests (#116)
Apr 18, 2017
b88e3df
Cleanup the ast branch transformation (#117)
Apr 18, 2017
889400c
feat: add new tests for entry & regex for validateOptions
evenstensberg Apr 18, 2017
a958486
feat: more tests for obj ref
evenstensberg Apr 18, 2017
69725c8
fix: fix devtool property and add tests for it
evenstensberg Apr 18, 2017
8f8bd7d
add externals test and fix identifier util
evenstensberg Apr 18, 2017
7ca1948
feat: add test to array with obj reference in ext
evenstensberg Apr 18, 2017
e455a33
fix: fix silly mistake on devtools props
evenstensberg Apr 20, 2017
583520e
tests: add tests for every transform
evenstensberg Apr 20, 2017
efb80ea
feat: add more utility for tests
evenstensberg Apr 20, 2017
6d15a77
enhancements: use abstractions & utils
evenstensberg Apr 22, 2017
107d37c
utils: add regex util
evenstensberg Apr 22, 2017
b7a9226
chore: add JSdocs to each transform
evenstensberg Apr 22, 2017
9859b03
enhancements: use more utility on transforms
evenstensberg Apr 22, 2017
28fc6f0
enhancements: use createpushval for all transforms
evenstensberg Apr 22, 2017
115a73a
enhancements: use new utility to create single properties
evenstensberg Apr 23, 2017
f3ad8af
enhancements: add test for utility functions
evenstensberg Apr 23, 2017
c563328
fix: don't use await for promise
evenstensberg Apr 23, 2017
44ce0d6
enhancements: send each transform object to respective transform
evenstensberg Apr 23, 2017
08bb8e5
enhancements: remove createsingular
evenstensberg Apr 23, 2017
b458b9e
enhancements: use more utility and remove boilerplate code
evenstensberg Apr 23, 2017
fda1003
chore: remove fixme flag
evenstensberg Apr 23, 2017
f2aabaa
chore: prettify ast.find
evenstensberg Apr 23, 2017
ee87141
enhancements: use objKey util for entry and externals
evenstensberg Apr 24, 2017
84b8127
enhancements: use utility on resolve
evenstensberg Apr 24, 2017
74b821a
enhancements: fix merge & utilize module folder
evenstensberg Apr 26, 2017
b34e93e
enhancements: use prettier node API
evenstensberg Apr 30, 2017
635f2db
fix: don't print success msg more than one time
evenstensberg Apr 30, 2017
b32e7a2
enhancements: fix windows paths
evenstensberg Apr 30, 2017
b6c0926
Webpack-CLI Documentation (#112)
evenstensberg Apr 30, 2017
cdd5fb4
chore: prepare to update webpack/bin to ours
evenstensberg Apr 30, 2017
cd5562c
chore: refactor against webpack/lib
evenstensberg Apr 30, 2017
63c30ca
remove shebang
evenstensberg Apr 30, 2017
bde984f
chore: remove old rx code
evenstensberg Apr 30, 2017
042fc7c
enhancements: default generator and exitCode
evenstensberg May 1, 2017
f33f521
chore: update addons pkg and reformat extractAnswer
evenstensberg May 2, 2017
d1342ed
enhancements: better bin resolves & default generator
evenstensberg May 4, 2017
21e7858
enhancements: use validation to force answers
evenstensberg May 4, 2017
0344e6a
enhancements: check identifiers with properties
evenstensberg May 4, 2017
663133a
enhancements: revise anti pattern for promise
evenstensberg May 4, 2017
907a1f7
enhancements: rename write to type and split params to newline
evenstensberg May 5, 2017
c58f793
enhancements: add better scaffold to generator
evenstensberg May 5, 2017
3e6115a
enhancements: make default generator more User Friendly
evenstensberg May 5, 2017
0ba9d7d
enhancements: ask if user wants to make the config at end
evenstensberg May 6, 2017
c6bd40c
enhancements: make default generator better
evenstensberg May 7, 2017
a9ea433
enhancements: add styling option to generator
evenstensberg May 7, 2017
bc24b9e
fix: remove sourceMap from postcss prop
evenstensberg May 7, 2017
f4add5a
enhancements: separate dev and prod build
evenstensberg May 7, 2017
c766779
enhancements: add contentHash & name
evenstensberg May 7, 2017
ef05928
enhancements: prompt for better answers
evenstensberg May 7, 2017
2e2a38f
fix: remove unused module
evenstensberg May 7, 2017
dd9b894
chore: final fixes before release
evenstensberg May 7, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions lib/creator/transformations/entry/entry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const utils = require('../../../transformations/utils');
/*
safeTraverse,
createProperty,
findPluginsByName,
findPluginsRootNodes,
createOrUpdatePluginByName,
findVariableToPlugin,
isType,
createLiteral,
findObjWithOneOfKeys,
getRequire
*/
module.exports = function(j, ast, webpackProperties) {

function createEntryProperty(p) {
return p.value.properties.push(utils.createProperty(j, 'entry', '{}'));
}

return ast.find(j.ObjectExpression)
.filter(p => createEntryProperty(p));
};
39 changes: 33 additions & 6 deletions lib/creator/transformations/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
//const chalk = require('chalk');
//const validateSchema = require('../../utils/validateSchema.js');
//const webpackOptionsSchema = require('../../utils/webpackOptionsSchema.json');
//const WebpackOptionsValidationError = require('../../utils/WebpackOptionsValidationError');
const fs = require('fs');
const chalk = require('chalk');
const validateSchema = require('../../utils/validateSchema.js');
const webpackOptionsSchema = require('../../utils/webpackOptionsSchema.json');
const WebpackOptionsValidationError = require('../../utils/WebpackOptionsValidationError');
const j = require('jscodeshift');
const pEachSeries = require('p-each-series');
const entryTransform = require('./entry/entry');
const outputTransform = require('./output/output');

/*
* @function runTransform
*
Expand All @@ -11,9 +17,30 @@
* @returns { <Void> } TODO
*/

module.exports = function runTransform(transformObject) {
const transformsObject = {
entryTransform,
outputTransform
};
Copy link

Choose a reason for hiding this comment

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

This should be passed to runTransform somehow.

Copy link
Member Author

Choose a reason for hiding this comment

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

Doing through p-lazy I suppose ;)

Copy link
Member Author

Choose a reason for hiding this comment

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

Don't review yet, will notify when there's something better to review, this isn't nearly done at all


module.exports = function runTransform(yeomanConfig) {
const webpackProperties = Object.keys(yeomanConfig.webpackOptions);
const transformations = Object.keys(transformsObject).map(k => transformsObject[k]);

// scaffold is done
if (webpackProperties.length !== 0) {
let ast = j('module.exports = {}');
return pEachSeries(transformations, f => f(j, ast, webpackProperties))
.then(() => {
const recastOptions = {
quote: 'single'
};
const outputPath = process.cwd() + '/webpack.config.js';
const source = ast.toSource(recastOptions);
fs.writeFileSync(outputPath, source, 'utf-8');
})
.catch(err => {
console.error(err);
});
}
/*
const webpackOptionsValidationErrors = validateSchema(webpackOptionsSchema, initialWebpackConfig);
if (webpackOptionsValidationErrors.length) {
Expand Down
3 changes: 3 additions & 0 deletions lib/creator/transformations/output/output.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = function(j, ast) {
return ast;
};