stackkit-cli 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/add.js +1 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +2 -2
- package/dist/commands/list.js.map +1 -1
- package/modules/auth/nextauth/files/app-router/api/auth/[...nextauth]/route.ts +6 -0
- package/modules/auth/nextauth/files/lib/auth.ts +82 -0
- package/modules/auth/nextauth/files/pages-router/api/auth/[...nextauth].ts +4 -0
- package/modules/auth/nextauth/module.json +50 -0
- package/package.json +7 -1
- package/templates/next-prisma-postgres-shadcn/.env.example +5 -0
- package/templates/next-prisma-postgres-shadcn/.eslintrc.json +7 -0
- package/templates/next-prisma-postgres-shadcn/.prettierrc +8 -0
- package/templates/next-prisma-postgres-shadcn/README.md +79 -0
- package/templates/next-prisma-postgres-shadcn/app/api/health/route.ts +25 -0
- package/templates/next-prisma-postgres-shadcn/app/globals.css +1 -0
- package/templates/next-prisma-postgres-shadcn/app/layout.tsx +22 -0
- package/templates/next-prisma-postgres-shadcn/app/page.tsx +29 -0
- package/templates/next-prisma-postgres-shadcn/lib/db.ts +14 -0
- package/templates/next-prisma-postgres-shadcn/lib/env.ts +15 -0
- package/templates/next-prisma-postgres-shadcn/next.config.ts +7 -0
- package/templates/next-prisma-postgres-shadcn/package.json +32 -0
- package/templates/next-prisma-postgres-shadcn/prisma/schema.prisma +20 -0
- package/templates/next-prisma-postgres-shadcn/public/.gitkeep +1 -0
- package/templates/next-prisma-postgres-shadcn/template.json +18 -0
- package/templates/next-prisma-postgres-shadcn/tsconfig.json +32 -0
- package/src/commands/add.ts +0 -261
- package/src/commands/init.ts +0 -182
- package/src/commands/list.ts +0 -124
- package/src/index.ts +0 -53
- package/src/types/index.ts +0 -71
- package/src/utils/code-inject.ts +0 -85
- package/src/utils/detect.ts +0 -89
- package/src/utils/env-editor.ts +0 -127
- package/src/utils/files.ts +0 -59
- package/src/utils/json-editor.ts +0 -64
- package/src/utils/logger.ts +0 -62
- package/src/utils/package-manager.ts +0 -85
- package/tsconfig.json +0 -9
package/dist/commands/add.js
CHANGED
|
@@ -21,7 +21,7 @@ async function addCommand(module, options) {
|
|
|
21
21
|
const projectInfo = await (0, detect_1.detectProjectInfo)(projectRoot);
|
|
22
22
|
spinner.succeed(`Detected ${projectInfo.framework} (${projectInfo.router} router, ${projectInfo.language})`);
|
|
23
23
|
// Load module metadata
|
|
24
|
-
const modulesDir = path_1.default.join(__dirname, '..', '..', '
|
|
24
|
+
const modulesDir = path_1.default.join(__dirname, '..', '..', 'modules');
|
|
25
25
|
const moduleMetadata = await loadModuleMetadata(modulesDir, module, options.provider);
|
|
26
26
|
if (!moduleMetadata) {
|
|
27
27
|
logger_1.logger.error(`Module "${module}" not found`);
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":";;;;;AAkBA,gCA6GC;AA/HD,kDAA0B;AAC1B,wDAA0B;AAC1B,wDAAgC;AAChC,gDAAwB;AAExB,4CAAmF;AACnF,oDAAsD;AACtD,0CAAwD;AACxD,4CAAyC;AACzC,8DAA2D;AASpD,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,OAAmB;IAClE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,sBAAsB;QACtB,MAAM,OAAO,GAAG,eAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAiB,EAAC,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,OAAO,CACb,YAAY,WAAW,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,YAAY,WAAW,CAAC,QAAQ,GAAG,CAC5F,CAAC;QAEF,uBAAuB;QACvB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -20,7 +20,7 @@ async function initCommand(projectName, options) {
|
|
|
20
20
|
process.exit(1);
|
|
21
21
|
}
|
|
22
22
|
// Get available templates
|
|
23
|
-
const templatesDir = path_1.default.join(__dirname, '..', '..', '
|
|
23
|
+
const templatesDir = path_1.default.join(__dirname, '..', '..', 'templates');
|
|
24
24
|
const templates = await getAvailableTemplates(templatesDir);
|
|
25
25
|
if (templates.length === 0) {
|
|
26
26
|
logger_1.logger.error('No templates found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAkBA,kCAgJC;AAlKD,kDAA0B;AAC1B,wDAA0B;AAC1B,wDAAgC;AAChC,gDAAwB;AACxB,0FAA+D;AAE/D,0CAA8C;AAC9C,4CAAyC;AACzC,8DAAwF;AAUjF,KAAK,UAAU,WAAW,CAC/B,WAA+B,EAC/B,OAAoB;IAEpB,IAAI,CAAC;QACH,kCAAkC;QAClC,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAChE,eAAM,CAAC,KAAK,CAAC,4BAA4B,OAAO,CAAC,EAAE,2BAA2B,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,0BAA0B;QAC1B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/list.js
CHANGED
|
@@ -14,7 +14,7 @@ async function listCommand(options) {
|
|
|
14
14
|
try {
|
|
15
15
|
// List templates
|
|
16
16
|
if (showTemplates) {
|
|
17
|
-
const templatesDir = path_1.default.join(__dirname, '..', '..', '
|
|
17
|
+
const templatesDir = path_1.default.join(__dirname, '..', '..', 'templates');
|
|
18
18
|
const templates = await getAvailableTemplates(templatesDir);
|
|
19
19
|
logger_1.logger.log(chalk_1.default.bold('📦 Templates'));
|
|
20
20
|
logger_1.logger.newLine();
|
|
@@ -33,7 +33,7 @@ async function listCommand(options) {
|
|
|
33
33
|
}
|
|
34
34
|
// List modules
|
|
35
35
|
if (showModules) {
|
|
36
|
-
const modulesDir = path_1.default.join(__dirname, '..', '..', '
|
|
36
|
+
const modulesDir = path_1.default.join(__dirname, '..', '..', 'modules');
|
|
37
37
|
const modules = await getAvailableModules(modulesDir);
|
|
38
38
|
logger_1.logger.log(chalk_1.default.bold('🔧 Modules'));
|
|
39
39
|
logger_1.logger.newLine();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;AAWA,kCAiEC;AA5ED,kDAA0B;AAC1B,wDAA0B;AAC1B,gDAAwB;AAExB,4CAAyC;AAOlC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAC5D,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAE1D,IAAI,CAAC;QACH,iBAAiB;QACjB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { AuthOptions } from 'next-auth';
|
|
2
|
+
import CredentialsProvider from 'next-auth/providers/credentials';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* NextAuth.js Configuration
|
|
6
|
+
*
|
|
7
|
+
* Configure authentication providers and options here.
|
|
8
|
+
* See: https://next-auth.js.org/configuration/options
|
|
9
|
+
*/
|
|
10
|
+
export const authOptions: AuthOptions = {
|
|
11
|
+
providers: [
|
|
12
|
+
// GitHub OAuth Provider
|
|
13
|
+
// Uncomment and add GITHUB_ID and GITHUB_SECRET to .env
|
|
14
|
+
// GithubProvider({
|
|
15
|
+
// clientId: process.env.GITHUB_ID!,
|
|
16
|
+
// clientSecret: process.env.GITHUB_SECRET!,
|
|
17
|
+
// }),
|
|
18
|
+
|
|
19
|
+
// Google OAuth Provider
|
|
20
|
+
// Uncomment and add GOOGLE_ID and GOOGLE_SECRET to .env
|
|
21
|
+
// GoogleProvider({
|
|
22
|
+
// clientId: process.env.GOOGLE_ID!,
|
|
23
|
+
// clientSecret: process.env.GOOGLE_SECRET!,
|
|
24
|
+
// }),
|
|
25
|
+
|
|
26
|
+
// Credentials Provider (email/password)
|
|
27
|
+
// Replace with your own authentication logic
|
|
28
|
+
CredentialsProvider({
|
|
29
|
+
name: 'Credentials',
|
|
30
|
+
credentials: {
|
|
31
|
+
email: { label: 'Email', type: 'email', placeholder: 'user@example.com' },
|
|
32
|
+
password: { label: 'Password', type: 'password' },
|
|
33
|
+
},
|
|
34
|
+
async authorize(credentials) {
|
|
35
|
+
// Add your own authentication logic here
|
|
36
|
+
// This is just a demo - DO NOT use in production
|
|
37
|
+
if (credentials?.email === 'demo@example.com' && credentials?.password === 'demo') {
|
|
38
|
+
return {
|
|
39
|
+
id: '1',
|
|
40
|
+
name: 'Demo User',
|
|
41
|
+
email: 'demo@example.com',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
},
|
|
46
|
+
}),
|
|
47
|
+
],
|
|
48
|
+
|
|
49
|
+
// Database adapter (optional)
|
|
50
|
+
// Uncomment to persist sessions in database
|
|
51
|
+
// adapter: PrismaAdapter(prisma),
|
|
52
|
+
|
|
53
|
+
session: {
|
|
54
|
+
strategy: 'jwt',
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
pages: {
|
|
58
|
+
signIn: '/auth/signin',
|
|
59
|
+
// signOut: '/auth/signout',
|
|
60
|
+
// error: '/auth/error',
|
|
61
|
+
// verifyRequest: '/auth/verify-request',
|
|
62
|
+
// newUser: '/auth/new-user'
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
callbacks: {
|
|
66
|
+
async jwt({ token, user }) {
|
|
67
|
+
if (user) {
|
|
68
|
+
token.id = user.id;
|
|
69
|
+
}
|
|
70
|
+
return token;
|
|
71
|
+
},
|
|
72
|
+
async session({ session, token }) {
|
|
73
|
+
if (session.user) {
|
|
74
|
+
session.user.id = token.id as string;
|
|
75
|
+
}
|
|
76
|
+
return session;
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
// Enable debug messages in development
|
|
81
|
+
debug: process.env.NODE_ENV === 'development',
|
|
82
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "auth",
|
|
3
|
+
"displayName": "NextAuth.js Authentication",
|
|
4
|
+
"description": "Add authentication with NextAuth.js (supports multiple providers)",
|
|
5
|
+
"category": "auth",
|
|
6
|
+
"supportedFrameworks": ["nextjs"],
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"next-auth": "^4.24.5"
|
|
9
|
+
},
|
|
10
|
+
"envVars": [
|
|
11
|
+
{
|
|
12
|
+
"key": "NEXTAUTH_URL",
|
|
13
|
+
"value": "http://localhost:3000",
|
|
14
|
+
"description": "The URL of your application (change in production)",
|
|
15
|
+
"required": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"key": "NEXTAUTH_SECRET",
|
|
19
|
+
"value": "",
|
|
20
|
+
"description": "Secret for encrypting tokens. Generate with: openssl rand -base64 32",
|
|
21
|
+
"required": true
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"patches": [
|
|
25
|
+
{
|
|
26
|
+
"type": "create-file",
|
|
27
|
+
"description": "Create NextAuth API route for App Router",
|
|
28
|
+
"source": "app-router/api/auth/[...nextauth]/route.ts",
|
|
29
|
+
"destination": "{{router}}/api/auth/[...nextauth]/route.ts",
|
|
30
|
+
"condition": {
|
|
31
|
+
"router": "app"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "create-file",
|
|
36
|
+
"description": "Create NextAuth API route for Pages Router",
|
|
37
|
+
"source": "pages-router/api/auth/[...nextauth].ts",
|
|
38
|
+
"destination": "{{router}}/api/auth/[...nextauth].ts",
|
|
39
|
+
"condition": {
|
|
40
|
+
"router": "pages"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "create-file",
|
|
45
|
+
"description": "Create auth configuration",
|
|
46
|
+
"source": "lib/auth.ts",
|
|
47
|
+
"destination": "{{lib}}/auth.ts"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stackkit-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "CLI for StackKit - Production-ready project generator and module system",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -29,6 +29,12 @@
|
|
|
29
29
|
"nextjs",
|
|
30
30
|
"template"
|
|
31
31
|
],
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"bin",
|
|
35
|
+
"templates",
|
|
36
|
+
"modules"
|
|
37
|
+
],
|
|
32
38
|
"author": "Your Name",
|
|
33
39
|
"license": "MIT",
|
|
34
40
|
"dependencies": {
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# StackKit Project
|
|
2
|
+
|
|
3
|
+
This project was created with [StackKit](https://github.com/yourusername/stackkit).
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
1. Install dependencies:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm install
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
2. Copy the environment variables:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
cp .env.example .env
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
3. Update the `DATABASE_URL` in `.env` with your PostgreSQL connection string.
|
|
20
|
+
|
|
21
|
+
4. Run database migrations:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pnpm prisma migrate dev --name init
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
5. Start the development server:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pnpm dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
34
|
+
|
|
35
|
+
## Tech Stack
|
|
36
|
+
|
|
37
|
+
- **Next.js 15** - React framework with App Router
|
|
38
|
+
- **TypeScript** - Type-safe JavaScript
|
|
39
|
+
- **Prisma** - Next-generation ORM
|
|
40
|
+
- **PostgreSQL** - Robust relational database
|
|
41
|
+
- **Tailwind CSS** - Utility-first CSS framework
|
|
42
|
+
- **Zod** - TypeScript-first schema validation
|
|
43
|
+
|
|
44
|
+
## Project Structure
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
├── app/ # Next.js App Router
|
|
48
|
+
│ ├── api/ # API routes
|
|
49
|
+
│ ├── layout.tsx # Root layout
|
|
50
|
+
│ └── page.tsx # Home page
|
|
51
|
+
├── lib/ # Shared utilities
|
|
52
|
+
│ ├── db.ts # Prisma client
|
|
53
|
+
│ └── env.ts # Environment validation
|
|
54
|
+
├── prisma/ # Database schema
|
|
55
|
+
│ └── schema.prisma
|
|
56
|
+
└── public/ # Static assets
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Available Commands
|
|
60
|
+
|
|
61
|
+
- `pnpm dev` - Start development server
|
|
62
|
+
- `pnpm build` - Build for production
|
|
63
|
+
- `pnpm start` - Start production server
|
|
64
|
+
- `pnpm lint` - Run ESLint
|
|
65
|
+
- `pnpm format` - Format code with Prettier
|
|
66
|
+
|
|
67
|
+
## Adding Features
|
|
68
|
+
|
|
69
|
+
Use StackKit to add more features to your project:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx stackkit add auth
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Learn More
|
|
76
|
+
|
|
77
|
+
- [Next.js Documentation](https://nextjs.org/docs)
|
|
78
|
+
- [Prisma Documentation](https://www.prisma.io/docs)
|
|
79
|
+
- [StackKit Documentation](https://github.com/yourusername/stackkit)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
import { prisma } from '@/lib/db';
|
|
3
|
+
|
|
4
|
+
export async function GET() {
|
|
5
|
+
try {
|
|
6
|
+
// Test database connection
|
|
7
|
+
await prisma.$queryRaw`SELECT 1`;
|
|
8
|
+
|
|
9
|
+
return NextResponse.json({
|
|
10
|
+
status: 'ok',
|
|
11
|
+
timestamp: new Date().toISOString(),
|
|
12
|
+
database: 'connected',
|
|
13
|
+
});
|
|
14
|
+
} catch (error) {
|
|
15
|
+
return NextResponse.json(
|
|
16
|
+
{
|
|
17
|
+
status: 'error',
|
|
18
|
+
timestamp: new Date().toISOString(),
|
|
19
|
+
database: 'disconnected',
|
|
20
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
21
|
+
},
|
|
22
|
+
{ status: 500 }
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import 'tailwindcss';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Metadata } from 'next';
|
|
2
|
+
import { Inter } from 'next/font/google';
|
|
3
|
+
import './globals.css';
|
|
4
|
+
|
|
5
|
+
const inter = Inter({ subsets: ['latin'] });
|
|
6
|
+
|
|
7
|
+
export const metadata: Metadata = {
|
|
8
|
+
title: 'StackKit App',
|
|
9
|
+
description: 'Created with StackKit',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default function RootLayout({
|
|
13
|
+
children,
|
|
14
|
+
}: Readonly<{
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
}>) {
|
|
17
|
+
return (
|
|
18
|
+
<html lang="en">
|
|
19
|
+
<body className={inter.className}>{children}</body>
|
|
20
|
+
</html>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export default function HomePage() {
|
|
2
|
+
return (
|
|
3
|
+
<main className="flex min-h-screen flex-col items-center justify-center p-24">
|
|
4
|
+
<div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm">
|
|
5
|
+
<h1 className="text-4xl font-bold mb-4">Welcome to StackKit</h1>
|
|
6
|
+
<p className="text-lg text-gray-600 dark:text-gray-400">
|
|
7
|
+
Your production-ready Next.js starter
|
|
8
|
+
</p>
|
|
9
|
+
<div className="mt-8 space-y-2">
|
|
10
|
+
<p>✅ Next.js 15 App Router</p>
|
|
11
|
+
<p>✅ TypeScript</p>
|
|
12
|
+
<p>✅ Prisma + PostgreSQL</p>
|
|
13
|
+
<p>✅ Tailwind CSS</p>
|
|
14
|
+
<p>✅ Environment validation</p>
|
|
15
|
+
</div>
|
|
16
|
+
<div className="mt-8">
|
|
17
|
+
<a
|
|
18
|
+
href="/api/health"
|
|
19
|
+
className="text-blue-600 hover:underline"
|
|
20
|
+
target="_blank"
|
|
21
|
+
rel="noopener noreferrer"
|
|
22
|
+
>
|
|
23
|
+
Check API Health →
|
|
24
|
+
</a>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</main>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PrismaClient } from '@prisma/client';
|
|
2
|
+
import { env } from './env';
|
|
3
|
+
|
|
4
|
+
const globalForPrisma = globalThis as unknown as {
|
|
5
|
+
prisma: PrismaClient | undefined;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const prisma =
|
|
9
|
+
globalForPrisma.prisma ??
|
|
10
|
+
new PrismaClient({
|
|
11
|
+
log: env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
if (env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
const envSchema = z.object({
|
|
4
|
+
NODE_ENV: z.enum(['development', 'production', 'test']).default('development'),
|
|
5
|
+
DATABASE_URL: z.string().url(),
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
const parsedEnv = envSchema.safeParse(process.env);
|
|
9
|
+
|
|
10
|
+
if (!parsedEnv.success) {
|
|
11
|
+
console.error('❌ Invalid environment variables:', parsedEnv.error.format());
|
|
12
|
+
throw new Error('Invalid environment variables');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const env = parsedEnv.data;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "my-app",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "next dev",
|
|
7
|
+
"build": "next build",
|
|
8
|
+
"start": "next start",
|
|
9
|
+
"lint": "eslint . --ext .ts,.tsx",
|
|
10
|
+
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
|
|
11
|
+
"postinstall": "prisma generate"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@prisma/client": "^5.8.0",
|
|
15
|
+
"next": "16.1.1",
|
|
16
|
+
"react": "19.2.3",
|
|
17
|
+
"react-dom": "19.2.3",
|
|
18
|
+
"zod": "^3.22.4"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@tailwindcss/postcss": "^4",
|
|
22
|
+
"@types/node": "^20",
|
|
23
|
+
"@types/react": "^19",
|
|
24
|
+
"@types/react-dom": "^19",
|
|
25
|
+
"eslint": "^9",
|
|
26
|
+
"eslint-config-next": "16.1.1",
|
|
27
|
+
"prettier": "^3.2.4",
|
|
28
|
+
"prisma": "^5.8.0",
|
|
29
|
+
"tailwindcss": "^4",
|
|
30
|
+
"typescript": "^5"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// This is your Prisma schema file
|
|
2
|
+
// Learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
3
|
+
|
|
4
|
+
generator client {
|
|
5
|
+
provider = "prisma-client-js"
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
datasource db {
|
|
9
|
+
provider = "postgresql"
|
|
10
|
+
url = env("DATABASE_URL")
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Example model - replace with your own
|
|
14
|
+
model User {
|
|
15
|
+
id String @id @default(cuid())
|
|
16
|
+
email String @unique
|
|
17
|
+
name String?
|
|
18
|
+
createdAt DateTime @default(now())
|
|
19
|
+
updatedAt DateTime @updatedAt
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# This file is used to keep the public directory in git
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "next-prisma-postgres-shadcn",
|
|
3
|
+
"displayName": "Next.js + Prisma + PostgreSQL + shadcn/ui",
|
|
4
|
+
"description": "Production-ready Next.js App Router with Prisma, PostgreSQL, shadcn/ui, and best practices",
|
|
5
|
+
"tags": ["nextjs", "prisma", "postgresql", "shadcn", "typescript"],
|
|
6
|
+
"defaultPackageManager": "pnpm",
|
|
7
|
+
"features": [
|
|
8
|
+
"Next.js 15 App Router",
|
|
9
|
+
"TypeScript",
|
|
10
|
+
"Prisma ORM",
|
|
11
|
+
"PostgreSQL",
|
|
12
|
+
"shadcn/ui components",
|
|
13
|
+
"Tailwind CSS",
|
|
14
|
+
"Environment validation (Zod)",
|
|
15
|
+
"ESLint + Prettier",
|
|
16
|
+
"Health check API route"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2017",
|
|
4
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
+
"allowJs": true,
|
|
6
|
+
"skipLibCheck": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"noEmit": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"module": "esnext",
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"jsx": "preserve",
|
|
15
|
+
"incremental": true,
|
|
16
|
+
"plugins": [
|
|
17
|
+
{
|
|
18
|
+
"name": "next"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"paths": {
|
|
22
|
+
"@/*": ["./*"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"include": [
|
|
26
|
+
"next-env.d.ts",
|
|
27
|
+
"**/*.ts",
|
|
28
|
+
"**/*.tsx",
|
|
29
|
+
".next/types/**/*.ts"
|
|
30
|
+
],
|
|
31
|
+
"exclude": ["node_modules"]
|
|
32
|
+
}
|