Skip to content

Commit 3706337

Browse files
committed
Upgrade and simplify
1 parent 0de4213 commit 3706337

25 files changed

+1771
-1142
lines changed

.eslintrc.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,18 @@ module.exports = {
77
node: true,
88
jest: true,
99
},
10-
extends: ['eslint:recommended', 'plugin:react/recommended'],
10+
extends: [
11+
'eslint:recommended',
12+
'plugin:react/recommended',
13+
'plugin:react-hooks/recommended',
14+
],
15+
settings: {
16+
react: {
17+
version: 'detect',
18+
},
19+
},
1120
parserOptions: {
1221
ecmaFeatures: {
13-
experimentalObjectRestSpread: true,
1422
jsx: true,
1523
},
1624
sourceType: 'module',
@@ -19,23 +27,16 @@ module.exports = {
1927
rules: {
2028
'react/prop-types': ['off'],
2129
'react/no-unescaped-entities': ['error', { forbid: ['>', '}'] }],
22-
'react-hooks/rules-of-hooks': 'error',
23-
indent: ['error', 2, { SwitchCase: 1 }],
24-
'comma-dangle': ['error', 'always-multiline'],
25-
'linebreak-style': ['error', 'unix'],
26-
quotes: ['error', 'single'],
27-
semi: ['error', 'always'],
2830
'no-console': ['warn', { allow: ['info', 'error'] }],
29-
curly: 'error',
31+
'curly': 'error',
3032
'no-else-return': 'error',
3133
'no-unneeded-ternary': 'error',
3234
'no-useless-return': 'error',
3335
'no-var': 'error',
3436
'one-var': ['error', 'never'],
35-
'prefer-arrow-callback': 'error',
3637
'prefer-const': 'error',
37-
strict: 'error',
38+
'strict': 'error',
3839
'symbol-description': 'error',
39-
yoda: ['error', 'never', { exceptRange: true }],
40+
'yoda': ['error', 'never', { exceptRange: true }],
4041
},
4142
};

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"lerna": "3.15.0",
33
"packages": ["packages/*"],
4-
"version": "2.0.6"
4+
"version": "2.1.0"
55
}

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"private": true,
33
"license": "MIT",
44
"devDependencies": {
5-
"babel-eslint": "10.0.2",
6-
"eslint": "^6.0.1",
7-
"eslint-plugin-react": "^7.14.2",
8-
"eslint-plugin-react-hooks": "^1.6.1",
9-
"lerna": "^3.15.0",
10-
"prettier": "^1.18.2"
5+
"babel-eslint": "10.1.0",
6+
"eslint": "^6.8.0",
7+
"eslint-plugin-react": "^7.19.0",
8+
"eslint-plugin-react-hooks": "^3.0.0",
9+
"lerna": "^3.20.2",
10+
"prettier": "^2.0.4"
1111
}
1212
}

packages/reactful/README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ cd my-awesome-react-app
2020
# To start the app for development (watchers for node/webpack)
2121
npm start
2222

23-
# To open the app in browser (default is localhost:4242)
24-
npx reactful open
25-
2623
# To run all tests
2724
npm test
2825

packages/reactful/bin/reactful.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,7 @@ async function main() {
5252

5353
if (firstArg === 'new') {
5454
config.appPath = otherArgs[0];
55-
config.appName = otherArgs[0]
56-
.replace(/\/$/, '')
57-
.split('/')
58-
.slice(-1)[0];
55+
config.appName = otherArgs[0].replace(/\/$/, '').split('/').slice(-1)[0];
5956
}
6057

6158
if (!['init', 'new'].includes(firstArg)) {
@@ -64,10 +61,7 @@ async function main() {
6461
}
6562

6663
config.appPath = firstArg;
67-
config.appName = firstArg
68-
.replace(/\/$/, '')
69-
.split('/')
70-
.slice(-1)[0];
64+
config.appName = firstArg.replace(/\/$/, '').split('/').slice(-1)[0];
7165
}
7266

7367
reactfulCreate();

packages/reactful/lib/commandExists.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ module.exports = function commandExists(command) {
88
shell: true,
99
});
1010

