@form-instant/react-resolver-zod 0.1.0 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -160
- package/package.json +1 -1
package/README.md
CHANGED
@@ -1,160 +1 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
Congrats! You just saved yourself hours of work by bootstrapping this project with DTS. Let’s get you oriented with what’s here and how to use it.
|
4
|
-
|
5
|
-
> This DTS setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.
|
6
|
-
|
7
|
-
> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)
|
8
|
-
|
9
|
-
## Commands
|
10
|
-
|
11
|
-
DTS scaffolds your new library inside `/src`, and also sets up a [Vite-based](https://vitejs.dev) playground for it inside `/example`.
|
12
|
-
|
13
|
-
The recommended workflow is to run DTS in one terminal:
|
14
|
-
|
15
|
-
```bash
|
16
|
-
npm start # or yarn start
|
17
|
-
```
|
18
|
-
|
19
|
-
This builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.
|
20
|
-
|
21
|
-
Then run the example inside another:
|
22
|
-
|
23
|
-
```bash
|
24
|
-
cd example
|
25
|
-
npm i # or yarn to install dependencies
|
26
|
-
npm start # or yarn start
|
27
|
-
```
|
28
|
-
|
29
|
-
The default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure DTS is running in watch mode like we recommend above.
|
30
|
-
|
31
|
-
To do a one-off build, use `npm run build` or `yarn build`.
|
32
|
-
|
33
|
-
To run tests, use `npm test` or `yarn test`.
|
34
|
-
|
35
|
-
## Configuration
|
36
|
-
|
37
|
-
Code quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.
|
38
|
-
|
39
|
-
### Jest
|
40
|
-
|
41
|
-
Jest tests are set up to run with `npm test` or `yarn test`.
|
42
|
-
|
43
|
-
### Bundle analysis
|
44
|
-
|
45
|
-
Calculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.
|
46
|
-
|
47
|
-
#### Setup Files
|
48
|
-
|
49
|
-
This is the folder structure we set up for you:
|
50
|
-
|
51
|
-
```txt
|
52
|
-
/example
|
53
|
-
index.html
|
54
|
-
index.tsx # test your component here in a demo app
|
55
|
-
package.json
|
56
|
-
tsconfig.json
|
57
|
-
/src
|
58
|
-
index.tsx # EDIT THIS
|
59
|
-
/test
|
60
|
-
index.test.tsx # EDIT THIS
|
61
|
-
.gitignore
|
62
|
-
package.json
|
63
|
-
README.md # EDIT THIS
|
64
|
-
tsconfig.json
|
65
|
-
```
|
66
|
-
|
67
|
-
#### React Testing Library
|
68
|
-
|
69
|
-
We do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.
|
70
|
-
|
71
|
-
### Rollup
|
72
|
-
|
73
|
-
DTS uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.
|
74
|
-
|
75
|
-
### TypeScript
|
76
|
-
|
77
|
-
`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.
|
78
|
-
|
79
|
-
## Continuous Integration
|
80
|
-
|
81
|
-
### GitHub Actions
|
82
|
-
|
83
|
-
Two actions are added by default:
|
84
|
-
|
85
|
-
- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix
|
86
|
-
- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)
|
87
|
-
|
88
|
-
## Optimizations
|
89
|
-
|
90
|
-
Please see the main `dts` [optimizations docs](https://github.com/weiran-zsd/dts-cli#optimizations). In particular, know that you can take advantage of development-only optimizations:
|
91
|
-
|
92
|
-
```js
|
93
|
-
// ./types/index.d.ts
|
94
|
-
declare var __DEV__: boolean;
|
95
|
-
|
96
|
-
// inside your code...
|
97
|
-
if (__DEV__) {
|
98
|
-
console.log('foo');
|
99
|
-
}
|
100
|
-
```
|
101
|
-
|
102
|
-
You can also choose to install and use [invariant](https://github.com/weiran-zsd/dts-cli#invariant) and [warning](https://github.com/weiran-zsd/dts-cli#warning) functions.
|
103
|
-
|
104
|
-
## Module Formats
|
105
|
-
|
106
|
-
CJS, ESModules, and UMD module formats are supported.
|
107
|
-
|
108
|
-
The appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.
|
109
|
-
|
110
|
-
## Deploying the Example Playground
|
111
|
-
|
112
|
-
The Playground is just a simple [Vite](https://vitejs.dev) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):
|
113
|
-
|
114
|
-
```bash
|
115
|
-
cd example # if not already in the example folder
|
116
|
-
npm run build # builds to dist
|
117
|
-
netlify deploy # deploy the dist folder
|
118
|
-
```
|
119
|
-
|
120
|
-
Alternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:
|
121
|
-
|
122
|
-
```bash
|
123
|
-
netlify init
|
124
|
-
# build command: yarn build && cd example && yarn && yarn build
|
125
|
-
# directory to deploy: example/dist
|
126
|
-
# pick yes for netlify.toml
|
127
|
-
```
|
128
|
-
|
129
|
-
## Named Exports
|
130
|
-
|
131
|
-
Per Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.
|
132
|
-
|
133
|
-
## Including Styles
|
134
|
-
|
135
|
-
There are many ways to ship styles, including with CSS-in-JS. DTS has no opinion on this, configure how you like.
|
136
|
-
|
137
|
-
For vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.
|
138
|
-
|
139
|
-
## Publishing to NPM
|
140
|
-
|
141
|
-
We recommend using [np](https://github.com/sindresorhus/np).
|
142
|
-
|
143
|
-
## Usage with Lerna
|
144
|
-
|
145
|
-
When creating a new package with DTS within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.
|
146
|
-
|
147
|
-
The problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.
|
148
|
-
|
149
|
-
Change the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.
|
150
|
-
|
151
|
-
```diff
|
152
|
-
"alias": {
|
153
|
-
- "react": "../node_modules/react",
|
154
|
-
- "react-dom": "../node_modules/react-dom"
|
155
|
-
+ "react": "../../../node_modules/react",
|
156
|
-
+ "react-dom": "../../../node_modules/react-dom"
|
157
|
-
},
|
158
|
-
```
|
159
|
-
|
160
|
-
An alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/formium/tsdx/issues/64)
|
1
|
+
# GO to **_[@form-instant/react-input-mapping](https://www.npmjs.com/package/@form-instant/react-input-mapping)_**
|