Skip to content

Commit 8658df5

Browse files
authored
Merge pull request #25 from jorisre/reduce-bundle-size
Reduce bundle size
2 parents 64e2a90 + 06b8d78 commit 8658df5

13 files changed

+5558
-1585
lines changed

.github/workflows/size.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: size
2+
on: [pull_request]
3+
jobs:
4+
size:
5+
runs-on: ubuntu-latest
6+
env:
7+
CI_JOB_NUMBER: 1
8+
steps:
9+
- uses: actions/checkout@v1
10+
- uses: andresz1/size-limit-action@v1
11+
with:
12+
github_token: ${{ secrets.GITHUB_TOKEN }}

jest.config.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
module.exports = {
22
roots: ['<rootDir>/src'],
3-
transform: {
4-
'^.+\\.tsx?$': 'ts-jest',
5-
},
6-
globals: {
7-
'ts-jest': {
8-
tsConfig: 'tsconfig.jest.json',
9-
},
10-
},
3+
preset: 'ts-jest',
114
testMatch: ['**/?(*.)+(spec|test).ts?(x)'],
125
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$'],
136
moduleFileExtensions: ['ts', 'tsx', 'js'],

package.json

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
"name": "@hookform/error-message",
33
"version": "0.0.4",
44
"description": "React Hook Form error message component",
5+
"source": "src/index.ts",
56
"main": "dist/index.js",
67
"module": "dist/index.esm.js",
7-
"umd:main": "dist/index.umd.production.min.js",
8-
"unpkg": "dist/index.umd.production.min.js",
9-
"jsdelivr": "dist/index.umd.production.min.js",
8+
"esmodule": "dist/index.modern.js",
109
"jsnext:main": "dist/index.esm.js",
11-
"source": "src/index.ts",
10+
"unpkg": "dist/index.umd.js",
11+
"umd:main": "dist/index.umd.js",
12+
"jsdelivr": "dist/index.umd.js",
1213
"types": "dist/index.d.ts",
1314
"sideEffects": false,
1415
"files": [
@@ -17,10 +18,24 @@
1718
"publishConfig": {
1819
"access": "public"
1920
},
21+
"size-limit": [
22+
{
23+
"path": "dist/index.js",
24+
"limit": "264 B"
25+
},
26+
{
27+
"path": "dist/index.esm.js",
28+
"limit": "288 B"
29+
},
30+
{
31+
"path": "dist/index.umd.js",
32+
"limit": "270 B"
33+
}
34+
],
2035
"scripts": {
2136
"clean": "rimraf dist",
2237
"prebuild": "npm run clean",
23-
"build": "node rollup/writeCjsEntryFile.js && rollup -c",
38+
"build": "microbundle build --jsx React.createElement",
2439
"lint": "eslint '**/*.{js,ts}'",
2540
"lint:fix": "npm run lint -- --fix",
2641
"lint:types": "tsc --noEmit",
@@ -51,39 +66,33 @@
5166
},
5267
"homepage": "https://react-hook-form.com",
5368
"devDependencies": {
54-
"@rollup/plugin-commonjs": "^13.0.0",
55-
"@rollup/plugin-json": "^4.1.0",
56-
"@rollup/plugin-node-resolve": "^8.0.1",
57-
"@rollup/plugin-replace": "^2.3.3",
58-
"@testing-library/react": "^10.2.1",
59-
"@testing-library/react-hooks": "^3.2.1",
60-
"@types/jest": "^26.0.0",
61-
"@types/react": "^16.9.0",
62-
"@types/react-dom": "^16.9.4",
63-
"@types/react-test-renderer": "^16.9.0",
64-
"@typescript-eslint/eslint-plugin": "^3.2.0",
65-
"@typescript-eslint/parser": "^3.2.0",
66-
"eslint": "^7.2.0",
67-
"eslint-config-prettier": "^6.11.0",
68-
"eslint-plugin-prettier": "^3.1.3",
69-
"eslint-plugin-react": "^7.13.0",
70-
"eslint-plugin-react-hooks": "^4.0.4",
71-
"husky": "^4.2.5",
72-
"jest": "^26.0.1",
73-
"lint-staged": "^10.2.2",
74-
"prettier": "^2.0.5",
75-
"react": "^16.9.0",
76-
"react-dom": "^16.9.0",
77-
"react-hook-form": "^6.7.0",
78-
"react-test-renderer": "^16.9.0",
69+
"@size-limit/preset-small-lib": "^4.9.0",
70+
"@testing-library/react": "^11.2.2",
71+
"@testing-library/react-hooks": "^3.4.2",
72+
"@types/jest": "^26.0.15",
73+
"@types/react": "^17.0.0",
74+
"@types/react-dom": "^17.0.0",
75+
"@types/react-test-renderer": "^17.0.0",
76+
"@typescript-eslint/eslint-plugin": "^4.8.1",
77+
"@typescript-eslint/parser": "^4.8.1",
78+
"eslint": "^7.14.0",
79+
"eslint-config-prettier": "^6.15.0",
80+
"eslint-plugin-prettier": "^3.1.4",
81+
"eslint-plugin-react": "^7.21.5",
82+
"eslint-plugin-react-hooks": "^4.2.0",
83+
"husky": "^4.3.0",
84+
"jest": "^26.6.3",
85+
"lint-staged": "^10.5.1",
86+
"microbundle": "^0.12.4",
87+
"prettier": "^2.2.0",
88+
"react": "^17.0.1",
89+
"react-dom": "^17.0.1",
90+
"react-hook-form": "^6.11.4",
91+
"react-test-renderer": "^17.0.1",
7992
"rimraf": "^3.0.2",
80-
"rollup": "^2.15.0",
81-
"rollup-plugin-peer-deps-external": "^2.2.2",
82-
"rollup-plugin-sourcemaps": "^0.6.2",
83-
"rollup-plugin-terser": "^6.1.0",
84-
"rollup-plugin-typescript2": "^0.27.1",
85-
"ts-jest": "^26.1.0",
86-
"typescript": "^3.7.2"
93+
"size-limit": "^4.9.0",
94+
"ts-jest": "^26.4.4",
95+
"typescript": "^4.1.2"
8796
},
8897
"peerDependencies": {
8998
"react": ">=16.8.0",
@@ -100,8 +109,7 @@
100109
"npm run lint:fix"
101110
],
102111
"*.{md,json}": [
103-
"prettier --write",
104-
"git add"
112+
"prettier --write"
105113
]
106114
}
107115
}

