|
1 |
| -# React + TypeScript + Vite |
| 1 | +# Reactjs is a turing complete programming language |
2 | 2 |
|
3 |
| -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. |
| 3 | +Note: Uses react canary (19) |
4 | 4 |
|
5 |
| -Currently, two official plugins are available: |
| 5 | +Our [App.tsx](./src/App.tsx) here calculates factorial of a number, fibonacci sequence and does a bit of arithmetics but it does all that using react (not JS). What I mean by that is: |
| 6 | +- No function recursion |
| 7 | +- No loops |
| 8 | +- No if-else/ternaries/`&& ||` ternaries |
| 9 | +- No switch-case |
| 10 | +- No arithmetic operators (Currently I'm still minus for convinience but that'll change) |
6 | 11 |
|
7 |
| -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh |
8 |
| -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh |
| 12 | +## How it works |
9 | 13 |
|
10 |
| -## Expanding the ESLint configuration |
| 14 | +It's all a blur now. I was in a state of trance when I wrote this. But basically, it uses Suspense and react's ability to get stuck in infinite render/state-update loop to calculate things. |
11 | 15 |
|
12 |
| -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: |
| 16 | +Don't want to spend more time on this so if you need more details, go through the code or ask me. I'll be happy to explain. |
13 | 17 |
|
14 |
| -- Configure the top-level `parserOptions` property like this: |
15 |
| - |
16 |
| -```js |
17 |
| -export default { |
18 |
| - // other rules... |
19 |
| - parserOptions: { |
20 |
| - ecmaVersion: 'latest', |
21 |
| - sourceType: 'module', |
22 |
| - project: ['./tsconfig.json', './tsconfig.node.json'], |
23 |
| - tsconfigRootDir: __dirname, |
24 |
| - }, |
25 |
| -} |
26 |
| -``` |
27 |
| - |
28 |
| -- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` |
29 |
| -- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` |
30 |
| -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list |
0 commit comments