From bd89bf53a4d7eb1a8dfcc3a93fdd026dc1bb518b Mon Sep 17 00:00:00 2001 From: Anton Wester Date: Sun, 9 Oct 2022 20:05:31 +0200 Subject: [PATCH 1/5] bump tRPC and replace react-query with @tanstack/react-query --- packages/api/package.json | 2 +- packages/api/src/index.ts | 5 +- packages/app/package.json | 10 +- .../app/provider/APIProvider/APIProvider.tsx | 2 +- packages/app/provider/AuthProvider/hooks.ts | 2 +- prisma/schema.prisma | 2 +- yarn.lock | 149 +++++------------- 7 files changed, 55 insertions(+), 117 deletions(-) diff --git a/packages/api/package.json b/packages/api/package.json index 3942bc0..abd4e8c 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -6,7 +6,7 @@ ], "private": true, "dependencies": { - "@trpc/server": "^9.15.0", + "@trpc/server": "10.0.0-proxy-beta.17", "bcrypt": "^5.0.1", "jsonwebtoken": "^8.5.1", "zod": "^3.17.2" diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index 9107e91..2d1761b 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -2,8 +2,11 @@ import { createRouter } from './routers/context' import { authRouter } from './routers/auth' import { postRouter } from './routers/post' -export const appRouter = createRouter() +const legacyRouter = createRouter() .merge('auth.', authRouter) .merge('post.', postRouter) + .interop() + +export const appRouter = legacyRouter export type AppRouter = typeof appRouter diff --git a/packages/app/package.json b/packages/app/package.json index 9b9d0e1..93aa870 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -5,10 +5,10 @@ "dependencies": { "@react-navigation/native": "^6.0.8", "@react-navigation/native-stack": "^6.5.0", - "@trpc/client": "^9.15.0", - "@trpc/next": "^9.15.0", - "@trpc/react": "^9.15.0", - "@trpc/server": "^9.15.0", + "@trpc/client": "10.0.0-proxy-beta.17", + "@trpc/next": "10.0.0-proxy-beta.17", + "@trpc/react": "10.0.0-proxy-beta.17", + "@trpc/server": "10.0.0-proxy-beta.17", "api": "*", "dripsy": "^3.6.0", "expo-linking": "^3.0.0", @@ -16,7 +16,7 @@ "jwt-decode": "^3.1.2", "lib": "*", "moti": "canary", - "react-query": "^3.34.7", + "@tanstack/react-query": "^4.10.3", "solito": "latest", "twrnc": "^3.3.3", "universal": "*" diff --git a/packages/app/provider/APIProvider/APIProvider.tsx b/packages/app/provider/APIProvider/APIProvider.tsx index fb77496..447e19e 100644 --- a/packages/app/provider/APIProvider/APIProvider.tsx +++ b/packages/app/provider/APIProvider/APIProvider.tsx @@ -1,6 +1,6 @@ import { trpc } from 'app/utils/trpc' import { useState } from 'react' -import { QueryClient, QueryClientProvider } from 'react-query' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import SafeStorage from 'lib/safe-storage' import Config from 'app/config' diff --git a/packages/app/provider/AuthProvider/hooks.ts b/packages/app/provider/AuthProvider/hooks.ts index ead9707..8a7de0a 100644 --- a/packages/app/provider/AuthProvider/hooks.ts +++ b/packages/app/provider/AuthProvider/hooks.ts @@ -2,7 +2,7 @@ import SafeStorage from 'lib/safe-storage' import { trpc } from 'app/utils/trpc' import jwtDecode from 'jwt-decode' import { useCallback, useEffect, useMemo, useState } from 'react' -import { useQueryClient } from 'react-query' +import { useQueryClient } from '@tanstack/react-query' import { useRouter } from 'solito/router' import { AuthInterface } from './types' import { routes } from 'app/navigation/routePaths' diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6cbf79f..7da357a 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -3,7 +3,7 @@ generator client { } datasource db { - provider = "postgres" + provider = "postgresql" url = env("DATABASE_URL") } diff --git a/yarn.lock b/yarn.lock index 7fed75c..c3c0160 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1055,13 +1055,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.9.0": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4": version "7.17.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" @@ -2036,6 +2029,19 @@ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== +"@tanstack/query-core@4.10.3": + version "4.10.3" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.10.3.tgz#a6477bab9ed1ae4561ca0a59ae06f8c615c692b7" + integrity sha512-+ME02sUmBfx3Pjd+0XtEthK8/4rVMD2jcxvnW9DSgFONpKtpjzfRzjY4ykzpDw1QEo2eoPvl7NS8J5mNI199aA== + +"@tanstack/react-query@^4.10.3": + version "4.10.3" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.10.3.tgz#294deefa0fb6ada88bc4631d346ef5d5551c5443" + integrity sha512-4OEJjkcsCTmG3ui7RjsVzsXerWQvInTe95CBKFyOV/GchMUlNztoFnnYmlMhX7hLUqJMhbG9l7M507V7+xU8Hw== + dependencies: + "@tanstack/query-core" "4.10.3" + use-sync-external-store "^1.2.0" + "@theme-ui/css@^0.4.0-rc.1": version "0.4.0-rc.13" resolved "https://registry.npmjs.org/@theme-ui/css/-/css-0.4.0-rc.13.tgz#ffe585bebe4fc91fea2935bb6beb40f50c6a7cf0" @@ -2043,32 +2049,27 @@ dependencies: csstype "^2.5.7" -"@trpc/client@^9.15.0": - version "9.26.2" - resolved "https://registry.npmjs.org/@trpc/client/-/client-9.26.2.tgz#82f57bfe96388a8028b10ebb9aad4eb58ec90b71" - integrity sha512-R7eaxEtcK1C6PwxlGZCmMEiGGfn1BUU/hnulTpHVw/Mkd/3EqQqvP3Gs7pAYnJAZ44rjNF3Hepw5q2nP2Ctnhg== - dependencies: - "@babel/runtime" "^7.9.0" +"@trpc/client@10.0.0-proxy-beta.17": + version "10.0.0-proxy-beta.17" + resolved "https://registry.yarnpkg.com/@trpc/client/-/client-10.0.0-proxy-beta.17.tgz#f18b1fced6001760ad219d63bf1400912f215236" + integrity sha512-GhC39yiYdeW44SR/XiN/dF94deTZM/m0NGSlttWILDLfnGwxKgMeOSfZSiTNRwkAoXnn7Gy+g6ysexa1tVlM1g== -"@trpc/next@^9.15.0": - version "9.26.2" - resolved "https://registry.npmjs.org/@trpc/next/-/next-9.26.2.tgz#4ae95513b81971070c321b932bb4f3407b5d1e86" - integrity sha512-CTSQ2G8m/GONbEnf7asDlmoiBCY/WPihuVnev4BWRu6cDnEe2CtVxo34biWknpiGacEykTzH9dEWBDmZAGReJA== +"@trpc/next@10.0.0-proxy-beta.17": + version "10.0.0-proxy-beta.17" + resolved "https://registry.yarnpkg.com/@trpc/next/-/next-10.0.0-proxy-beta.17.tgz#3bd8531b3e84df7d22b0458c85de980e4d98c354" + integrity sha512-3ix7EQWDCYuqn334oIp0E9LpsxaZCvU1UqgQtXJY8VMRG7ZdurnHWkqkr6MZn4b4akdz0MbxvVv5ESjb4f6rvg== dependencies: - "@babel/runtime" "^7.9.0" react-ssr-prepass "^1.5.0" -"@trpc/react@^9.15.0": - version "9.26.2" - resolved "https://registry.npmjs.org/@trpc/react/-/react-9.26.2.tgz#fbea785e4cc206646c215cc1d371ccf21eeda79f" - integrity sha512-YCwn+Cd1/Yl6qB+/ZSF9A+32prBU4Z7un5Ms/q79mC090deCdfOL0IGNrv/7kX5EtsuOSo0RR/NUTo9f+xx1NA== - dependencies: - "@babel/runtime" "^7.9.0" +"@trpc/react@10.0.0-proxy-beta.17": + version "10.0.0-proxy-beta.17" + resolved "https://registry.yarnpkg.com/@trpc/react/-/react-10.0.0-proxy-beta.17.tgz#8a8c854cf7261e095742d20e45d70dba99cd71d7" + integrity sha512-xSLEsKL8+mBgWxW/z2oJs0qSYz/TZd/xqpKa8DcPpXTtp0Oa6iT8DychoF+FztjlBL+jULcqfzF1JRJ5z2iFJg== -"@trpc/server@^9.15.0": - version "9.26.2" - resolved "https://registry.npmjs.org/@trpc/server/-/server-9.26.2.tgz#2386d0d0c76b9d6cbdcef3006ea3221729617c21" - integrity sha512-J1kP072cVYC5H2qFhiLQ/gV57s0of++9QLLKf9n8mVfx300tecKQW2eu/oFvRCDPRTTQ1prHz9zm15IzLwoRrw== +"@trpc/server@10.0.0-proxy-beta.17": + version "10.0.0-proxy-beta.17" + resolved "https://registry.yarnpkg.com/@trpc/server/-/server-10.0.0-proxy-beta.17.tgz#7e56a95d213f52e328d90b3aa6b999d499b2ba21" + integrity sha512-q3Cl4RC5q0kRg8KGt0sWQ11hKrLaIxK2FYGy7fQ6E+k9Yo8r2VDxn++PskZk9LTzgKRi1JtfZVJO15oXoXJHyw== "@tsconfig/node10@^1.0.7": version "1.0.9" @@ -3214,7 +3215,7 @@ bcrypt@^5.0.1: "@mapbox/node-pre-gyp" "^1.0.0" node-addon-api "^3.1.0" -big-integer@1.6.x, big-integer@^1.6.16: +big-integer@1.6.x: version "1.6.51" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== @@ -3311,20 +3312,6 @@ braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -broadcast-channel@^3.4.1: - version "3.7.0" - resolved "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz#2dfa5c7b4289547ac3f6705f9c00af8723889937" - integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg== - dependencies: - "@babel/runtime" "^7.7.2" - detect-node "^2.1.0" - js-sha3 "0.8.0" - microseconds "0.2.0" - nano-time "1.0.0" - oblivious-set "1.0.0" - rimraf "3.0.2" - unload "2.2.0" - brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -4502,11 +4489,6 @@ detect-libc@^2.0.0: resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== -detect-node@^2.0.4, detect-node@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - detect-port-alt@1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" @@ -6814,11 +6796,6 @@ js-cookie@^3.0.1: resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== -js-sha3@0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -7381,14 +7358,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -match-sorter@^6.0.2: - version "6.3.1" - resolved "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" - integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== - dependencies: - "@babel/runtime" "^7.12.5" - remove-accents "0.4.2" - md5-file@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.2.3.tgz#f9bceb941eca2214a4c0727f5e700314e770f06f" @@ -7748,11 +7717,6 @@ micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -microseconds@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz#233b25f50c62a65d861f978a4a4f8ec18797dc39" - integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA== - miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -7972,13 +7936,6 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nano-time@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef" - integrity sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA== - dependencies: - big-integer "^1.6.16" - nanoid@^3.1.23, nanoid@^3.1.30: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" @@ -8377,11 +8334,6 @@ object.values@^1.1.0, object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" -oblivious-set@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566" - integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw== - on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -9639,15 +9591,6 @@ react-native@0.64.3: whatwg-fetch "^3.0.0" ws "^6.1.4" -react-query@^3.34.7: - version "3.39.2" - resolved "https://registry.npmjs.org/react-query/-/react-query-3.39.2.tgz#9224140f0296f01e9664b78ed6e4f69a0cc9216f" - integrity sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA== - dependencies: - "@babel/runtime" "^7.5.5" - broadcast-channel "^3.4.1" - match-sorter "^6.0.2" - react-refresh@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" @@ -9833,11 +9776,6 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remove-accents@0.4.2: - version "0.4.2" - resolved "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" - integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -9976,13 +9914,6 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@3.0.2, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -9990,6 +9921,13 @@ rimraf@^2.5.4, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" @@ -11356,14 +11294,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unload@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7" - integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA== - dependencies: - "@babel/runtime" "^7.6.2" - detect-node "^2.0.4" - unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -11447,6 +11377,11 @@ use-subscription@1.5.1, use-subscription@^1.0.0: dependencies: object-assign "^4.1.1" +use-sync-external-store@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" From cc78519411898387b65802e6722bf0d9cf754288 Mon Sep 17 00:00:00 2001 From: Anton Wester Date: Sun, 9 Oct 2022 20:09:55 +0200 Subject: [PATCH 2/5] fix vercel build script --- apps/next/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/next/package.json b/apps/next/package.json index f0104ee..4834b84 100644 --- a/apps/next/package.json +++ b/apps/next/package.json @@ -9,7 +9,7 @@ "build": "next build", "start": "next start", "lint": "next lint", - "vercel-build": "DATABASE_URL=$MIGRATE_DB_URL prisma generate && DATABASE_URL=$MIGRATE_DB_URL prisma migrate deploy && next build" + "vercel-build": "DATABASE_URL=$DATABASE_URL prisma generate && DATABASE_URL=$DATABASE_URL prisma migrate deploy && next build" }, "dependencies": { "@expo/next-adapter": "^3.1.20", From 83c278f939b0653824aa061cdd93ef6a0042176b Mon Sep 17 00:00:00 2001 From: Anton Wester Date: Sun, 9 Oct 2022 20:11:58 +0200 Subject: [PATCH 3/5] bump prisma dependencies --- packages/db/package.json | 4 ++-- yarn.lock | 36 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/db/package.json b/packages/db/package.json index 4bd460a..80a320c 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -8,8 +8,8 @@ "dev": "prisma studio" }, "dependencies": { - "@prisma/client": "^3.14.0", - "prisma": "^3.14.0" + "@prisma/client": "^4.4.0", + "prisma": "^4.4.0" }, "devDependencies": { "@faker-js/faker": "^7.3.0" diff --git a/yarn.lock b/yarn.lock index c3c0160..a26dd75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1800,22 +1800,22 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@prisma/client@^3.14.0": - version "3.15.2" - resolved "https://registry.npmjs.org/@prisma/client/-/client-3.15.2.tgz#2181398147afc79bfe0d83c03a88dc45b49bd365" - integrity sha512-ErqtwhX12ubPhU4d++30uFY/rPcyvjk+mdifaZO5SeM21zS3t4jQrscy8+6IyB0GIYshl5ldTq6JSBo1d63i8w== +"@prisma/client@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.4.0.tgz#45f59c172dd3621ecc92d7cf9bc765d85e6c7d56" + integrity sha512-ciKOP246x1xwr04G9ajHlJ4pkmtu9Q6esVyqVBO0QJihaKQIUvbPjClp17IsRJyxqNpFm4ScbOc/s9DUzKHINQ== dependencies: - "@prisma/engines-version" "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/engines-version" "4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6" -"@prisma/engines-version@3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e": - version "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" - resolved "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz#bf5e2373ca68ce7556b967cb4965a7095e93fe53" - integrity sha512-e3k2Vd606efd1ZYy2NQKkT4C/pn31nehyLhVug6To/q8JT8FpiMrDy7zmm3KLF0L98NOQQcutaVtAPhzKhzn9w== +"@prisma/engines-version@4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6": + version "4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6.tgz#00875863bb30b670a586a5b5794a000f7f3ad976" + integrity sha512-P5v/PuEIJLYXZUZBvOLPqoyCW+m6StNqHdiR6te++gYVODpPdLakks5HVx3JaZIY+LwR02juJWFlwpc9Eog/ug== -"@prisma/engines@3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e": - version "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" - resolved "https://registry.npmjs.org/@prisma/engines/-/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz#f691893df506b93e3cb1ccc15ec6e5ac64e8e570" - integrity sha512-NHlojO1DFTsSi3FtEleL9QWXeSF/UjhCW0fgpi7bumnNZ4wj/eQ+BJJ5n2pgoOliTOGv9nX2qXvmHap7rJMNmg== +"@prisma/engines@4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.4.0.tgz#6ca7d3ce8eee08dcfa82311b0a02f5ccaac7dc0c" + integrity sha512-Fpykccxlt9MHrAs/QpPGpI2nOiRxuLA+LiApgA59ibbf24YICZIMWd3SI2YD+q0IAIso0jCGiHhirAIbxK3RyQ== "@react-native-community/cli-debugger-ui@^5.0.1": version "5.0.1" @@ -9210,12 +9210,12 @@ pretty-format@^26.5.2, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -prisma@^3.14.0: - version "3.15.2" - resolved "https://registry.npmjs.org/prisma/-/prisma-3.15.2.tgz#4ebe32fb284da3ac60c49fbc16c75e56ecf32067" - integrity sha512-nMNSMZvtwrvoEQ/mui8L/aiCLZRCj5t6L3yujKpcDhIPk7garp8tL4nMx2+oYsN0FWBacevJhazfXAbV1kfBzA== +prisma@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.4.0.tgz#0c53324bf6a29474636b3e1964e0d72e0277bf8f" + integrity sha512-l/QKLmLcKJQFuc+X02LyICo0NWTUVaNNZ00jKJBqwDyhwMAhboD1FWwYV50rkH4Wls0RviAJSFzkC2ZrfawpfA== dependencies: - "@prisma/engines" "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/engines" "4.4.0" process-nextick-args@~2.0.0: version "2.0.1" From 18884ea4b11b63c8eb6d4a30f86d0797e4d38ed2 Mon Sep 17 00:00:00 2001 From: Anton Wester Date: Sun, 9 Oct 2022 20:16:21 +0200 Subject: [PATCH 4/5] update to v10 tRPC - WIP --- packages/api/package.json | 1 + packages/api/src/index.ts | 11 ++- packages/api/src/inferance-helpers.ts | 1 + packages/api/src/routers/auth.ts | 45 ++++++------ packages/api/src/routers/context.ts | 31 +++++---- packages/api/src/routers/post.ts | 69 ++++++++++--------- packages/api/src/trpc.ts | 15 ++++ packages/app/features/post/details-screen.tsx | 1 + packages/app/features/post/list-screen.tsx | 1 + .../app/provider/APIProvider/APIProvider.tsx | 24 ++++--- packages/app/provider/AuthProvider/types.ts | 13 ++-- packages/app/utils/trpc.tsx | 6 +- yarn.lock | 19 +++++ 13 files changed, 140 insertions(+), 97 deletions(-) create mode 100644 packages/api/src/trpc.ts diff --git a/packages/api/package.json b/packages/api/package.json index abd4e8c..dbe4bd4 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -9,6 +9,7 @@ "@trpc/server": "10.0.0-proxy-beta.17", "bcrypt": "^5.0.1", "jsonwebtoken": "^8.5.1", + "superjson": "^1.10.0", "zod": "^3.17.2" }, "devDependencies": { diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index 2d1761b..47c5e44 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -1,12 +1,11 @@ import { createRouter } from './routers/context' import { authRouter } from './routers/auth' import { postRouter } from './routers/post' +import { t } from './trpc' -const legacyRouter = createRouter() - .merge('auth.', authRouter) - .merge('post.', postRouter) - .interop() - -export const appRouter = legacyRouter +export const appRouter = t.router({ + auth: authRouter, + post: postRouter, +}) export type AppRouter = typeof appRouter diff --git a/packages/api/src/inferance-helpers.ts b/packages/api/src/inferance-helpers.ts index ccb7c76..d9bb496 100644 --- a/packages/api/src/inferance-helpers.ts +++ b/packages/api/src/inferance-helpers.ts @@ -4,6 +4,7 @@ import { inferProcedureInput, inferProcedureOutput } from '@trpc/server' * This is a helper method to infer the output of a query resolver * @example type HelloOutput = inferQueryOutput<'hello'> */ +//TODO: update these export type inferQueryOutput< TRouteKey extends keyof AppRouter['_def']['queries'] > = inferProcedureOutput diff --git a/packages/api/src/routers/auth.ts b/packages/api/src/routers/auth.ts index 01c2176..4655b62 100644 --- a/packages/api/src/routers/auth.ts +++ b/packages/api/src/routers/auth.ts @@ -1,28 +1,25 @@ import { createSession } from '../utils/auth' -import { createRouter, protectedRoute } from './context' +import { protectedProcedure } from './context' import signIn, { SignInSchema } from '../services/auth/signIn' import signUp, { SignUpSchema } from '../services/auth/signUp' -export const authRouter = createRouter() - .mutation('signIn', { - input: SignInSchema, - resolve: async ({ input: { email, password } }) => { - return signIn({ email, password }) - }, - }) - .mutation('signUp', { - input: SignUpSchema, - resolve: async ({ input: { email, password } }) => { - const user = await signUp({ email, password }) - const token = await createSession(user) - return { token } - }, - }) - .merge( - 'me', - protectedRoute.query('', { - resolve: async ({ ctx }) => { - return ctx.user - }, - }) - ) +import { t } from '.././trpc' + +export const authRouter = t.router({ + signIn: t.procedure.input(SignInSchema).mutation((req) => { + const { input } = req + + return signIn({ email: input.email, password: input.password }) + }), + signUp: t.procedure.input(SignUpSchema).mutation(async (req) => { + const input = req.input + + const user = await signUp({ email: input.email, password: input.password }) + const token = await createSession(user) + return { token } + }), + me: protectedProcedure.query(async (req) => { + const { ctx } = req + return ctx.user + }), +}) diff --git a/packages/api/src/routers/context.ts b/packages/api/src/routers/context.ts index 8864d2e..9201be0 100644 --- a/packages/api/src/routers/context.ts +++ b/packages/api/src/routers/context.ts @@ -5,6 +5,7 @@ import crypto from 'crypto' import { getUserFromHeader } from '../utils/auth' import { User } from '.prisma/client' import { prismaClient } from 'db' +import { t } from '../trpc' const ADMIN_ROLES = ['ADMIN', 'SUPERADMIN'] @@ -30,23 +31,23 @@ export const createContext = async ({ prisma: prismaClient, } } - -export const protectedRoute = createRouter().middleware( - async ({ ctx, next }) => { - const user = await getUserFromHeader(ctx.headers) - if (!user) { - throw new TRPCError({ - message: `Unauthenticated when trying to access ${ctx.req.url}`, - code: 'UNAUTHORIZED', - }) - } - ctx.user = user - ctx.isAdmin = isAdmin(user.role) - return next() +export const protectedRoute = t.middleware(async (req) => { + const { ctx, next } = req + const user = await getUserFromHeader(ctx.headers) + if (!user) { + throw new TRPCError({ + message: `Unauthenticated when trying to access ${ctx.req.url}`, + code: 'UNAUTHORIZED', + }) } -) + ctx.user = user + ctx.isAdmin = isAdmin(user.role) + return next() +}) + +export const protectedProcedure = t.procedure.use(protectedRoute) -export const adminRoute = createRouter().middleware(async ({ ctx, next }) => { +export const adminRoute = t.middleware(async ({ ctx, next }) => { const user = await getUserFromHeader(ctx.headers) if (!user) { diff --git a/packages/api/src/routers/post.ts b/packages/api/src/routers/post.ts index f4f44c5..07befb4 100644 --- a/packages/api/src/routers/post.ts +++ b/packages/api/src/routers/post.ts @@ -1,21 +1,24 @@ -import { createRouter, protectedRoute } from './context' import { z } from 'zod' +import { protectedProcedure } from './context' +import { t } from '.././trpc' -export const postRouter = protectedRoute - .query('get-all', { - async resolve({ ctx }) { - return await ctx.prisma.post.findMany({ - include: { - author: true, - }, +export const postRouter = t.router({ + 'get-all': protectedProcedure.query(async (req) => { + const { ctx } = req + return await ctx.prisma.post.findMany({ + include: { + author: true, + }, + }) + }), + 'get-by-id': protectedProcedure + .input( + z.object({ + id: z.string().uuid(), }) - }, - }) - .query('get-by-id', { - input: z.object({ - id: z.string().uuid(), - }), - async resolve({ input, ctx }) { + ) + .query(async (req) => { + const { ctx, input } = req return await ctx.prisma.post.findFirst({ where: { id: input.id, @@ -27,15 +30,17 @@ export const postRouter = protectedRoute title: 'asc', }, }) - }, - }) - .mutation('create', { - input: z.object({ - authorId: z.string(), - title: z.string(), - content: z.string(), }), - async resolve({ input, ctx }) { + create: protectedProcedure + .input( + z.object({ + authorId: z.string(), + title: z.string(), + content: z.string(), + }) + ) + .mutation(async (req) => { + const { input, ctx } = req return await ctx.prisma.post.create({ data: { authorId: input.authorId, @@ -43,17 +48,19 @@ export const postRouter = protectedRoute content: input.content, }, }) - }, - }) - .mutation('delete', { - input: z.object({ - id: z.string().uuid(), }), - async resolve({ input, ctx }) { + delete: protectedProcedure + .input( + z.object({ + id: z.string().uuid(), + }) + ) + .mutation(async (req) => { + const { input, ctx } = req return await ctx.prisma.post.delete({ where: { id: input.id, }, }) - }, - }) + }), +}) diff --git a/packages/api/src/trpc.ts b/packages/api/src/trpc.ts new file mode 100644 index 0000000..e3fce62 --- /dev/null +++ b/packages/api/src/trpc.ts @@ -0,0 +1,15 @@ +import { initTRPC } from '@trpc/server' +import superjson from 'superjson' +import { Context } from './routers/context' + +export const t = initTRPC.context().create({ + transformer: superjson, + errorFormatter({ shape }) { + return { + ...shape, + data: { + ...shape.data, + }, + } + }, +}) diff --git a/packages/app/features/post/details-screen.tsx b/packages/app/features/post/details-screen.tsx index fd90ac5..d7ad42e 100644 --- a/packages/app/features/post/details-screen.tsx +++ b/packages/app/features/post/details-screen.tsx @@ -15,6 +15,7 @@ const TextStyled = styled(Text, 'mb-4 text-center') export function PostDetailScreen() { const [id] = useParam('id') + //TODO: confirm this const { data, isLoading } = trpc.useQuery(['post.get-by-id', { id: id! }], { enabled: !!id, }) diff --git a/packages/app/features/post/list-screen.tsx b/packages/app/features/post/list-screen.tsx index aebe131..e80ef35 100644 --- a/packages/app/features/post/list-screen.tsx +++ b/packages/app/features/post/list-screen.tsx @@ -10,6 +10,7 @@ import { GoBack } from 'app/components/GoBack' const Card = styled(View, 'bg-white shadow-sm mb-4 rounded-lg p-6 border') export function PostListScreen() { + // TODO: confirm this const { data: posts } = trpc.useQuery(['post.get-all']) return ( diff --git a/packages/app/provider/APIProvider/APIProvider.tsx b/packages/app/provider/APIProvider/APIProvider.tsx index 447e19e..4e63792 100644 --- a/packages/app/provider/APIProvider/APIProvider.tsx +++ b/packages/app/provider/APIProvider/APIProvider.tsx @@ -3,19 +3,23 @@ import { useState } from 'react' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import SafeStorage from 'lib/safe-storage' import Config from 'app/config' +import { httpBatchLink } from '@trpc/client' const createTrpcClient = () => { return trpc.createClient({ - url: Config.apiUrl, - async headers() { - const sessionToken = await SafeStorage.get('sessionToken') - - return { - authorization: sessionToken ? `Bearer ${sessionToken}` : undefined, - 'Content-Type': 'application/json', - Accept: 'application/json', - } - }, + links: [ + httpBatchLink({ + url: Config.apiUrl, + async headers() { + const sessionToken = SafeStorage.get('sessionToken') + return { + authorization: sessionToken ? `Bearer ${sessionToken}` : undefined, + 'Content-Type': 'application/json', + Accept: 'application/json', + } + }, + }), + ], }) } diff --git a/packages/app/provider/AuthProvider/types.ts b/packages/app/provider/AuthProvider/types.ts index b071ea8..ae3fd26 100644 --- a/packages/app/provider/AuthProvider/types.ts +++ b/packages/app/provider/AuthProvider/types.ts @@ -1,8 +1,5 @@ -import { - inferMutationInput, - inferMutationOutput, - inferQueryOutput, -} from 'api/src/inferance-helpers' +import { AppRouter } from 'api/src' +import { inferProcedureInput } from '@trpc/server' export interface AuthInterface { isAuthenticated: boolean @@ -12,10 +9,10 @@ export interface AuthInterface { iat: number userId: string } - user: inferQueryOutput<'auth.me'> - signIn: (input: inferMutationInput<'auth.signIn'>) => void + user: inferProcedureInput + signIn: inferProcedureInput + signUp: inferProcedureInput signInLoading: boolean - signUp: (input: inferMutationInput<'auth.signUp'>) => void signUpLoading: boolean logout: () => void errorMessage?: string diff --git a/packages/app/utils/trpc.tsx b/packages/app/utils/trpc.tsx index 779f59a..976e0ad 100644 --- a/packages/app/utils/trpc.tsx +++ b/packages/app/utils/trpc.tsx @@ -1,5 +1,5 @@ -import type { AppRouter } from 'api/src/index' -import { createReactQueryHooks } from '@trpc/react' +import { AppRouter } from 'api/src' +import { createTRPCReact } from '@trpc/react' -export const trpc = createReactQueryHooks() +export const trpc = createTRPCReact() export * from 'api/src/inferance-helpers' diff --git a/yarn.lock b/yarn.lock index a26dd75..516afe0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3987,6 +3987,13 @@ cookies@^0.8.0: depd "~2.0.0" keygrip "~1.1.0" +copy-anything@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.2.tgz#7189171ff5e1893b2287e8bf574b8cd448ed50b1" + integrity sha512-CzATjGXzUQ0EvuvgOCI6A4BGOo2bcVx8B+eC2nF862iv9fopnPQwlrbACakNCHRIJbCSBj+J/9JeDf60k64MkA== + dependencies: + is-what "^4.1.6" + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -6651,6 +6658,11 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.2" +is-what@^4.1.6: + version "4.1.7" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.7.tgz#c41dc1d2d2d6a9285c624c2505f61849c8b1f9cc" + integrity sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ== + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -10717,6 +10729,13 @@ sudo-prompt@^9.0.0: resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== +superjson@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-1.10.0.tgz#279362e6c1789b0b6bdfa280e82ee43d0e0fa514" + integrity sha512-ks6I5fm5KXUbDqt4Epe1VwkKDaC9+kIj5HF7yhiHjChFne0EkFqsnTv1mdHE2IT6fq2CzLC3zeA/fw0BRIoNwA== + dependencies: + copy-anything "^3.0.2" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" From ac7c27b14ab814257e696a94bb3029b24183d931 Mon Sep 17 00:00:00 2001 From: Anton Wester Date: Sat, 15 Oct 2022 20:31:08 +0200 Subject: [PATCH 5/5] update usage of queries on client --- packages/api/src/index.ts | 1 - packages/api/src/inferance-helpers.ts | 2 +- packages/api/src/routers/post.ts | 4 ++-- packages/app/features/post/details-screen.tsx | 7 ++++--- packages/app/features/post/list-screen.tsx | 2 +- packages/app/provider/AuthProvider/hooks.ts | 13 +++++++------ packages/app/utils/trpc.tsx | 3 ++- 7 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index 47c5e44..3941ce8 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -1,4 +1,3 @@ -import { createRouter } from './routers/context' import { authRouter } from './routers/auth' import { postRouter } from './routers/post' import { t } from './trpc' diff --git a/packages/api/src/inferance-helpers.ts b/packages/api/src/inferance-helpers.ts index d9bb496..093745b 100644 --- a/packages/api/src/inferance-helpers.ts +++ b/packages/api/src/inferance-helpers.ts @@ -4,7 +4,7 @@ import { inferProcedureInput, inferProcedureOutput } from '@trpc/server' * This is a helper method to infer the output of a query resolver * @example type HelloOutput = inferQueryOutput<'hello'> */ -//TODO: update these +//TODO: update or remove these? export type inferQueryOutput< TRouteKey extends keyof AppRouter['_def']['queries'] > = inferProcedureOutput diff --git a/packages/api/src/routers/post.ts b/packages/api/src/routers/post.ts index 07befb4..1b1c02c 100644 --- a/packages/api/src/routers/post.ts +++ b/packages/api/src/routers/post.ts @@ -3,7 +3,7 @@ import { protectedProcedure } from './context' import { t } from '.././trpc' export const postRouter = t.router({ - 'get-all': protectedProcedure.query(async (req) => { + getAll: protectedProcedure.query(async (req) => { const { ctx } = req return await ctx.prisma.post.findMany({ include: { @@ -11,7 +11,7 @@ export const postRouter = t.router({ }, }) }), - 'get-by-id': protectedProcedure + getById: protectedProcedure .input( z.object({ id: z.string().uuid(), diff --git a/packages/app/features/post/details-screen.tsx b/packages/app/features/post/details-screen.tsx index d7ad42e..1dea213 100644 --- a/packages/app/features/post/details-screen.tsx +++ b/packages/app/features/post/details-screen.tsx @@ -16,9 +16,10 @@ export function PostDetailScreen() { const [id] = useParam('id') //TODO: confirm this - const { data, isLoading } = trpc.useQuery(['post.get-by-id', { id: id! }], { - enabled: !!id, - }) + const { data, isLoading } = trpc.post.getById.useQuery({ id: id! }, { + enabled: !!id, + trpc: {} + }) if (isLoading) return ( diff --git a/packages/app/features/post/list-screen.tsx b/packages/app/features/post/list-screen.tsx index e80ef35..28fc8ff 100644 --- a/packages/app/features/post/list-screen.tsx +++ b/packages/app/features/post/list-screen.tsx @@ -11,7 +11,7 @@ const Card = styled(View, 'bg-white shadow-sm mb-4 rounded-lg p-6 border') export function PostListScreen() { // TODO: confirm this - const { data: posts } = trpc.useQuery(['post.get-all']) + const { data: posts } = trpc.post.getAll.useQuery() return ( diff --git a/packages/app/provider/AuthProvider/hooks.ts b/packages/app/provider/AuthProvider/hooks.ts index 8a7de0a..3b1c047 100644 --- a/packages/app/provider/AuthProvider/hooks.ts +++ b/packages/app/provider/AuthProvider/hooks.ts @@ -45,7 +45,7 @@ const useAuthenticate = (setSessionToken: (token: string) => void) => { export const useSignIn = (setSessionToken: (token: string) => void) => { const authenticate = useAuthenticate(setSessionToken) - const loginMutation = trpc.useMutation('auth.signIn', { + const loginMutation = trpc.auth.signIn.useMutation({ onSuccess: (data) => { authenticate(data.token) }, @@ -59,7 +59,7 @@ export const useSignIn = (setSessionToken: (token: string) => void) => { export const useSignUp = (setSessionToken: (token: string) => void) => { const authenticate = useAuthenticate(setSessionToken) - const signupMutation = trpc.useMutation('auth.signUp', { + const signupMutation = trpc.auth.signUp.useMutation({ onSuccess: (data) => { authenticate(data.token) }, @@ -72,10 +72,11 @@ export const useSignUp = (setSessionToken: (token: string) => void) => { } export const useGetMe = (sessionToken: string) => { - return trpc.useQuery(['auth.me'], { - enabled: !!sessionToken, - retry: false, - }) + return trpc.auth.me.useQuery(undefined, { + enabled: !!sessionToken, + retry: false, + trpc: {} + }) } export const useLogout = (setSessionToken: (token: string) => void) => { diff --git a/packages/app/utils/trpc.tsx b/packages/app/utils/trpc.tsx index 976e0ad..bb4cf86 100644 --- a/packages/app/utils/trpc.tsx +++ b/packages/app/utils/trpc.tsx @@ -2,4 +2,5 @@ import { AppRouter } from 'api/src' import { createTRPCReact } from '@trpc/react' export const trpc = createTRPCReact() -export * from 'api/src/inferance-helpers' +// TODO: delete this? +// export * from 'api/src/inferance-helpers'