diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..9220398 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +dist +node_modules +package.json +tsconfig.json +vercel.json diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..5225309 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,12 @@ +{ + "extends": [ + "@nuxtjs/eslint-config-typescript" + ], + "rules": { + "@typescript-eslint/no-unused-vars": [ + "off" + ], + "vue/multi-word-component-names": "off", + "vue/no-multiple-template-root": "off" + } +} diff --git a/package.json b/package.json index 664c8de..6d261a7 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,7 @@ "type": "module", "version": "0.4.0-beta.15", "license": "MIT", - "main": "./dist/index.mjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "sideEffects": false, "exports": { "./package.json": "./package.json", ".": { @@ -20,12 +18,14 @@ "import": "./module.mjs" } }, + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "files": [ "dist", "client.d.ts", "module.mjs" ], - "sideEffects": false, "scripts": { "dev": "concurrently \"pnpm build --watch\" \"pnpm --filter playground dev\"", "dev:prepare": "pnpm build && nuxt prepare playground", @@ -47,7 +47,7 @@ "ufo": "^0.8.6" }, "devDependencies": { - "@antfu/eslint-config": "^0.29.3", + "@nuxtjs/eslint-config-typescript": "^11.0.0", "@trpc/client": "10.0.0-rc.4", "@trpc/server": "10.0.0-rc.4", "bumpp": "^8.2.1", @@ -56,11 +56,5 @@ "nuxt": "3.0.0-rc.13", "tsup": "6.4.0", "typescript": "^4.7.4" - }, - "eslintConfig": { - "extends": "@antfu", - "rules": { - "no-console": "warn" - } } } diff --git a/playground/pages/index.vue b/playground/pages/index.vue index f156c47..d3c3baa 100644 --- a/playground/pages/index.vue +++ b/playground/pages/index.vue @@ -15,19 +15,18 @@ const addTodo = async () => { id: Date.now(), userId: 69, title, - completed: false, + completed: false }) console.log(x.data.value) - } - catch (e) { + } catch (e) { console.log(e) } } const { data: todos, pending, error, refresh } = await $client.todo.getTodos.query(undefined, { trpc: { - abortOnUnmount: true, - }, + abortOnUnmount: true + } }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d804ebf..ba4f5c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,7 +4,7 @@ importers: .: specifiers: - '@antfu/eslint-config': ^0.29.3 + '@nuxtjs/eslint-config-typescript': ^11.0.0 '@trpc/client': 10.0.0-rc.4 '@trpc/server': 10.0.0-rc.4 bumpp: ^8.2.1 @@ -23,7 +23,7 @@ importers: ohash: 0.1.5 ufo: 0.8.6 devDependencies: - '@antfu/eslint-config': 0.29.3_wyqvi574yv7oiwfeinomdzmc3m + '@nuxtjs/eslint-config-typescript': 11.0.0_wyqvi574yv7oiwfeinomdzmc3m '@trpc/client': 10.0.0-rc.4_@trpc+server@10.0.0-rc.4 '@trpc/server': 10.0.0-rc.4 bumpp: 8.2.1 @@ -215,92 +215,6 @@ packages: '@jridgewell/trace-mapping': 0.3.17 dev: true - /@antfu/eslint-config-basic/0.29.3_6xw5wg2354iw4zujk2f3vyfrzu: - resolution: {integrity: sha512-zC9lcwqCZhi75Dh4qAXLBIFnVfXoBS8Tg9Caq7wE+3CbDqXNwwQKxCZQgbc7ZcYwP6sZmd1Z1AsCrrm/eoS12Q==} - peerDependencies: - eslint: '>=7.4.0' - dependencies: - eslint: 8.26.0 - eslint-plugin-antfu: 0.29.3_wyqvi574yv7oiwfeinomdzmc3m - eslint-plugin-eslint-comments: 3.2.0_eslint@8.26.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.26.0_5aea5dp4n23mfv4y2mmjxole3e - eslint-plugin-jsonc: 2.5.0_eslint@8.26.0 - eslint-plugin-markdown: 3.0.0_eslint@8.26.0 - eslint-plugin-n: 15.4.0_eslint@8.26.0 - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-promise: 6.1.1_eslint@8.26.0 - eslint-plugin-unicorn: 43.0.2_eslint@8.26.0 - eslint-plugin-yml: 1.2.0_eslint@8.26.0 - jsonc-eslint-parser: 2.1.0 - yaml-eslint-parser: 1.1.0 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - typescript - dev: true - - /@antfu/eslint-config-ts/0.29.3_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-yOQVA++cHAe3tggnPFjAH/5SC/t2krkj/n9dJSbaCc4rUzr/vtaHt816TxIVc+iYqrIeN45OnMFdFngfq2RY0Q==} - peerDependencies: - eslint: '>=7.4.0' - typescript: '>=3.9' - dependencies: - '@antfu/eslint-config-basic': 0.29.3_6xw5wg2354iw4zujk2f3vyfrzu - '@typescript-eslint/eslint-plugin': 5.42.0_6xw5wg2354iw4zujk2f3vyfrzu - '@typescript-eslint/parser': 5.42.0_wyqvi574yv7oiwfeinomdzmc3m - eslint: 8.26.0 - typescript: 4.8.4 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /@antfu/eslint-config-vue/0.29.3_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-FFNI4riCjItDent3P0jlccUoSfTrdqjmWpFO52n6pC7CZXUs1P7A0sWjoHc2jxBLNqJ94fzlMsNJbbnlqqPMTw==} - peerDependencies: - eslint: '>=7.4.0' - dependencies: - '@antfu/eslint-config-ts': 0.29.3_wyqvi574yv7oiwfeinomdzmc3m - eslint: 8.26.0 - eslint-plugin-vue: 9.7.0_eslint@8.26.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - typescript - dev: true - - /@antfu/eslint-config/0.29.3_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-J6QObVJc0+s2Gk1AXSj7pRI8ZamOwj6yy60Bbbh7zJY/VLTImndI6LqhTDlVfEZ38DcpJl3SSX/PXusXBxTN6g==} - peerDependencies: - eslint: '>=7.4.0' - dependencies: - '@antfu/eslint-config-vue': 0.29.3_wyqvi574yv7oiwfeinomdzmc3m - '@typescript-eslint/eslint-plugin': 5.42.0_6xw5wg2354iw4zujk2f3vyfrzu - '@typescript-eslint/parser': 5.42.0_wyqvi574yv7oiwfeinomdzmc3m - eslint: 8.26.0 - eslint-plugin-eslint-comments: 3.2.0_eslint@8.26.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.26.0_5aea5dp4n23mfv4y2mmjxole3e - eslint-plugin-jsonc: 2.5.0_eslint@8.26.0 - eslint-plugin-n: 15.4.0_eslint@8.26.0 - eslint-plugin-promise: 6.1.1_eslint@8.26.0 - eslint-plugin-unicorn: 43.0.2_eslint@8.26.0 - eslint-plugin-vue: 9.7.0_eslint@8.26.0 - eslint-plugin-yml: 1.2.0_eslint@8.26.0 - jsonc-eslint-parser: 2.1.0 - yaml-eslint-parser: 1.1.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - typescript - dev: true - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -880,7 +794,7 @@ packages: '@tailwindcss/typography': 0.5.7 '@vueuse/core': 9.4.0 '@vueuse/nuxt': 9.4.0_nuxt@3.0.0-rc.13 - pinceau: 0.6.10 + pinceau: 0.6.11 socket.io-client: 4.5.3 vue-plausible: 1.3.2 transitivePeerDependencies: @@ -921,7 +835,7 @@ packages: '@tailwindcss/typography': 0.5.7 '@vueuse/core': 9.4.0 '@vueuse/nuxt': 9.4.0_nuxt@3.0.0-rc.13 - pinceau: 0.6.10 + pinceau: 0.6.11 socket.io-client: 4.5.3 vue-plausible: 1.3.2 transitivePeerDependencies: @@ -1306,6 +1220,43 @@ packages: - supports-color dev: true + /@nuxtjs/eslint-config-typescript/11.0.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-hmFjGtXT524ql8eTbK8BaRkamcXB6Z8YOW8nSQhosTP6oBw9WtOFUeWr7holyE278UhOmx+wDFG90BnyM9D+UA==} + peerDependencies: + eslint: ^8.23.0 + dependencies: + '@nuxtjs/eslint-config': 11.0.0_goironxpvhcmocjenyhcuwtawi + '@typescript-eslint/eslint-plugin': 5.42.0_6xw5wg2354iw4zujk2f3vyfrzu + '@typescript-eslint/parser': 5.42.0_wyqvi574yv7oiwfeinomdzmc3m + eslint: 8.26.0 + eslint-import-resolver-typescript: 3.5.2_mynvxvmq5qtyojffiqgev4x7mm + eslint-plugin-import: 2.26.0_goironxpvhcmocjenyhcuwtawi + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + - typescript + dev: true + + /@nuxtjs/eslint-config/11.0.0_goironxpvhcmocjenyhcuwtawi: + resolution: {integrity: sha512-o4zFOpU8gJgwrC/gLE7c2E0XEjkv2fEixCGG1y+dZYzBPyzTorkQmfxskSF3WRXcZkpkS9uUYlRkeOSdYB7z0w==} + peerDependencies: + eslint: ^8.23.0 + dependencies: + eslint: 8.26.0 + eslint-config-standard: 17.0.0_pxgizx7scytnzv6tfhdgsab7u4 + eslint-plugin-import: 2.26.0_goironxpvhcmocjenyhcuwtawi + eslint-plugin-n: 15.4.0_eslint@8.26.0 + eslint-plugin-node: 11.1.0_eslint@8.26.0 + eslint-plugin-promise: 6.1.1_eslint@8.26.0 + eslint-plugin-unicorn: 43.0.2_eslint@8.26.0 + eslint-plugin-vue: 9.7.0_eslint@8.26.0 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /@nuxtjs/tailwindcss/5.3.5: resolution: {integrity: sha512-d6noacVfcN88R6Iqd5/kl7YyumE+EIsz6ky26JvidHtkTeAPxZt8XN/KFEMJ6xwSvhsUndrNW94XYPKv7l79jg==} dependencies: @@ -1565,6 +1516,18 @@ packages: '@octokit/openapi-types': 14.0.0 dev: true + /@pkgr/utils/2.3.1: + resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + is-glob: 4.0.3 + open: 8.4.0 + picocolors: 1.0.0 + tiny-glob: 0.2.9 + tslib: 2.4.1 + dev: true + /@rollup/plugin-alias/4.0.2_rollup@2.79.1: resolution: {integrity: sha512-1hv7dBOZZwo3SEupxn4UA2N0EDThqSSS+wI1St1TNTBtOZvUchyIClyHcnDcjjrReTPZ47Faedrhblv4n+T5UQ==} engines: {node: '>=14.0.0'} @@ -2923,26 +2886,14 @@ packages: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} dev: true - /character-entities-legacy/1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: true - /character-entities-legacy/3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} dev: true - /character-entities/1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: true - /character-entities/2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} dev: true - /character-reference-invalid/1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: true - /character-reference-invalid/2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} dev: true @@ -3588,14 +3539,6 @@ packages: entities: 2.2.0 dev: true - /dom-serializer/2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.4.0 - dev: true - /domelementtype/2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true @@ -3607,13 +3550,6 @@ packages: domelementtype: 2.3.0 dev: true - /domhandler/5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - /domino/2.1.6: resolution: {integrity: sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==} dev: true @@ -3626,14 +3562,6 @@ packages: domhandler: 4.3.1 dev: true - /domutils/3.0.1: - resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dev: true - /dot-case/3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: @@ -3737,11 +3665,6 @@ packages: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - /entities/4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} - engines: {node: '>=0.12'} - dev: true - /errno/0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true @@ -4243,6 +4166,20 @@ packages: engines: {node: '>=12'} dev: true + /eslint-config-standard/17.0.0_pxgizx7scytnzv6tfhdgsab7u4: + resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: ^15.0.0 + eslint-plugin-promise: ^6.0.0 + dependencies: + eslint: 8.26.0 + eslint-plugin-import: 2.26.0_goironxpvhcmocjenyhcuwtawi + eslint-plugin-n: 15.4.0_eslint@8.26.0 + eslint-plugin-promise: 6.1.1_eslint@8.26.0 + dev: true + /eslint-import-resolver-node/0.3.6: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: @@ -4252,7 +4189,27 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_yytd4qhylm3dyr3j4r4rwmq2vy: + /eslint-import-resolver-typescript/3.5.2_mynvxvmq5qtyojffiqgev4x7mm: + resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.10.0 + eslint: 8.26.0 + eslint-plugin-import: 2.26.0_goironxpvhcmocjenyhcuwtawi + get-tsconfig: 4.2.0 + globby: 13.1.2 + is-core-module: 2.11.0 + is-glob: 4.0.3 + synckit: 0.8.4 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.4_qb77tvqmmknihyhpbuxoamq35e: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -4277,18 +4234,20 @@ packages: debug: 3.2.7 eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 3.5.2_mynvxvmq5qtyojffiqgev4x7mm transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-antfu/0.29.3_wyqvi574yv7oiwfeinomdzmc3m: - resolution: {integrity: sha512-4WddmXVBtCPMJPlyWYrgfwirqOIM0GHTMv09inJB20MZEfvT+uboMxdZKSLoLdJgoXnDI4IFoOKbEzjUuOWBSw==} + /eslint-plugin-es/3.0.1_eslint@8.26.0: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' dependencies: - '@typescript-eslint/utils': 5.42.0_wyqvi574yv7oiwfeinomdzmc3m - transitivePeerDependencies: - - eslint - - supports-color - - typescript + eslint: 8.26.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 dev: true /eslint-plugin-es/4.1.0_eslint@8.26.0: @@ -4302,24 +4261,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-eslint-comments/3.2.0_eslint@8.26.0: - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.26.0 - ignore: 5.2.0 - dev: true - - /eslint-plugin-html/7.1.0: - resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} - dependencies: - htmlparser2: 8.0.1 - dev: true - - /eslint-plugin-import/2.26.0_5aea5dp4n23mfv4y2mmjxole3e: + /eslint-plugin-import/2.26.0_goironxpvhcmocjenyhcuwtawi: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -4336,7 +4278,7 @@ packages: doctrine: 2.1.0 eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_yytd4qhylm3dyr3j4r4rwmq2vy + eslint-module-utils: 2.7.4_qb77tvqmmknihyhpbuxoamq35e has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -4350,30 +4292,6 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc/2.5.0_eslint@8.26.0: - resolution: {integrity: sha512-G257khwkrOQ5MJpSzz4yQh5K12W4xFZRcHmVlhVFWh2GCLDX+JwHnmkQoUoFDbOieSPBMsPFZDTJScwrXiWlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - eslint: 8.26.0 - eslint-utils: 3.0.0_eslint@8.26.0 - jsonc-eslint-parser: 2.1.0 - natural-compare: 1.4.0 - dev: true - - /eslint-plugin-markdown/3.0.0_eslint@8.26.0: - resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.26.0 - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-n/15.4.0_eslint@8.26.0: resolution: {integrity: sha512-MkoKy9/lfd52TAXK4fkABgCp0aglk82Q3viy2UOWIEpTVE/Cem5P/UAxMBA4vSw7Gy+2egPqImE9euitLGp5aw==} engines: {node: '>=12.22.0'} @@ -4391,9 +4309,19 @@ packages: semver: 7.3.8 dev: true - /eslint-plugin-no-only-tests/3.1.0: - resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} - engines: {node: '>=5.0.0'} + /eslint-plugin-node/11.1.0_eslint@8.26.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.26.0 + eslint-plugin-es: 3.0.1_eslint@8.26.0 + eslint-utils: 2.1.0 + ignore: 5.2.0 + minimatch: 3.1.2 + resolve: 1.22.1 + semver: 6.3.0 dev: true /eslint-plugin-promise/6.1.1_eslint@8.26.0: @@ -4446,21 +4374,6 @@ packages: - supports-color dev: true - /eslint-plugin-yml/1.2.0_eslint@8.26.0: - resolution: {integrity: sha512-v0jAU/F5SJg28zkpxwGpY04eGZMWFP6os8u2qaEAIRjSH2GqrNl0yBR5+sMHLU/026kAduxVbvLSqmT3Mu3O0g==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - debug: 4.3.4 - eslint: 8.26.0 - lodash: 4.17.21 - natural-compare: 1.4.0 - yaml-eslint-parser: 1.1.0 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-scope/5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -4910,6 +4823,10 @@ packages: get-intrinsic: 1.1.3 dev: true + /get-tsconfig/4.2.0: + resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==} + dev: true + /git-config-path/2.0.0: resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} @@ -4999,6 +4916,10 @@ packages: type-fest: 0.20.2 dev: true + /globalyzer/0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -5022,6 +4943,10 @@ packages: slash: 4.0.0 dev: true + /globrex/0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + /got/11.8.5: resolution: {integrity: sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==} engines: {node: '>=10.19.0'} @@ -5241,15 +5166,6 @@ packages: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} dev: true - /htmlparser2/8.0.1: - resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.0.1 - entities: 4.4.0 - dev: true - /http-assert/1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -5480,21 +5396,10 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-alphabetical/1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: true - /is-alphabetical/2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} dev: true - /is-alphanumerical/1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: true - /is-alphanumerical/2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: @@ -5557,10 +5462,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-decimal/1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: true - /is-decimal/2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} dev: true @@ -5601,10 +5502,6 @@ packages: is-extglob: 2.1.1 dev: true - /is-hexadecimal/1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: true - /is-hexadecimal/2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: true @@ -5804,16 +5701,6 @@ packages: hasBin: true dev: true - /jsonc-eslint-parser/2.1.0: - resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.1 - eslint-visitor-keys: 3.3.0 - espree: 9.4.0 - semver: 7.3.8 - dev: true - /jsonc-parser/3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true @@ -6142,18 +6029,6 @@ packages: unist-util-visit-parents: 5.1.1 dev: true - /mdast-util-from-markdown/0.8.5: - resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} - dependencies: - '@types/mdast': 3.0.10 - mdast-util-to-string: 2.0.0 - micromark: 2.11.4 - parse-entities: 2.0.0 - unist-util-stringify-position: 2.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /mdast-util-from-markdown/1.2.0: resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} dependencies: @@ -6255,10 +6130,6 @@ packages: zwitch: 2.0.2 dev: true - /mdast-util-to-string/2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: true - /mdast-util-to-string/3.1.0: resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} dev: true @@ -6530,15 +6401,6 @@ packages: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} dev: true - /micromark/2.11.4: - resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - dependencies: - debug: 4.3.4 - parse-entities: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /micromark/3.1.0: resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} dependencies: @@ -7300,17 +7162,6 @@ packages: callsites: 3.1.0 dev: true - /parse-entities/2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: true - /parse-entities/4.0.0: resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} dependencies: @@ -7431,8 +7282,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /pinceau/0.6.10: - resolution: {integrity: sha512-ioX7XMn6QUR0Xgdg2dKvy6wnJSA0p6JMWS/ddwjbcfUnegBC5SbdVNgWDReGYT3q9o+RvrY4RjjtVkjM2pSmow==} + /pinceau/0.6.11: + resolution: {integrity: sha512-1N5Ci8byjkN1QOkDY44U93HVgz3bULIPHXefxW5shMG3BwxnK9YjqpuppeG2aQR7mSe5PURjb+kyWJrjCQTNvQ==} dependencies: '@unocss/reset': 0.46.3 '@volar/vue-language-core': 1.0.9 @@ -9004,6 +8855,14 @@ packages: stable: 0.1.8 dev: true + /synckit/0.8.4: + resolution: {integrity: sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.3.1 + tslib: 2.4.1 + dev: true + /tailwind-config-viewer/1.7.2_tailwindcss@3.2.1: resolution: {integrity: sha512-3JJCeAAlvG+i/EBj+tQb0x4weo30QjdSAo4hlcnVbtD+CkpzHi/UwU9InbPMcYH+ESActoa2kCyjpLEyjEkn0Q==} engines: {node: '>=8'} @@ -9138,6 +8997,13 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /tiny-glob/0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + /tiny-invariant/1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: true @@ -9473,12 +9339,6 @@ packages: unist-util-visit-parents: 5.1.1 dev: true - /unist-util-stringify-position/2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - dependencies: - '@types/unist': 2.0.6 - dev: true - /unist-util-stringify-position/3.0.2: resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} dependencies: @@ -10065,25 +9925,11 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml-eslint-parser/1.1.0: - resolution: {integrity: sha512-b464Q1fYiX1oYx2kE8k4mEp6S9Prk+tfDsY/IPxQ0FCjEuj3AKko5Skf3/yQJeYTTDyjDE+aWIJemnv29HvEWQ==} - engines: {node: ^14.17.0 || >=16.0.0} - dependencies: - eslint-visitor-keys: 3.3.0 - lodash: 4.17.21 - yaml: 2.1.3 - dev: true - /yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true - /yaml/2.1.3: - resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} - engines: {node: '>= 14'} - dev: true - /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} diff --git a/src/client/index.ts b/src/client/index.ts index 893c07d..019cb22 100644 --- a/src/client/index.ts +++ b/src/client/index.ts @@ -1,7 +1,7 @@ import type { CreateTRPCClientOptions, inferRouterProxyClient } from '@trpc/client' import { createTRPCProxyClient } from '@trpc/client' import type { - AnyRouter, + AnyRouter } from '@trpc/server' import { createFlatProxy, createRecursiveProxy } from '@trpc/server/shared' import { hash } from 'ohash' @@ -13,14 +13,14 @@ import { getCurrentInstance, onScopeDispose, useAsyncData } from '#imports' /** * Calculates the key used for `useAsyncData` call */ -export function getQueryKey( +export function getQueryKey ( path: string, - input: unknown, + input: unknown ): string { return input === undefined ? path : `${path}-${hash(input || '')}` } -function createNuxtProxyDecoration(name: string, client: inferRouterProxyClient) { +function createNuxtProxyDecoration (name: string, client: inferRouterProxyClient) { return createRecursiveProxy((opts) => { const args = opts.args @@ -50,12 +50,12 @@ function createNuxtProxyDecoration(name: string, clie return useAsyncData(queryKey, () => (client as any)[path][lastArg](input, { signal: controller?.signal, - ...trpc, + ...trpc }), asyncDataOptions) }) } -export function createTRPCNuxtProxyClient(opts: CreateTRPCClientOptions) { +export function createTRPCNuxtProxyClient (opts: CreateTRPCClientOptions) { const client = createTRPCProxyClient(opts) const decoratedClient = createFlatProxy((key) => { diff --git a/src/server.ts b/src/server.ts index 1c130fc..42c2500 100644 --- a/src/server.ts +++ b/src/server.ts @@ -4,10 +4,10 @@ import type { AnyRouter, ProcedureType, inferRouterContext, - inferRouterError, + inferRouterError } from '@trpc/server' import { - TRPCError, + TRPCError } from '@trpc/server' import { createURL } from 'ufo' import type { H3Event } from 'h3' @@ -49,27 +49,25 @@ export interface ResolveHTTPRequestOptions { } } -function getPath(event: H3Event): string | null { - if (typeof event.context.params.trpc === 'string') - return event.context.params.trpc +function getPath (event: H3Event): string | null { + if (typeof event.context.params.trpc === 'string') { return event.context.params.trpc } - if (Array.isArray(event.context.params.trpc)) - return event.context.params.trpc.join('/') + if (Array.isArray(event.context.params.trpc)) { return event.context.params.trpc.join('/') } return null } -export function createNuxtApiHandler({ +export function createNuxtApiHandler ({ router, createContext, responseMeta, onError, - batching, + batching }: ResolveHTTPRequestOptions) { return defineEventHandler(async (event) => { const { req, - res, + res } = event const $url = createURL(req.url!) @@ -81,17 +79,17 @@ export function createNuxtApiHandler({ error: new TRPCError({ message: 'Param "trpc" not found - is the file named `[trpc]`.ts or `[...trpc].ts`?', - code: 'INTERNAL_SERVER_ERROR', + code: 'INTERNAL_SERVER_ERROR' }), type: 'unknown', ctx: undefined, path: undefined, - input: undefined, + input: undefined }) throw createError({ statusCode: 500, - statusMessage: JSON.stringify(error), + statusMessage: JSON.stringify(error) }) } @@ -102,17 +100,17 @@ export function createNuxtApiHandler({ method: req.method!, headers: req.headers, body: isMethod(event, 'GET') ? null : await readBody(event), - query: $url.searchParams, + query: $url.searchParams }, path, - createContext: async () => createContext?.(event), + createContext: async () => await createContext?.(event), responseMeta, onError: (o) => { onError?.({ ...o, - req, + req }) - }, + } }) const { status, headers, body } = httpResponse