rollup.config.js

Lines changed: 0 additions & 51 deletions
This file was deleted.

rollup/createRollupConfig.js

Lines changed: 0 additions & 80 deletions
This file was deleted.

rollup/pascalcase.js

Lines changed: 0 additions & 25 deletions
This file was deleted.

rollup/safePackageName.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

rollup/writeCjsEntryFile.js

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/ErrorMessage.tsx

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22
import { useFormContext, get, FieldErrors } from 'react-hook-form';
33
import { Props } from './types';
44

@@ -25,25 +25,18 @@ const ErrorMessage = <
2525
}
2626

2727
const { message: messageFromRegister, types } = error;
28-
const props = {
29-
...rest,
28+
const props = Object.assign({}, rest, {
3029
children: messageFromRegister || message,
31-
};
30+
});
3231

33-
return as ? (
34-
React.isValidElement(as) ? (
35-
React.cloneElement(as, props)
36-
) : (
37-
React.createElement(as as string, props)
38-
)
39-
) : render ? (
40-
(render({
41-
message: messageFromRegister || message,
42-
messages: types,
43-
}) as React.ReactElement)
44-
) : (
45-
<React.Fragment {...props} />
46-
);
32+
return React.isValidElement(as)
33+
? React.cloneElement(as, props)
34+
: render
35+
? (render({
36+
message: messageFromRegister || message,
37+
messages: types,
38+
}) as React.ReactElement)
39+
: React.createElement((as as string) || React.Fragment, props);
4740
};
4841

4942
export { ErrorMessage };

src/index.ie11.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)