11-
child.on('close', code => {
11+
child.on('close', (code) => {
1212
resolve(code === 0);
1313
});
1414

15-
child.on('error', err => {
15+
child.on('error', (err) => {
1616
reject(err);
1717
});
1818
});
Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,52 @@
11
/* eslint indent: 'off' */
22

3-
exports.rcc = componentName => `import React from 'react';
3+
exports.rcc = (componentName) => `import * as React from 'react';
44
5-
export class ${componentName} extends React.Component {
5+
export default class ${componentName} extends React.Component {
66
render() {
77
return (
88
<div>
9-
{${componentName}}...
9+
${componentName}...
1010
</div>
1111
);
1212
}
1313
}`;
1414

15-
exports.rpc = componentName => `import React from 'react';
15+
exports.rpc = (componentName) => `import * as React from 'react';
1616
17-
export class ${componentName} extends React.PureComponent {
17+
export default class ${componentName} extends React.PureComponent {
1818
render() {
1919
return (
2020
<div>
21-
{${componentName}}...
21+
${componentName}...
2222
</div>
2323
);
2424
}
2525
}`;
2626

27-
exports.rfc = componentName => `import React from 'react';
27+
exports.rfc = (componentName) => `import * as React from 'react';
2828
29-
export function ${componentName}({}) {
29+
export default function ${componentName}() {
3030
return (
3131
<div>
32-
{${componentName}}...
32+
${componentName}...
3333
</div>
3434
);
3535
}`;
3636

3737
exports.jest = {};
3838

39-
exports.jest.default = componentName => `import React from 'react';
40-
import renderer from 'react-test-renderer';
39+
exports.jest.default = (componentName) => `import * as React from 'react';
40+
import { render, cleanup } from '@testing-library/react';
4141
4242
import ${componentName} from './${componentName}';
4343
44-
describe('${componentName}', () => {
44+
afterEach(cleanup);
4545
46-
it('renders correctly', () => {
47-
const tree = renderer.create(
48-
<${componentName} />
49-
).toJSON();
46+
describe('${componentName}', () => {
47+
it('renders', () => {
48+
const { asFragment } = render(<${componentName} />);
5049
51-
expect(tree).toMatchSnapshot();
50+
expect(asFragment()).toMatchSnapshot();
5251
});
53-
5452
});`;

packages/reactful/lib/dependencies.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@
1515
"express@4",
1616
"mini-css-extract-plugin",
1717
"morgan",
18-
"node-sass",
1918
"pm2",
2019
"react@16",
2120
"react-dom@16",
2221
"regenerator-runtime",
23-
"sass-loader",
2422
"serialize-javascript",
2523
"style-loader",
2624
"webpack@4",
@@ -29,16 +27,16 @@
2927
],
3028
"dev": [
3129
"@babel/node",
32-
"babel-core@^7.0.0-bridge.0",
3330
"babel-jest",
3431
"babel-eslint",
3532
"concurrently",
36-
"enzyme",
37-
"enzyme-adapter-react-16",
3833
"eslint",
3934
"eslint-plugin-react",
4035
"eslint-plugin-react-hooks",
4136
"jest",
37+
"@testing-library/react",
38+
"@testing-library/jest-dom",
39+
"@testing-library/user-event",
4240
"nodemon",
4341
"reactful"
4442
]

packages/reactful/lib/init.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ module.exports = function reactfulInit(config) {
1111
version: '1.0.0',
1212
private: true,
1313
scripts: {
14-
eslint: 'eslint "src/**/*.js"',
15-
start: `concurrently "${pmCommand} run dev-server" "${pmCommand} run dev-bundle"`,
16-
test: 'jest',
14+
'eslint': 'eslint "src/**/*.js"',
15+
'start': `concurrently "${pmCommand} run dev:server" "${pmCommand} run dev:bundle"`,
16+
'test': 'jest',
1717

18-
'dev-server':
18+
'dev:server':
1919
'cross-env NODE_PATH=./src nodemon --exec "babel-node src/server/server.js" --ignore .reactful.json --ignore public/',
20-
'dev-bundle': 'webpack -wd',
20+
'dev:bundle': 'webpack -wd',
2121
'verify-tests': 'jest --coverage',
2222

23-
'build-react': 'cross-env NODE_ENV=production webpack --progress -p',
24-
'build-node':
23+
'build:react': 'cross-env NODE_ENV=production webpack --progress -p',
24+
'build:node':
2525
'babel src -d build --config-file ./babel-node.config.js --copy-files',
26-
'build-all': `${pmCommand} install && ${pmCommand} run build-react && ${pmCommand} run build-node`,
26+
'build:all': `${pmCommand} install && ${pmCommand} run build:react && ${pmCommand} run build:node`,
2727

28-
'prod-start': `cross-env NODE_ENV=production NODE_PATH=./build pm2 start -i max build/server/server.js --update-env --name ${appName}Prod`,
29-
'prod-stop': `pm2 stop ${appName}Prod`,
30-
'prod-reload': `pm2 reload --update-env ${appName}Prod`,
31-
'prod-logs': `pm2 logs --update-env ${appName}Prod`,
28+
'prod:start': `cross-env NODE_ENV=production NODE_PATH=./build pm2 start -i max build/server/server.js --update-env --name ${appName}Prod`,
29+
'prod:stop': `pm2 stop ${appName}Prod`,
30+
'prod:reload': `pm2 reload --update-env ${appName}Prod`,
31+
'prod:logs': `pm2 logs --update-env ${appName}Prod`,
3232
},
3333
jest: {
3434
modulePaths: ['./src'],

packages/reactful/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "reactful",
3-
"version": "2.0.6",
3+
"version": "2.1.0",
44
"description": "An opinionated CLI for full-stack server-rendered React applications",
55
"repository": "jscomplete/reactful",
66
"author": "Samer Buna <[email protected]>",
@@ -9,7 +9,7 @@
99
"reactful": "bin/reactful.js"
1010
},
1111
"dependencies": {
12-
"fs-jetpack": "^2.2.2",
13-
"prompt-sync": "^4.1.6"
12+
"fs-jetpack": "^2.2.3",
13+
"prompt-sync": "^4.2.0"
1414
}
1515
}

0 commit comments

Comments
 (0)