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": ["./*"]
}