@intentsolutionsio/vercel-pack 1.0.0 → 1.0.3
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/LICENSE +1 -1
- package/README.md +67 -44
- package/package.json +4 -4
- package/skills/vercel-advanced-troubleshooting/SKILL.md +185 -195
- package/skills/vercel-advanced-troubleshooting/references/errors.md +11 -0
- package/skills/vercel-advanced-troubleshooting/references/evidence-collection-framework.md +34 -0
- package/skills/vercel-advanced-troubleshooting/references/examples.md +11 -0
- package/skills/vercel-advanced-troubleshooting/references/systematic-isolation.md +56 -0
- package/skills/vercel-advanced-troubleshooting/references/timing-analysis.md +35 -0
- package/skills/vercel-architecture-variants/SKILL.md +227 -216
- package/skills/vercel-architecture-variants/references/errors.md +11 -0
- package/skills/vercel-architecture-variants/references/examples.md +12 -0
- package/skills/vercel-architecture-variants/references/variant-a-monolith-(simple).md +44 -0
- package/skills/vercel-architecture-variants/references/variant-b-service-layer-(moderate).md +72 -0
- package/skills/vercel-architecture-variants/references/variant-c-microservice-(complex).md +81 -0
- package/skills/vercel-ci-integration/SKILL.md +183 -73
- package/skills/vercel-ci-integration/references/errors.md +10 -0
- package/skills/vercel-ci-integration/references/examples.md +36 -0
- package/skills/vercel-ci-integration/references/implementation.md +54 -0
- package/skills/vercel-common-errors/SKILL.md +164 -60
- package/skills/vercel-common-errors/references/errors.md +53 -0
- package/skills/vercel-common-errors/references/examples.md +23 -0
- package/skills/vercel-cost-tuning/SKILL.md +158 -145
- package/skills/vercel-cost-tuning/references/cost-estimation.md +34 -0
- package/skills/vercel-cost-tuning/references/cost-reduction-strategies.md +40 -0
- package/skills/vercel-cost-tuning/references/errors.md +11 -0
- package/skills/vercel-cost-tuning/references/examples.md +15 -0
- package/skills/vercel-data-handling/SKILL.md +202 -155
- package/skills/vercel-data-handling/references/errors.md +11 -0
- package/skills/vercel-data-handling/references/examples.md +27 -0
- package/skills/vercel-data-handling/references/implementation.md +223 -0
- package/skills/vercel-debug-bundle/SKILL.md +163 -67
- package/skills/vercel-debug-bundle/references/errors.md +12 -0
- package/skills/vercel-debug-bundle/references/examples.md +24 -0
- package/skills/vercel-debug-bundle/references/implementation.md +54 -0
- package/skills/vercel-deploy-integration/SKILL.md +163 -156
- package/skills/vercel-deploy-integration/references/errors.md +11 -0
- package/skills/vercel-deploy-integration/references/examples.md +21 -0
- package/skills/vercel-deploy-integration/references/google-cloud-run.md +36 -0
- package/skills/vercel-deploy-integration/references/vercel-deployment.md +35 -0
- package/skills/vercel-deploy-preview/SKILL.md +164 -39
- package/skills/vercel-edge-functions/SKILL.md +185 -37
- package/skills/vercel-enterprise-rbac/SKILL.md +185 -170
- package/skills/vercel-enterprise-rbac/references/errors.md +11 -0
- package/skills/vercel-enterprise-rbac/references/examples.md +12 -0
- package/skills/vercel-enterprise-rbac/references/role-implementation.md +33 -0
- package/skills/vercel-enterprise-rbac/references/sso-integration.md +35 -0
- package/skills/vercel-hello-world/SKILL.md +141 -55
- package/skills/vercel-incident-runbook/SKILL.md +186 -138
- package/skills/vercel-incident-runbook/references/errors.md +11 -0
- package/skills/vercel-incident-runbook/references/examples.md +10 -0
- package/skills/vercel-incident-runbook/references/immediate-actions-by-error-type.md +41 -0
- package/skills/vercel-install-auth/SKILL.md +130 -53
- package/skills/vercel-known-pitfalls/SKILL.md +235 -233
- package/skills/vercel-known-pitfalls/references/errors.md +11 -0
- package/skills/vercel-known-pitfalls/references/examples.md +12 -0
- package/skills/vercel-load-scale/SKILL.md +197 -204
- package/skills/vercel-load-scale/references/capacity-planning.md +47 -0
- package/skills/vercel-load-scale/references/errors.md +11 -0
- package/skills/vercel-load-scale/references/examples.md +26 -0
- package/skills/vercel-load-scale/references/load-testing-with-k6.md +59 -0
- package/skills/vercel-load-scale/references/scaling-patterns.md +65 -0
- package/skills/vercel-local-dev-loop/SKILL.md +159 -71
- package/skills/vercel-local-dev-loop/references/errors.md +11 -0
- package/skills/vercel-local-dev-loop/references/examples.md +21 -0
- package/skills/vercel-local-dev-loop/references/implementation.md +60 -0
- package/skills/vercel-migration-deep-dive/SKILL.md +202 -187
- package/skills/vercel-migration-deep-dive/references/errors.md +11 -0
- package/skills/vercel-migration-deep-dive/references/examples.md +12 -0
- package/skills/vercel-migration-deep-dive/references/implementation-plan.md +80 -0
- package/skills/vercel-migration-deep-dive/references/pre-migration-assessment.md +39 -0
- package/skills/vercel-multi-env-setup/SKILL.md +167 -164
- package/skills/vercel-multi-env-setup/references/configuration-structure.md +59 -0
- package/skills/vercel-multi-env-setup/references/errors.md +11 -0
- package/skills/vercel-multi-env-setup/references/examples.md +11 -0
- package/skills/vercel-observability/SKILL.md +205 -195
- package/skills/vercel-observability/references/alert-configuration.md +40 -0
- package/skills/vercel-observability/references/errors.md +11 -0
- package/skills/vercel-observability/references/examples.md +13 -0
- package/skills/vercel-observability/references/metrics-collection.md +65 -0
- package/skills/vercel-performance-tuning/SKILL.md +212 -156
- package/skills/vercel-performance-tuning/references/caching-strategy.md +49 -0
- package/skills/vercel-performance-tuning/references/errors.md +11 -0
- package/skills/vercel-performance-tuning/references/examples.md +13 -0
- package/skills/vercel-policy-guardrails/SKILL.md +276 -193
- package/skills/vercel-policy-guardrails/references/errors.md +11 -0
- package/skills/vercel-policy-guardrails/references/eslint-rules.md +46 -0
- package/skills/vercel-policy-guardrails/references/examples.md +10 -0
- package/skills/vercel-prod-checklist/SKILL.md +219 -94
- package/skills/vercel-prod-checklist/references/errors.md +11 -0
- package/skills/vercel-prod-checklist/references/examples.md +25 -0
- package/skills/vercel-prod-checklist/references/implementation.md +60 -0
- package/skills/vercel-rate-limits/SKILL.md +187 -100
- package/skills/vercel-rate-limits/references/errors.md +11 -0
- package/skills/vercel-rate-limits/references/examples.md +46 -0
- package/skills/vercel-rate-limits/references/implementation.md +66 -0
- package/skills/vercel-reference-architecture/SKILL.md +226 -180
- package/skills/vercel-reference-architecture/references/errors.md +11 -0
- package/skills/vercel-reference-architecture/references/examples.md +13 -0
- package/skills/vercel-reference-architecture/references/key-components.md +65 -0
- package/skills/vercel-reference-architecture/references/project-structure.md +40 -0
- package/skills/vercel-reliability-patterns/SKILL.md +272 -211
- package/skills/vercel-reliability-patterns/references/circuit-breaker.md +36 -0
- package/skills/vercel-reliability-patterns/references/dead-letter-queue.md +48 -0
- package/skills/vercel-reliability-patterns/references/errors.md +11 -0
- package/skills/vercel-reliability-patterns/references/examples.md +11 -0
- package/skills/vercel-reliability-patterns/references/idempotency-keys.md +36 -0
- package/skills/vercel-sdk-patterns/SKILL.md +264 -92
- package/skills/vercel-sdk-patterns/references/errors.md +11 -0
- package/skills/vercel-sdk-patterns/references/examples.md +45 -0
- package/skills/vercel-sdk-patterns/references/implementation.md +67 -0
- package/skills/vercel-security-basics/SKILL.md +186 -96
- package/skills/vercel-security-basics/references/errors.md +10 -0
- package/skills/vercel-security-basics/references/examples.md +70 -0
- package/skills/vercel-security-basics/references/implementation.md +39 -0
- package/skills/vercel-upgrade-migration/SKILL.md +167 -67
- package/skills/vercel-upgrade-migration/references/errors.md +10 -0
- package/skills/vercel-upgrade-migration/references/examples.md +51 -0
- package/skills/vercel-upgrade-migration/references/implementation.md +29 -0
- package/skills/vercel-webhooks-events/SKILL.md +208 -132
- package/skills/vercel-webhooks-events/references/errors.md +11 -0
- package/skills/vercel-webhooks-events/references/event-handler-pattern.md +37 -0
- package/skills/vercel-webhooks-events/references/examples.md +16 -0
- package/skills/vercel-webhooks-events/references/signature-verification.md +33 -0
|
@@ -1,117 +1,205 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vercel-local-dev-loop
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
description: 'Configure Vercel local development with vercel dev, environment variables,
|
|
4
|
+
and hot reload.
|
|
5
|
+
|
|
6
|
+
Use when setting up a development environment, testing serverless functions locally,
|
|
7
|
+
|
|
6
8
|
or establishing a fast iteration cycle with Vercel.
|
|
9
|
+
|
|
7
10
|
Trigger with phrases like "vercel dev setup", "vercel local development",
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
|
|
12
|
+
"vercel dev environment", "develop with vercel locally".
|
|
13
|
+
|
|
14
|
+
'
|
|
15
|
+
allowed-tools: Read, Write, Edit, Bash(vercel:*), Bash(npm:*), Bash(npx:*), Grep
|
|
10
16
|
version: 1.0.0
|
|
11
17
|
license: MIT
|
|
12
18
|
author: Jeremy Longshore <jeremy@intentsolutions.io>
|
|
19
|
+
tags:
|
|
20
|
+
- saas
|
|
21
|
+
- vercel
|
|
22
|
+
- development
|
|
23
|
+
- testing
|
|
24
|
+
- workflow
|
|
25
|
+
compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
|
|
13
26
|
---
|
|
14
|
-
|
|
15
27
|
# Vercel Local Dev Loop
|
|
16
28
|
|
|
17
29
|
## Overview
|
|
18
|
-
|
|
30
|
+
|
|
31
|
+
Run Vercel serverless functions and API routes locally using `vercel dev`. Covers environment variable management, hot reload, local testing patterns, and framework-specific dev servers.
|
|
19
32
|
|
|
20
33
|
## Prerequisites
|
|
34
|
+
|
|
21
35
|
- Completed `vercel-install-auth` setup
|
|
36
|
+
- Project linked via `vercel link`
|
|
22
37
|
- Node.js 18+ with npm/pnpm
|
|
23
|
-
- Code editor with TypeScript support
|
|
24
|
-
- Git for version control
|
|
25
38
|
|
|
26
39
|
## Instructions
|
|
27
40
|
|
|
28
|
-
### Step 1:
|
|
41
|
+
### Step 1: Pull Environment Variables
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Pull env vars from Vercel to local .env files
|
|
45
|
+
vercel env pull .env.development.local
|
|
46
|
+
|
|
47
|
+
# This creates .env.development.local with all Development-scoped vars:
|
|
48
|
+
# VERCEL="1"
|
|
49
|
+
# VERCEL_ENV="development"
|
|
50
|
+
# DATABASE_URL="postgres://..."
|
|
51
|
+
# API_SECRET="sk-..."
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Step 2: Start Local Dev Server
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# vercel dev starts a local server that emulates the Vercel platform
|
|
58
|
+
vercel dev
|
|
59
|
+
|
|
60
|
+
# Output:
|
|
61
|
+
# Vercel CLI 39.x.x — dev command
|
|
62
|
+
# > Ready on http://localhost:3000
|
|
63
|
+
|
|
64
|
+
# With a specific port
|
|
65
|
+
vercel dev --listen 8080
|
|
66
|
+
|
|
67
|
+
# With debug logging
|
|
68
|
+
vercel dev --debug
|
|
29
69
|
```
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
70
|
+
|
|
71
|
+
`vercel dev` provides:
|
|
72
|
+
|
|
73
|
+
- Serverless function emulation at `/api/*` routes
|
|
74
|
+
- Automatic TypeScript compilation
|
|
75
|
+
- `vercel.json` rewrites, redirects, and headers applied locally
|
|
76
|
+
- Environment variables loaded from `.env*.local` files
|
|
77
|
+
- Framework detection (Next.js, Nuxt, SvelteKit, etc.)
|
|
78
|
+
|
|
79
|
+
### Step 3: Test Serverless Functions Locally
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Test your API route
|
|
83
|
+
curl http://localhost:3000/api/hello
|
|
84
|
+
# {"message":"Hello from Vercel Serverless Function!"}
|
|
85
|
+
|
|
86
|
+
# Test with POST body
|
|
87
|
+
curl -X POST http://localhost:3000/api/users \
|
|
88
|
+
-H "Content-Type: application/json" \
|
|
89
|
+
-d '{"name":"test","email":"test@example.com"}'
|
|
90
|
+
|
|
91
|
+
# Test with query parameters
|
|
92
|
+
curl "http://localhost:3000/api/search?q=vercel&limit=10"
|
|
42
93
|
```
|
|
43
94
|
|
|
44
|
-
### Step
|
|
95
|
+
### Step 4: Framework-Specific Dev Servers
|
|
96
|
+
|
|
97
|
+
For frameworks with their own dev server, use those instead of `vercel dev`:
|
|
98
|
+
|
|
45
99
|
```bash
|
|
46
|
-
#
|
|
47
|
-
|
|
100
|
+
# Next.js — built-in Vercel compatibility
|
|
101
|
+
npx next dev
|
|
102
|
+
# API routes at pages/api/* or app/api/* work identically
|
|
48
103
|
|
|
49
|
-
#
|
|
50
|
-
|
|
104
|
+
# Nuxt
|
|
105
|
+
npx nuxi dev
|
|
51
106
|
|
|
52
|
-
#
|
|
107
|
+
# SvelteKit
|
|
53
108
|
npm run dev
|
|
109
|
+
|
|
110
|
+
# Astro
|
|
111
|
+
npx astro dev
|
|
54
112
|
```
|
|
55
113
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
114
|
+
The framework dev servers handle API routes natively. Use `vercel dev` only for plain serverless function projects without a framework.
|
|
115
|
+
|
|
116
|
+
### Step 5: Local Environment Variable Management
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Add a new env var for development only
|
|
120
|
+
vercel env add MY_VAR development
|
|
121
|
+
# Prompts for value, stores encrypted on Vercel
|
|
122
|
+
|
|
123
|
+
# List all env vars
|
|
124
|
+
vercel env ls
|
|
125
|
+
|
|
126
|
+
# Remove an env var
|
|
127
|
+
vercel env rm MY_VAR development
|
|
128
|
+
|
|
129
|
+
# Pull updated vars after changes
|
|
130
|
+
vercel env pull .env.development.local
|
|
65
131
|
```
|
|
66
132
|
|
|
67
|
-
### Step
|
|
133
|
+
### Step 6: Testing with Vitest
|
|
134
|
+
|
|
68
135
|
```typescript
|
|
136
|
+
// api/__tests__/hello.test.ts
|
|
69
137
|
import { describe, it, expect, vi } from 'vitest';
|
|
70
|
-
import { VercelClient } from '../src/vercel/client';
|
|
71
138
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
139
|
+
// Mock the Vercel request/response
|
|
140
|
+
function createMockReq(overrides = {}) {
|
|
141
|
+
return { method: 'GET', query: {}, body: null, ...overrides };
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function createMockRes() {
|
|
145
|
+
const res: any = {};
|
|
146
|
+
res.status = vi.fn().mockReturnValue(res);
|
|
147
|
+
res.json = vi.fn().mockReturnValue(res);
|
|
148
|
+
res.send = vi.fn().mockReturnValue(res);
|
|
149
|
+
return res;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
describe('GET /api/hello', () => {
|
|
153
|
+
it('returns 200 with message', async () => {
|
|
154
|
+
const handler = (await import('../hello')).default;
|
|
155
|
+
const req = createMockReq();
|
|
156
|
+
const res = createMockRes();
|
|
157
|
+
|
|
158
|
+
handler(req, res);
|
|
159
|
+
|
|
160
|
+
expect(res.status).toHaveBeenCalledWith(200);
|
|
161
|
+
expect(res.json).toHaveBeenCalledWith(
|
|
162
|
+
expect.objectContaining({ message: expect.any(String) })
|
|
163
|
+
);
|
|
76
164
|
});
|
|
77
165
|
});
|
|
78
166
|
```
|
|
79
167
|
|
|
168
|
+
## `.env` File Hierarchy
|
|
169
|
+
|
|
170
|
+
Vercel loads environment files in this order (later files override earlier):
|
|
171
|
+
|
|
172
|
+
| File | Environment | Git |
|
|
173
|
+
|------|------------|-----|
|
|
174
|
+
| `.env` | All | Commit |
|
|
175
|
+
| `.env.local` | All (local only) | Ignore |
|
|
176
|
+
| `.env.development` | Development | Commit |
|
|
177
|
+
| `.env.development.local` | Development (local only) | Ignore |
|
|
178
|
+
|
|
80
179
|
## Output
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
- Environment
|
|
84
|
-
-
|
|
180
|
+
|
|
181
|
+
- Local dev server running with serverless function emulation
|
|
182
|
+
- Environment variables synced from Vercel to local `.env` files
|
|
183
|
+
- Hot reload on file changes
|
|
184
|
+
- Test suite for serverless function handlers
|
|
85
185
|
|
|
86
186
|
## Error Handling
|
|
187
|
+
|
|
87
188
|
| Error | Cause | Solution |
|
|
88
189
|
|-------|-------|----------|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
| Env
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
## Examples
|
|
95
|
-
|
|
96
|
-
### Mock Vercel Responses
|
|
97
|
-
```typescript
|
|
98
|
-
vi.mock('vercel', () => ({
|
|
99
|
-
VercelClient: vi.fn().mockImplementation(() => ({
|
|
100
|
-
// Mock methods here
|
|
101
|
-
})),
|
|
102
|
-
}));
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Debug Mode
|
|
106
|
-
```bash
|
|
107
|
-
# Enable verbose logging
|
|
108
|
-
DEBUG=VERCEL=* npm run dev
|
|
109
|
-
```
|
|
190
|
+
| `vercel dev` hangs on start | Port already in use | Kill the process on port 3000 or use `--listen 8080` |
|
|
191
|
+
| `Error: No framework detected` | Missing package.json or framework | Add a build framework or use plain functions in `api/` |
|
|
192
|
+
| Env var undefined locally | Not pulled from Vercel | Run `vercel env pull .env.development.local` |
|
|
193
|
+
| `FUNCTION_INVOCATION_TIMEOUT` | Function exceeds 10s locally | Check for unresolved promises or infinite loops |
|
|
194
|
+
| TypeScript errors in `api/` | Missing `@vercel/node` types | `npm install --save-dev @vercel/node` |
|
|
110
195
|
|
|
111
196
|
## Resources
|
|
112
|
-
|
|
197
|
+
|
|
198
|
+
- [Vercel Dev Command](https://vercel.com/docs/cli/dev)
|
|
199
|
+
- [Environment Variables](https://vercel.com/docs/environment-variables)
|
|
200
|
+
- [Vercel Functions](https://vercel.com/docs/functions)
|
|
113
201
|
- [Vitest Documentation](https://vitest.dev/)
|
|
114
|
-
- [tsx Documentation](https://github.com/esbuild-kit/tsx)
|
|
115
202
|
|
|
116
203
|
## Next Steps
|
|
117
|
-
|
|
204
|
+
|
|
205
|
+
Proceed to `vercel-sdk-patterns` for production-ready REST API integration patterns.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Error Handling Reference
|
|
2
|
+
|
|
3
|
+
| Error | Cause | Solution |
|
|
4
|
+
|-------|-------|----------|
|
|
5
|
+
| Module not found | Missing dependency | Run `npm install` |
|
|
6
|
+
| Port in use | Another process | Kill process or change port |
|
|
7
|
+
| Env not loaded | Missing .env.local | Copy from .env.example |
|
|
8
|
+
| Test timeout | Slow network | Increase test timeout |
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
*[Tons of Skills](https://tonsofskills.com) by [Intent Solutions](https://intentsolutions.io) | [jeremylongshore.com](https://jeremylongshore.com)*
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
## Examples
|
|
2
|
+
|
|
3
|
+
### Mock Vercel Responses
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
vi.mock('vercel', () => ({
|
|
7
|
+
VercelClient: vi.fn().mockImplementation(() => ({
|
|
8
|
+
// Mock methods here
|
|
9
|
+
})),
|
|
10
|
+
}));
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Debug Mode
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Enable verbose logging
|
|
17
|
+
DEBUG=VERCEL=* npm run dev
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
*[Tons of Skills](https://tonsofskills.com) by [Intent Solutions](https://intentsolutions.io) | [jeremylongshore.com](https://jeremylongshore.com)*
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
## Implementation Guide
|
|
2
|
+
|
|
3
|
+
### Step 1: Create Project Structure
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
my-vercel-project/
|
|
7
|
+
├── src/
|
|
8
|
+
│ ├── vercel/
|
|
9
|
+
│ │ ├── client.ts # Vercel client wrapper
|
|
10
|
+
│ │ ├── config.ts # Configuration management
|
|
11
|
+
│ │ └── utils.ts # Helper functions
|
|
12
|
+
│ └── index.ts
|
|
13
|
+
├── tests/
|
|
14
|
+
│ └── vercel.test.ts
|
|
15
|
+
├── .env.local # Local secrets (git-ignored)
|
|
16
|
+
├── .env.example # Template for team
|
|
17
|
+
└── package.json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Step 2: Configure Environment
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Copy environment template
|
|
24
|
+
cp .env.example .env.local
|
|
25
|
+
|
|
26
|
+
# Install dependencies
|
|
27
|
+
npm install
|
|
28
|
+
|
|
29
|
+
# Start development server
|
|
30
|
+
npm run dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Step 3: Setup Hot Reload
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"scripts": {
|
|
38
|
+
"dev": "tsx watch src/index.ts",
|
|
39
|
+
"test": "vitest",
|
|
40
|
+
"test:watch": "vitest --watch"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Step 4: Configure Testing
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
49
|
+
import { VercelClient } from '../src/vercel/client';
|
|
50
|
+
|
|
51
|
+
describe('Vercel Client', () => {
|
|
52
|
+
it('should initialize with API key', () => {
|
|
53
|
+
const client = new VercelClient({ apiKey: 'test-key' });
|
|
54
|
+
expect(client).toBeDefined();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
*[Tons of Skills](https://tonsofskills.com) by [Intent Solutions](https://intentsolutions.io) | [jeremylongshore.com](https://jeremylongshore.com)*
|