generator-reackt 0.6.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierrc +5 -5
- package/.stylelintrc +5 -188
- package/LICENSE +21 -7
- package/README.md +20 -18
- package/generators/app/index.js +1 -392
- package/generators/component/index.js +1 -51
- package/generators/module/index.js +1 -127
- package/generators/util/fs.js +1 -34
- package/package.json +83 -63
- package/templates/app/.browserslistrc +3 -3
- package/templates/app/.editorconfig +11 -11
- package/templates/app/.esdoc.json +23 -23
- package/templates/app/.lintstagedrc +4 -4
- package/templates/app/.prettierrc +5 -5
- package/templates/app/.storybook/main.ts +19 -0
- package/templates/app/.storybook/preview.ts +36 -0
- package/templates/app/.stylelintrc +5 -188
- package/templates/app/.yarnrc.yml +3 -0
- package/templates/app/_eslint.config.mjs +51 -0
- package/templates/app/{package.json → _package.json} +18 -18
- package/templates/app/_stories/SuspenseFallback.stories.tsx +17 -0
- package/templates/app/gitignore +3 -2
- package/templates/app/jest.config.js +15 -15
- package/templates/app/src/components/ErrorBoundary.tsx +45 -0
- package/templates/app/src/components/Layout.tsx +142 -0
- package/templates/app/src/components/SuspenseFallback.tsx +96 -0
- package/templates/app/src/index.html +10 -10
- package/templates/app/src/{index.scss → index.nscss} +17 -16
- package/templates/app/src/index.tsx +60 -0
- package/templates/app/src/pages/index.tsx +3 -0
- package/templates/app/src/reducers/application.ts +36 -0
- package/templates/app/src/reducers/{index.js → index.ts} +8 -7
- package/templates/app/src/sagas/application.ts +9 -0
- package/templates/app/src/sagas/{index.js → index.ts} +8 -7
- package/templates/app/src/selectors/application.test.ts +18 -0
- package/templates/app/src/selectors/application.ts +6 -0
- package/templates/app/src/types/globals.d.ts +1 -0
- package/templates/app/src/types/index.ts +11 -0
- package/templates/app/src/utils/{index.js → index.ts} +36 -36
- package/templates/app/tsconfig.json +18 -0
- package/templates/app/webpack.config.nts +121 -0
- package/templates/component/index.stories.tsx +14 -0
- package/templates/component/{index.test.js → index.test.tsx} +14 -14
- package/templates/{app/src/components/App.js → component/index.tsx} +16 -14
- package/templates/module/reducer/{index.js → index.ts} +20 -20
- package/templates/module/saga/{index.js → index.ts} +9 -9
- package/templates/app/.babelrc +0 -4
- package/templates/app/.eslintrc.js +0 -46
- package/templates/app/.storybook/addons.js +0 -1
- package/templates/app/.storybook/config.js +0 -14
- package/templates/app/.storybook/webpack.config.babel.js +0 -7
- package/templates/app/jsconfig.json +0 -7
- package/templates/app/src/index.js +0 -47
- package/templates/app/src/reducers/application.js +0 -21
- package/templates/app/src/sagas/application.js +0 -9
- package/templates/app/src/selectors/application.js +0 -1
- package/templates/app/src/selectors/application.test.js +0 -13
- package/templates/app/webpack.config.babel.js +0 -103
- package/templates/component/index.js +0 -19
- /package/templates/module/reducer/{index.test.js → index.test.ts} +0 -0
- /package/templates/module/saga/{index.test.js → index.test.ts} +0 -0
- /package/templates/module/selector/{index.js → index.test.ts} +0 -0
- /package/templates/module/selector/{index.test.js → index.ts} +0 -0
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
|
|
3
|
-
import { createRoot } from 'react-dom/client';
|
|
4
|
-
import { BrowserRouter as Router } from 'react-router-dom';
|
|
5
|
-
<% if (flags.addRedux) { %>
|
|
6
|
-
import { Provider } from 'react-redux';
|
|
7
|
-
import createSagaMiddleware from 'redux-saga';
|
|
8
|
-
import { applyMiddleware, createStore, compose } from 'redux';
|
|
9
|
-
<% } %>
|
|
10
|
-
|
|
11
|
-
import './index.scss';
|
|
12
|
-
import App from './components/App';
|
|
13
|
-
<% if (flags.addRedux) { %>
|
|
14
|
-
import rootSaga from './sagas';
|
|
15
|
-
import rootReducer from './reducers';
|
|
16
|
-
|
|
17
|
-
/* eslint-disable no-underscore-dangle */
|
|
18
|
-
const composer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
|
|
19
|
-
/* eslint-enable */
|
|
20
|
-
|
|
21
|
-
const sagaMiddleware = createSagaMiddleware();
|
|
22
|
-
const enhancers = composer(applyMiddleware(sagaMiddleware));
|
|
23
|
-
|
|
24
|
-
export const store = createStore(rootReducer, {}, enhancers);
|
|
25
|
-
|
|
26
|
-
if (module.hot) {
|
|
27
|
-
module.hot.accept('./reducers', () => {
|
|
28
|
-
store.replaceReducer(require('./reducers').default);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
sagaMiddleware.run(rootSaga);
|
|
33
|
-
<% } %>
|
|
34
|
-
|
|
35
|
-
const root = createRoot(document.getElementById('root'));
|
|
36
|
-
|
|
37
|
-
root.render(
|
|
38
|
-
<Router>
|
|
39
|
-
<% if (flags.addRedux) { %>
|
|
40
|
-
<Provider store={store}>
|
|
41
|
-
<App />
|
|
42
|
-
</Provider>
|
|
43
|
-
<% } else { %>
|
|
44
|
-
<App />
|
|
45
|
-
<% } %>
|
|
46
|
-
</Router>
|
|
47
|
-
)
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { buildActions } from 'utils';
|
|
2
|
-
|
|
3
|
-
export const types = buildActions('application', ['INIT_APP']);
|
|
4
|
-
|
|
5
|
-
const initApp = () => ({
|
|
6
|
-
type: types.INIT_APP
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
export const actions = {
|
|
10
|
-
initApp
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const initialState = {};
|
|
14
|
-
|
|
15
|
-
export const reducer = (state = initialState, action = {}) => {
|
|
16
|
-
switch (action.type) {
|
|
17
|
-
default:
|
|
18
|
-
return state;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const getApplication = state => state.application;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getApplication } from './application';
|
|
2
|
-
|
|
3
|
-
describe('application selectors', () => {
|
|
4
|
-
const state = {
|
|
5
|
-
application: {
|
|
6
|
-
test: true
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
it('getApplication', () => {
|
|
11
|
-
expect(getApplication(state)).toBe(state.application);
|
|
12
|
-
});
|
|
13
|
-
});
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'path';
|
|
2
|
-
import HtmlPlugin from 'html-webpack-plugin';
|
|
3
|
-
import ESLintPlugin from 'eslint-webpack-plugin';
|
|
4
|
-
import TerserPlugin from 'terser-webpack-plugin';
|
|
5
|
-
import StylelintPlugin from 'stylelint-webpack-plugin';
|
|
6
|
-
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
7
|
-
import { CleanWebpackPlugin as CleanPlugin } from 'clean-webpack-plugin';
|
|
8
|
-
import CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
|
|
9
|
-
|
|
10
|
-
const dev = process.env.NODE_ENV === 'development';
|
|
11
|
-
|
|
12
|
-
const plugins = [
|
|
13
|
-
new CleanPlugin(),
|
|
14
|
-
new StylelintPlugin({
|
|
15
|
-
configFile: '.stylelintrc',
|
|
16
|
-
context: 'src',
|
|
17
|
-
files: '**/*.scss',
|
|
18
|
-
failOnError: true,
|
|
19
|
-
quiet: false,
|
|
20
|
-
customSyntax: 'postcss-scss'
|
|
21
|
-
}),
|
|
22
|
-
new HtmlPlugin({
|
|
23
|
-
template: './src/index.html'
|
|
24
|
-
}),
|
|
25
|
-
new ESLintPlugin(),
|
|
26
|
-
new MiniCssExtractPlugin()
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
export default {
|
|
30
|
-
mode: dev ? 'development' : 'production',
|
|
31
|
-
devtool: dev ? 'eval-cheap-module-source-map' : 'cheap-module-source-map',
|
|
32
|
-
entry: './src/index.js',
|
|
33
|
-
devServer: {
|
|
34
|
-
compress: dev,
|
|
35
|
-
open: true,
|
|
36
|
-
historyApiFallback: true,
|
|
37
|
-
hot: dev,
|
|
38
|
-
port: 9000
|
|
39
|
-
},
|
|
40
|
-
module: {
|
|
41
|
-
rules: [
|
|
42
|
-
{
|
|
43
|
-
test: /\.js$/,
|
|
44
|
-
exclude: /node_modules/,
|
|
45
|
-
use: ['babel-loader']
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
test: /\.(sa|sc|c)ss$/,
|
|
49
|
-
use: [
|
|
50
|
-
MiniCssExtractPlugin.loader,
|
|
51
|
-
'css-loader',
|
|
52
|
-
{
|
|
53
|
-
loader: 'postcss-loader',
|
|
54
|
-
options: {
|
|
55
|
-
postcssOptions: {
|
|
56
|
-
ident: 'postcss',
|
|
57
|
-
plugins: [
|
|
58
|
-
require('autoprefixer'),
|
|
59
|
-
require('postcss-flexbugs-fixes')
|
|
60
|
-
]
|
|
61
|
-
},
|
|
62
|
-
sourceMap: dev
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
'sass-loader'
|
|
66
|
-
]
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
test: /\.html$/,
|
|
70
|
-
use: [
|
|
71
|
-
{
|
|
72
|
-
loader: 'html-loader',
|
|
73
|
-
options: { minimize: true }
|
|
74
|
-
}
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
]
|
|
78
|
-
},
|
|
79
|
-
output: {
|
|
80
|
-
path: resolve(__dirname, 'dist'),
|
|
81
|
-
filename: 'main.js',
|
|
82
|
-
chunkFilename: '[name].js'
|
|
83
|
-
},
|
|
84
|
-
plugins,
|
|
85
|
-
resolve: {
|
|
86
|
-
extensions: ['.js', '.json'],
|
|
87
|
-
modules: ['node_modules', 'src'],
|
|
88
|
-
alias: {
|
|
89
|
-
components: resolve(__dirname, 'src/components'),
|
|
90
|
-
utils: resolve(__dirname, 'src/utils')
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
optimization: {
|
|
94
|
-
minimizer: [
|
|
95
|
-
new TerserPlugin({
|
|
96
|
-
terserOptions: {
|
|
97
|
-
ecma: 12
|
|
98
|
-
}
|
|
99
|
-
}),
|
|
100
|
-
new CssMinimizerPlugin()
|
|
101
|
-
]
|
|
102
|
-
}
|
|
103
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React, { Component } from 'react';
|
|
2
|
-
<% if (flags.addRedux) { %>
|
|
3
|
-
import { connect } from 'react-redux';
|
|
4
|
-
<% } %>
|
|
5
|
-
|
|
6
|
-
export class <%= component.name %> extends Component {
|
|
7
|
-
render() {
|
|
8
|
-
return <h1>Hello World</h1>;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
<% if (flags.addRedux) { %>
|
|
13
|
-
export default connect(
|
|
14
|
-
null,
|
|
15
|
-
null
|
|
16
|
-
)(<%= component.name %>);
|
|
17
|
-
<% } else { %>
|
|
18
|
-
export default <%= component.name %>;
|
|
19
|
-
<% } %>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|