diff --git a/package-lock.json b/package-lock.json index f3abe83..299783b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "subman-nextjs", "version": "0.1.0", "dependencies": { + "@prisma/client": "^5.15.0", "next": "14.2.3", "react": "^18", "react-dom": "^18" @@ -18,6 +19,7 @@ "@types/react-dom": "^18", "eslint": "^8", "eslint-config-next": "14.2.3", + "prisma": "^5.15.0", "typescript": "^5" } }, @@ -388,6 +390,68 @@ "node": ">=14" } }, + "node_modules/@prisma/client": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.15.0.tgz", + "integrity": "sha512-wPTeTjbd2Q0abOeffN7zCDCbkp9C9cF+e9HPiI64lmpehyq2TepgXE+sY7FXr7Rhbb21prLMnhXX27/E11V09w==", + "hasInstallScript": true, + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/debug": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.15.0.tgz", + "integrity": "sha512-QpEAOjieLPc/4sMny/WrWqtpIAmBYsgqwWlWwIctqZO0AbhQ9QcT6x2Ut3ojbDo/pFRCCA1Z1+xm2MUy7fAkZA==", + "devOptional": true + }, + "node_modules/@prisma/engines": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.15.0.tgz", + "integrity": "sha512-hXL5Sn9hh/ZpRKWiyPA5GbvF3laqBHKt6Vo70hYqqOhh5e0ZXDzHcdmxNvOefEFeqxra2DMz2hNbFoPvqrVe1w==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@prisma/debug": "5.15.0", + "@prisma/engines-version": "5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022", + "@prisma/fetch-engine": "5.15.0", + "@prisma/get-platform": "5.15.0" + } + }, + "node_modules/@prisma/engines-version": { + "version": "5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022.tgz", + "integrity": "sha512-3BEgZ41Qb4oWHz9kZNofToRvNeS4LZYaT9pienR1gWkjhky6t6K1NyeWNBkqSj2llgraUNbgMOCQPY4f7Qp5wA==", + "devOptional": true + }, + "node_modules/@prisma/fetch-engine": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.15.0.tgz", + "integrity": "sha512-z6AY5yyXxc20Klj7wwnfGP0iIUkVKzybqapT02zLYR/nf9ynaeN8bq73WRmi1TkLYn+DJ5Qy+JGu7hBf1pE78A==", + "devOptional": true, + "dependencies": { + "@prisma/debug": "5.15.0", + "@prisma/engines-version": "5.15.0-29.12e25d8d06f6ea5a0252864dd9a03b1bb51f3022", + "@prisma/get-platform": "5.15.0" + } + }, + "node_modules/@prisma/get-platform": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.15.0.tgz", + "integrity": "sha512-1GULDkW4+/VQb73vihxCBSc4Chc2x88MA+O40tcZFjmBzG4/fF44PaXFxUqKSFltxU9L9GIMLhh0Gfkk/pUbtg==", + "devOptional": true, + "dependencies": { + "@prisma/debug": "5.15.0" + } + }, "node_modules/@rushstack/eslint-patch": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", @@ -3484,6 +3548,22 @@ "node": ">= 0.8.0" } }, + "node_modules/prisma": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.15.0.tgz", + "integrity": "sha512-JA81ACQSCi3a7NUOgonOIkdx8PAVkO+HbUOxmd00Yb8DgIIEpr2V9+Qe/j6MLxIgWtE/OtVQ54rVjfYRbZsCfw==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@prisma/engines": "5.15.0" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=16.13" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", diff --git a/src/app/story/[id]/page.tsx b/src/app/story/[id]/page.tsx new file mode 100644 index 0000000..cb1190f --- /dev/null +++ b/src/app/story/[id]/page.tsx @@ -0,0 +1,14 @@ +import prisma from "../../lib/db.mjs" + +async function getStory(id: string) { + const story = await prisma.story.findFirst({ where: { id: Number(id) } }) + return story +} + + +export default async function Page({ params }: { params: { id: string } }) { + const data = await getStory(params.id) + return
Title: {data?.title ?? ""}
+} + + diff --git a/src/app/story/[slug]/page.tsx b/src/app/story/[slug]/page.tsx deleted file mode 100644 index 725c6c2..0000000 --- a/src/app/story/[slug]/page.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Page({ params }: { params: { slug: string } }) { - return
My Post: {params.slug}
-} diff --git a/tsconfig.json b/tsconfig.json index cea4018..ccb2ed9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,26 +1,34 @@ { "compilerOptions": { - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, - "strict": true, + "strict": false, "noEmit": true, - "esModuleInterop": true, + "incremental": true, "module": "esnext", - "moduleResolution": "bundler", + "esModuleInterop": true, + "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", - "incremental": true, "plugins": [ { "name": "next" } - ], - "paths": { - "@/*": ["./src/*"] - } + ] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "prisma/script.mts"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + ".next/types/**/*.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] }