diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 8f7a94e..0000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -/dist -/src/vendor diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..72d5492 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,39 @@ +/* eslint-env node */ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:import/recommended', + 'plugin:import/typescript', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + 'plugin:jsx-a11y/recommended', + 'prettier', + ], + ignorePatterns: ['dist/'], + settings: { + 'import/resolver': { + typescript: true, + }, + react: { version: 'detect' }, + }, + rules: { + 'import/no-unresolved': ['error', { ignore: ['jotai-trpc'] }], + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + }, +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 61080b8..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint", - "prettier" - ], - "extends": [ - "plugin:@typescript-eslint/recommended", - "airbnb", - "plugin:prettier/recommended" - ], - "env": { - "browser": true - }, - "globals": { - "JSX": "readonly" - }, - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".ts", ".tsx"] - } - } - }, - "rules": { - "react/jsx-uses-react": "off", - "react/react-in-jsx-scope": "off", - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-explicit-any": "off", - "react/jsx-filename-extension": ["error", { "extensions": [".js", ".tsx"] }], - "react/prop-types": "off", - "react/jsx-one-expression-per-line": "off", - "import/extensions": ["error", "never"], - "import/prefer-default-export": "off", - "import/no-unresolved": ["error", { "ignore": ["jotai-trpc"] }], - "no-param-reassign": "off", - "no-plusplus": "off", - "no-bitwise": "off", - "symbol-description": "off", - "prefer-object-spread": "off", - "no-use-before-define": "off", - "no-unused-vars": "off", - "no-redeclare": "off", - "react/function-component-definition": ["error", { "namedComponents": "arrow-function" }] - }, - "overrides": [{ - "files": ["__tests__/**/*"], - "env": { - "jest": true - }, - "rules": { - "import/no-extraneous-dependencies": ["error", { "devDependencies": true }] - } - }, { - "files": ["examples/**/*"], - "rules": { - "import/no-extraneous-dependencies": "off" - } - }] -} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..e6d29c2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +/pnpm-lock.yaml +/dist diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index a20502b..0000000 --- a/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "singleQuote": true, - "trailingComma": "all" -} diff --git a/CHANGELOG.md b/CHANGELOG.md index 804f944..2b9c912 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,42 +3,62 @@ ## [Unreleased] ## [0.6.1] - 2024-04-09 + ### Changed + - Fix refresh query atom type #22 ## [0.6.0] - 2024-03-11 + ### Changed + - feat: refreshable query atom #19 ## [0.5.1] - 2023-04-26 + ### Changed + - feat: disabled option in atomWithQuery, support async input #14 ## [0.5.0] - 2023-01-31 + ### Added + - Migrate to Jotai v2 API #8 ## [0.4.1] - 2022-11-29 + ### Changed + - fix: should be mutate method, instead of mutation #10 ## [0.4.0] - 2022-11-22 + ### Added + - trpc 10 migration #6 ## [0.3.0] - 2022-09-24 + ### Added + - feat: atomWithSubscription #7 - feat: atomWithMutation #5 ## [0.2.0] - 2022-08-29 + ### Changed + - breaking: split path from args #2 ## [0.1.1] - 2022-08-26 + ### Changed + - fix types #1 ## [0.1.0] - 2022-08-25 + ### Added + - Initial release diff --git a/__tests__/01_basic_spec.tsx b/__tests__/01_basic_spec.tsx deleted file mode 100644 index e1ccb30..0000000 --- a/__tests__/01_basic_spec.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { createTRPCJotai } from '../src/index'; - -describe('basic spec', () => { - it('should export functions', () => { - expect(createTRPCJotai).toBeDefined(); - }); -}); diff --git a/examples/01_typescript/index.html b/examples/01_typescript/index.html new file mode 100644 index 0000000..ec005a3 --- /dev/null +++ b/examples/01_typescript/index.html @@ -0,0 +1,9 @@ + + + example + + +
+ + + diff --git a/examples/01_typescript/package.json b/examples/01_typescript/package.json index 22abb3a..dafa631 100644 --- a/examples/01_typescript/package.json +++ b/examples/01_typescript/package.json @@ -1,30 +1,24 @@ { - "name": "jotai-trpc-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "module", "dependencies": { "@trpc/client": "latest", "@trpc/server": "latest", - "@types/react": "latest", - "@types/react-dom": "latest", "jotai": "latest", "jotai-trpc": "latest", "react": "latest", "react-dom": "latest", - "react-scripts": "latest", - "trpc-pokemon": "latest", - "typescript": "latest" + "trpc-pokemon": "latest" }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" + "devDependencies": { + "@types/react": "latest", + "@types/react-dom": "latest", + "typescript": "latest", + "vite": "latest" }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + "scripts": { + "dev": "vite" + } } diff --git a/examples/01_typescript/public/index.html b/examples/01_typescript/public/index.html deleted file mode 100644 index 6baf17e..0000000 --- a/examples/01_typescript/public/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - - jotai-trpc example - - -
- - diff --git a/examples/01_typescript/src/App.tsx b/examples/01_typescript/src/app.tsx similarity index 96% rename from examples/01_typescript/src/App.tsx rename to examples/01_typescript/src/app.tsx index 8a473fc..fb6dd98 100644 --- a/examples/01_typescript/src/App.tsx +++ b/examples/01_typescript/src/app.tsx @@ -1,4 +1,4 @@ -import React, { Suspense } from 'react'; +import { Suspense } from 'react'; import { useAtom } from 'jotai/react'; import { atom } from 'jotai/vanilla'; import { httpLink } from '@trpc/client'; diff --git a/examples/01_typescript/src/index.tsx b/examples/01_typescript/src/index.tsx deleted file mode 100644 index bfd6d8f..0000000 --- a/examples/01_typescript/src/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client'; - -import App from './App'; - -const ele = document.getElementById('app'); -if (ele) { - createRoot(ele).render(); -} diff --git a/examples/01_typescript/src/main.tsx b/examples/01_typescript/src/main.tsx new file mode 100644 index 0000000..1a72c01 --- /dev/null +++ b/examples/01_typescript/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; + +import App from './app'; + +createRoot(document.getElementById('root')!).render( + + + , +); diff --git a/examples/01_typescript/tsconfig.json b/examples/01_typescript/tsconfig.json new file mode 100644 index 0000000..f9e0a7e --- /dev/null +++ b/examples/01_typescript/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "strict": true, + "target": "es2018", + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "skipLibCheck": true, + "allowJs": true, + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true, + "jsx": "react-jsx" + } +} diff --git a/examples/02_authtoken/index.html b/examples/02_authtoken/index.html new file mode 100644 index 0000000..ec005a3 --- /dev/null +++ b/examples/02_authtoken/index.html @@ -0,0 +1,9 @@ + + + example + + +
+ + + diff --git a/examples/02_authtoken/package.json b/examples/02_authtoken/package.json index a59e280..b37a0b2 100644 --- a/examples/02_authtoken/package.json +++ b/examples/02_authtoken/package.json @@ -1,31 +1,25 @@ { - "name": "jotai-trpc-example", - "version": "0.1.0", + "name": "example", + "version": "0.0.0", "private": true, + "type": "module", "dependencies": { "@trpc/client": "latest", "@trpc/server": "latest", - "@types/react": "latest", - "@types/react-dom": "latest", "jotai": "latest", "jotai-trpc": "latest", "react": "latest", "react-dom": "latest", "react-error-boundary": "latest", - "react-scripts": "latest", - "trpc-pokemon": "latest", - "typescript": "latest" + "trpc-pokemon": "latest" }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" + "devDependencies": { + "@types/react": "latest", + "@types/react-dom": "latest", + "typescript": "latest", + "vite": "latest" }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + "scripts": { + "dev": "vite" + } } diff --git a/examples/02_authtoken/public/index.html b/examples/02_authtoken/public/index.html deleted file mode 100644 index 6baf17e..0000000 --- a/examples/02_authtoken/public/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - - jotai-trpc example - - -
- - diff --git a/examples/02_authtoken/src/App.tsx b/examples/02_authtoken/src/app.tsx similarity index 97% rename from examples/02_authtoken/src/App.tsx rename to examples/02_authtoken/src/app.tsx index 65d4509..9bc3354 100644 --- a/examples/02_authtoken/src/App.tsx +++ b/examples/02_authtoken/src/app.tsx @@ -1,4 +1,4 @@ -import React, { Suspense } from 'react'; +import { Suspense } from 'react'; import { useAtom } from 'jotai/react'; import { atom } from 'jotai/vanilla'; import { createTRPCProxyClient, httpLink } from '@trpc/client'; @@ -42,7 +42,7 @@ const Pokemon = () => { return (