diff --git a/.DS_Store b/.DS_Store index 09bcf48..cf580a2 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.eslintrc.cjs b/.eslintrc.cjs index bc85252..feecb7e 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -13,6 +13,7 @@ module.exports = { plugins: ['react', 'prettier', 'sort-keys-fix', 'better-styled-components'], rules: { '@typescript-eslint/strict-boolean-expressions': 'off', + '@typescript-eslint/triple-slash-reference': 'off', 'arrow-body-style': ['error', 'as-needed'], 'better-styled-components/sort-declarations-alphabetically': 2, 'import/order': [ diff --git a/packages/client/next-env.d.ts b/packages/client/next-env.d.ts index 8aa4cdf..4f11a03 100644 --- a/packages/client/next-env.d.ts +++ b/packages/client/next-env.d.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/triple-slash-reference */ /// /// diff --git a/packages/client/package.json b/packages/client/package.json index 1741e63..6b7dd39 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "scripts": { - "dev": "next dev", + "dev": "next dev -p 8080", "build": "next build", "start": "next start", "lint": "next lint", diff --git a/packages/client/screens/SpendScreen/SpendScreen.tsx b/packages/client/screens/SpendScreen/SpendScreen.tsx index 297ec0e..72c89d7 100644 --- a/packages/client/screens/SpendScreen/SpendScreen.tsx +++ b/packages/client/screens/SpendScreen/SpendScreen.tsx @@ -1,9 +1,10 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import styled from 'styled-components'; import { PieCircle } from '@/components'; import { type Theme } from '@/lib/theme'; import { useAppStore } from '@/lib/storage'; import { type PieCircleData } from '@/lib/types'; +import { trpc } from '../../trpc'; export const SpendScreen = (): JSX.Element => { const userSpendData = useAppStore((state) => state.userSpendData); @@ -16,6 +17,23 @@ export const SpendScreen = (): JSX.Element => { [key, values.reduce((acc: number, { value }: { value: number }) => acc + value, 0)], { backgroundColor: values[0].category.backgroundColor, label: values[0].category.label }, ]); + useEffect(() => { + trpc.userCreate + .mutate({ name: 'ABC' }) + .then(() => { + trpc.userList + .query() + .then((a) => { + console.log(a); + }) + .catch((e) => { + console.log(e); + }); + }) + .catch((e) => { + console.log(e); + }); + }, []); return ( diff --git a/packages/client/trpc.ts b/packages/client/trpc.ts new file mode 100644 index 0000000..0538787 --- /dev/null +++ b/packages/client/trpc.ts @@ -0,0 +1,12 @@ +import { createTRPCProxyClient, httpBatchLink } from '@trpc/client'; +import type { AppRouter } from 'server/app'; + +export const trpc = createTRPCProxyClient({ + links: [ + httpBatchLink({ + url: 'http://localhost:3000', + }), + ], +}); + +export default trpc; diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json index 6bfd9af..803bb3e 100644 --- a/packages/client/tsconfig.json +++ b/packages/client/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.json", - "files": [], + "files": ["../server/app.ts"], "compilerOptions": { + "rootDir": "../", "composite": true, "target": "ESNext", "useDefineForClassFields": true, @@ -23,11 +24,11 @@ "@/*": ["./*"] } }, - "include": ["next-env.d.ts", "pages", "components", "screens", "lib"], + "include": ["next-env.d.ts", "pages", "components", "screens", "lib", "./*"], "references": [ { "path": "./tsconfig.node.json" } ], - "exclude": ["node_modules"] + "exclude": ["node_modules", "../server/app.ts"] } diff --git a/packages/server/index.ts b/packages/server/app.ts similarity index 94% rename from packages/server/index.ts rename to packages/server/app.ts index 5899aff..3a4f5b2 100644 --- a/packages/server/index.ts +++ b/packages/server/app.ts @@ -1,7 +1,9 @@ import { z } from 'zod'; import { createHTTPServer } from '@trpc/server/adapters/standalone'; +import cors from 'cors'; import { db } from './db'; import { publicProcedure, router } from './trpc'; + const appRouter = router({ userById: publicProcedure.input(z.string()).query(async (opts) => { const { input } = opts; @@ -18,10 +20,11 @@ const appRouter = router({ }), }); +export type AppRouter = typeof appRouter; + const server = createHTTPServer({ + middleware: cors(), router: appRouter, }); server.listen(3000); - -export type AppRouter = typeof appRouter; diff --git a/packages/server/db.ts b/packages/server/db.ts index 6814cbf..bb16109 100644 --- a/packages/server/db.ts +++ b/packages/server/db.ts @@ -1,4 +1,4 @@ -interface User { +export interface User { id: string; name: string; } diff --git a/packages/server/nodemon.json b/packages/server/nodemon.json new file mode 100644 index 0000000..314102f --- /dev/null +++ b/packages/server/nodemon.json @@ -0,0 +1,5 @@ +{ + "watch": "**/*", + "ext": "ts, json", + "exec": "ts-node app.ts" +} diff --git a/packages/server/package.json b/packages/server/package.json index b4a2fa3..7f67775 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,13 +1,20 @@ { - "name": "@monorepo/server", + "name": "server", "version": "1.0.0", "description": "", "main": "index.js", - "devDependencies": {}, + "devDependencies": { + "nodemon": "^2.0.22" + }, "scripts": { - "dev": "echo 'abc'", + "dev": "nodemon app.ts", "build": "tsc --build" }, "author": "", - "license": "ISC" + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.13", + "cors": "^2.8.5", + "ts-node": "^10.9.1" + } } diff --git a/packages/server/tsconfig.json b/packages/server/tsconfig.json index 67668e5..709cf1e 100644 --- a/packages/server/tsconfig.json +++ b/packages/server/tsconfig.json @@ -27,7 +27,7 @@ /* Modules */ "module": "commonjs" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ + "rootDir": "./" /* Specify the root folder within your source files. */, // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ @@ -107,5 +107,5 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "include": ["*"] + "include": ["./*"] }