Initial commit
This commit is contained in:
76
skills/neon-serverless/SKILL.md
Normal file
76
skills/neon-serverless/SKILL.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
name: neon-serverless
|
||||
description: Configures Neon Serverless Driver for Next.js, Vercel Edge Functions, AWS Lambda, and other serverless environments. Installs @neondatabase/serverless, sets up environment variables, and creates working API route examples with TypeScript types. Use when users need to connect their application to Neon, fetch or query data from a Neon database, integrate Neon with Next.js or serverless frameworks, or set up database access in edge/serverless environments where traditional PostgreSQL clients don't work.
|
||||
allowed-tools: ["bash"]
|
||||
---
|
||||
|
||||
# Neon Serverless Skill
|
||||
|
||||
Configures the Neon Serverless Driver for optimal performance in serverless and edge computing environments.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Setting up connections for edge functions (Vercel Edge, Cloudflare Workers)
|
||||
- Configuring serverless APIs (AWS Lambda, Google Cloud Functions)
|
||||
- Optimizing for low-latency database access
|
||||
- Implementing connection pooling for high-throughput apps
|
||||
|
||||
**Not recommended for:** Complex multi-statement transactions (use WebSocket Pool), persistent servers (use native PostgreSQL drivers), or offline-first applications.
|
||||
|
||||
## Code Generation Rules
|
||||
|
||||
When generating TypeScript/JavaScript code:
|
||||
- BEFORE generating import statements, check tsconfig.json for path aliases (compilerOptions.paths)
|
||||
- If path aliases exist (e.g., "@/*": ["./src/*"]), use them (e.g., import { x } from '@/lib/utils')
|
||||
- If NO path aliases exist or unsure, ALWAYS use relative imports (e.g., import { x } from '../../../lib/utils')
|
||||
- Verify imports match the project's configuration
|
||||
- Default to relative imports - they always work regardless of configuration
|
||||
|
||||
## Reference Documentation
|
||||
|
||||
**Primary Resource:** See `[neon-serverless.mdc](https://raw.githubusercontent.com/neondatabase-labs/ai-rules/main/neon-serverless.mdc)` in project root for comprehensive guidelines including:
|
||||
- Installation and compatibility requirements
|
||||
- HTTP vs WebSocket adapter selection
|
||||
- Connection pooling strategies
|
||||
- Query optimization patterns
|
||||
- Error handling and troubleshooting
|
||||
|
||||
## Quick Setup
|
||||
|
||||
### Installation
|
||||
```bash
|
||||
npm install @neondatabase/serverless
|
||||
```
|
||||
|
||||
### Connection Patterns
|
||||
|
||||
**HTTP Client** (recommended for edge/serverless):
|
||||
```typescript
|
||||
import { neon } from '@neondatabase/serverless';
|
||||
const sql = neon(process.env.DATABASE_URL!);
|
||||
const rows = await sql`SELECT * FROM users WHERE id = ${userId}`;
|
||||
```
|
||||
|
||||
**WebSocket Pool** (for Node.js long-lived connections):
|
||||
```typescript
|
||||
import { Pool } from '@neondatabase/serverless';
|
||||
const pool = new Pool({ connectionString: process.env.DATABASE_URL! });
|
||||
const result = await pool.query('SELECT * FROM users WHERE id = $1', [userId]);
|
||||
```
|
||||
|
||||
See `templates/` for complete examples:
|
||||
- `templates/http-connection.ts` - HTTP client setup
|
||||
- `templates/websocket-pool.ts` - WebSocket pool configuration
|
||||
|
||||
## Validation
|
||||
|
||||
Use `scripts/validate-connection.ts` to test your database connection before deployment.
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **neon-drizzle** - For ORM with serverless connections
|
||||
- **neon-toolkit** - For ephemeral database testing
|
||||
|
||||
---
|
||||
|
||||
**Want best practices in your project?** Run `neon-plugin:add-neon-docs` with parameter `SKILL_NAME="neon-serverless"` to add reference links.
|
||||
Reference in New Issue
Block a user