deploy-bbc 0.0.1
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/CLAUDE.md +329 -0
- package/README.md +0 -0
- package/cli/README.md +0 -0
- package/cli/package.json +43 -0
- package/cli/src/cli/index.ts +449 -0
- package/cli/src/helpers/create-project.ts +66 -0
- package/cli/src/helpers/generate-docker-compose.ts +133 -0
- package/cli/src/helpers/generate-dockerfile.ts +45 -0
- package/cli/src/helpers/init-git.ts +33 -0
- package/cli/src/helpers/install-dependencies.ts +28 -0
- package/cli/src/helpers/log-next-steps.ts +84 -0
- package/cli/src/helpers/scaffold-project.ts +62 -0
- package/cli/src/index.ts +18 -0
- package/cli/src/installers/ai.ts +123 -0
- package/cli/src/installers/auth.ts +132 -0
- package/cli/src/installers/base.ts +16 -0
- package/cli/src/installers/cloud.ts +127 -0
- package/cli/src/installers/database.ts +212 -0
- package/cli/src/installers/docs.ts +93 -0
- package/cli/src/installers/email.ts +119 -0
- package/cli/src/installers/env-variables.ts +27 -0
- package/cli/src/installers/index.ts +145 -0
- package/cli/src/installers/observability.ts +103 -0
- package/cli/src/installers/queue.ts +103 -0
- package/cli/src/installers/ratelimit.ts +98 -0
- package/cli/src/installers/realtime.ts +79 -0
- package/cli/src/installers/testing.ts +88 -0
- package/cli/src/installers/validation.ts +85 -0
- package/cli/src/templates/base/.env.example +3 -0
- package/cli/src/templates/base/README.md +31 -0
- package/cli/src/templates/base/package.json +20 -0
- package/cli/src/templates/base/src/config/index.ts +8 -0
- package/cli/src/templates/base/src/index.ts +26 -0
- package/cli/src/templates/base/src/middleware/error.ts +13 -0
- package/cli/src/templates/base/src/middleware/logger.ts +8 -0
- package/cli/src/templates/base/src/routes/index.ts +12 -0
- package/cli/src/templates/base/src/types/index.ts +2 -0
- package/cli/src/templates/base/src/utils/env.ts +5 -0
- package/cli/src/templates/base/tsconfig.json +20 -0
- package/cli/src/templates/base-bun-native/.env.example +3 -0
- package/cli/src/templates/base-bun-native/README.md +31 -0
- package/cli/src/templates/base-bun-native/package.json +19 -0
- package/cli/src/templates/base-bun-native/src/config/index.ts +8 -0
- package/cli/src/templates/base-bun-native/src/index.ts +50 -0
- package/cli/src/templates/base-bun-native/src/middleware/error.ts +20 -0
- package/cli/src/templates/base-bun-native/src/middleware/logger.ts +6 -0
- package/cli/src/templates/base-bun-native/src/routes/index.ts +21 -0
- package/cli/src/templates/base-bun-native/src/types/index.ts +2 -0
- package/cli/src/templates/base-bun-native/src/utils/env.ts +5 -0
- package/cli/src/templates/base-bun-native/tsconfig.json +20 -0
- package/cli/src/templates/base-express/.env.example +3 -0
- package/cli/src/templates/base-express/README.md +31 -0
- package/cli/src/templates/base-express/package.json +21 -0
- package/cli/src/templates/base-express/src/config/index.ts +8 -0
- package/cli/src/templates/base-express/src/index.ts +27 -0
- package/cli/src/templates/base-express/src/middleware/error.ts +15 -0
- package/cli/src/templates/base-express/src/middleware/logger.ts +12 -0
- package/cli/src/templates/base-express/src/routes/index.ts +12 -0
- package/cli/src/templates/base-express/src/types/index.ts +2 -0
- package/cli/src/templates/base-express/src/utils/env.ts +5 -0
- package/cli/src/templates/base-express/tsconfig.json +20 -0
- package/cli/src/templates/extras/ai/anthropic/src/routes/ai/claude.ts +0 -0
- package/cli/src/templates/extras/ai/anthropic/src/services/ai/anthropic.ts +0 -0
- package/cli/src/templates/extras/ai/gemini/src/services/ai/gemini.ts +0 -0
- package/cli/src/templates/extras/ai/openai/src/routes/ai/chat.ts +0 -0
- package/cli/src/templates/extras/ai/openai/src/services/ai/openai.ts +0 -0
- package/cli/src/templates/extras/ai/vercel-ai/src/routes/ai/generate.ts +0 -0
- package/cli/src/templates/extras/ai/vercel-ai/src/routes/ai/stream.ts +0 -0
- package/cli/src/templates/extras/ai/vercel-ai/src/services/ai/index.ts +0 -0
- package/cli/src/templates/extras/auth/jwt/src/middleware/auth.ts +0 -0
- package/cli/src/templates/extras/auth/jwt/src/routes/auth.ts +0 -0
- package/cli/src/templates/extras/auth/jwt/src/utils/jwt.ts +0 -0
- package/cli/src/templates/extras/auth/oauth/src/config/oauth.ts +0 -0
- package/cli/src/templates/extras/auth/oauth/src/routes/auth.ts +0 -0
- package/cli/src/templates/extras/auth/session/src/config/session.ts +0 -0
- package/cli/src/templates/extras/auth/session/src/middleware/session.ts +0 -0
- package/cli/src/templates/extras/cloud/aws/src/services/aws/s3.ts +0 -0
- package/cli/src/templates/extras/cloud/aws/src/services/aws/ses.ts +0 -0
- package/cli/src/templates/extras/cloud/azure/src/services/azure/blob.ts +0 -0
- package/cli/src/templates/extras/cloud/cloudflare-r2/src/services/cloudflare/r2.ts +0 -0
- package/cli/src/templates/extras/cloud/gcp/src/services/gcp/storage.ts +0 -0
- package/cli/src/templates/extras/database/mongodb/src/db/index.ts +0 -0
- package/cli/src/templates/extras/database/mongodb/src/db/models/user.model.ts +0 -0
- package/cli/src/templates/extras/database/mysql/drizzle.config.ts +0 -0
- package/cli/src/templates/extras/database/postgres/src/db/index.ts +0 -0
- package/cli/src/templates/extras/database/redis/src/db/redis.ts +0 -0
- package/cli/src/templates/extras/docs/scalar/src/openapi/index.ts +0 -0
- package/cli/src/templates/extras/docs/scalar/src/routes/docs.ts +0 -0
- package/cli/src/templates/extras/docs/swagger/src/openapi/index.ts +0 -0
- package/cli/src/templates/extras/docs/swagger/src/routes/docs.ts +0 -0
- package/cli/src/templates/extras/email/nodemailer/src/services/email/nodemailer.ts +0 -0
- package/cli/src/templates/extras/email/resend/src/services/email/resend.ts +0 -0
- package/cli/src/templates/extras/email/resend/src/templates/email/welcome.ts +0 -0
- package/cli/src/templates/extras/email/sendgrid/src/services/email/sendgrid.ts +0 -0
- package/cli/src/templates/extras/observability/logtail/src/config/logger.ts +0 -0
- package/cli/src/templates/extras/observability/sentry/src/config/sentry.ts +0 -0
- package/cli/src/templates/extras/observability/sentry/src/middleware/sentry.ts +0 -0
- package/cli/src/templates/extras/queue/bullmq/src/queue/index.ts +0 -0
- package/cli/src/templates/extras/queue/bullmq/src/queue/jobs/email.job.ts +0 -0
- package/cli/src/templates/extras/queue/bullmq/src/queue/processors/email.processor.ts +0 -0
- package/cli/src/templates/extras/queue/bullmq/src/routes/queue.ts +0 -0
- package/cli/src/templates/extras/queue/inngest/src/inngest/client.ts +0 -0
- package/cli/src/templates/extras/queue/inngest/src/inngest/functions/email.ts +0 -0
- package/cli/src/templates/extras/queue/inngest/src/routes/inngest.ts +0 -0
- package/cli/src/templates/extras/realtime/socketio/src/socket/handlers.ts +0 -0
- package/cli/src/templates/extras/realtime/socketio/src/socket/index.ts +0 -0
- package/cli/src/templates/extras/realtime/sse/src/routes/sse.ts +0 -0
- package/cli/src/templates/extras/testing/vitest/src/__tests__/example.test.ts +0 -0
- package/cli/src/templates/extras/testing/vitest/src/__tests__/setup.ts +0 -0
- package/cli/src/templates/extras/testing/vitest/vitest.config.ts +0 -0
- package/cli/src/templates/extras/validation/yup/src/middleware/index.ts +1 -0
- package/cli/src/templates/extras/validation/yup/src/middleware/validate.ts +83 -0
- package/cli/src/templates/extras/validation/yup/src/routes/users.ts +132 -0
- package/cli/src/templates/extras/validation/zod/src/middleware/index.ts +1 -0
- package/cli/src/templates/extras/validation/zod/src/middleware/validate.ts +80 -0
- package/cli/src/templates/extras/validation/zod/src/routes/users.ts +128 -0
- package/cli/src/types/index.ts +126 -0
- package/cli/src/utils/add-package-dependency.ts +56 -0
- package/cli/src/utils/dependency-version-map.ts +85 -0
- package/cli/src/utils/logger.ts +19 -0
- package/cli/src/utils/parse-name-and-path.ts +55 -0
- package/cli/src/utils/render-title.ts +11 -0
- package/cli/tsconfig.json +35 -0
- package/package.json +20 -0
- package/prettier.config.mjs +0 -0
- package/test-cli.sh +56 -0
- package/tsconfig.json +15 -0
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# Project Conventions & Guidelines
|
|
2
|
+
|
|
3
|
+
This document outlines the coding conventions and guidelines for the `create-backend-app` project.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📁 File & Folder Naming Conventions
|
|
8
|
+
|
|
9
|
+
### ✅ Use `kebab-case` for ALL files and folders
|
|
10
|
+
|
|
11
|
+
**Files:**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
✅ create-project.ts
|
|
15
|
+
✅ install-dependencies.ts
|
|
16
|
+
✅ generate-docker-compose.ts
|
|
17
|
+
✅ scaffold-project.ts
|
|
18
|
+
|
|
19
|
+
❌ createProject.ts
|
|
20
|
+
❌ installDependencies.ts
|
|
21
|
+
❌ generate_docker_compose.ts
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Folders:**
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
✅ src/helpers/
|
|
28
|
+
✅ src/templates/extras/
|
|
29
|
+
✅ src/utils/dependency-versions/
|
|
30
|
+
✅ templates/extras/ai/vercel-ai/
|
|
31
|
+
|
|
32
|
+
❌ src/Helpers/
|
|
33
|
+
❌ src/templates_extras/
|
|
34
|
+
❌ src/utils/dependencyVersions/
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Why kebab-case?**
|
|
38
|
+
|
|
39
|
+
- URL-friendly
|
|
40
|
+
- Case-insensitive filesystem compatible
|
|
41
|
+
- Easy to read
|
|
42
|
+
- Industry standard for file systems
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 🔧 Function Naming Conventions
|
|
47
|
+
|
|
48
|
+
### ✅ Use `snake_case` for ALL function definitions
|
|
49
|
+
|
|
50
|
+
**Functions:**
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
✅ export async function create_project(options: CliResults) { }
|
|
54
|
+
✅ export function install_dependencies(projectDir: string) { }
|
|
55
|
+
✅ export function generate_dockerfile(options: ProjectOptions) { }
|
|
56
|
+
✅ function add_package_dependency(pkg: string) { }
|
|
57
|
+
|
|
58
|
+
❌ export async function createProject(options: CliResults) { }
|
|
59
|
+
❌ export function installDependencies(projectDir: string) { }
|
|
60
|
+
❌ export function generateDockerfile(options: ProjectOptions) { }
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Why snake_case?**
|
|
64
|
+
|
|
65
|
+
- Consistent with Python/Rust conventions
|
|
66
|
+
- Clear word separation
|
|
67
|
+
- Easy to read in longer function names
|
|
68
|
+
- Reduces cognitive load when switching between languages
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 📝 Variable Naming Conventions
|
|
73
|
+
|
|
74
|
+
### Use `camelCase` for variables and parameters
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
✅ const projectDir = "/path/to/project";
|
|
78
|
+
✅ const selectedPackages = ["postgres", "redis"];
|
|
79
|
+
✅ let isInstalling = false;
|
|
80
|
+
|
|
81
|
+
❌ const project_dir = "/path/to/project";
|
|
82
|
+
❌ const selected_packages = ["postgres", "redis"];
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Why camelCase for variables?**
|
|
86
|
+
|
|
87
|
+
- TypeScript/JavaScript standard
|
|
88
|
+
- Matches ecosystem conventions
|
|
89
|
+
- Better IDE support
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 🎯 Constants
|
|
94
|
+
|
|
95
|
+
### Use `SCREAMING_SNAKE_CASE` for constants
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
✅ const DEFAULT_PORT = 3000;
|
|
99
|
+
✅ const MAX_RETRIES = 3;
|
|
100
|
+
✅ const DATABASE_URL = process.env.DATABASE_URL;
|
|
101
|
+
|
|
102
|
+
❌ const defaultPort = 3000;
|
|
103
|
+
❌ const maxRetries = 3;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 📦 Type & Interface Naming
|
|
109
|
+
|
|
110
|
+
### Use `PascalCase` for types, interfaces, enums, and classes
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
✅ interface CliResults { }
|
|
114
|
+
✅ type InstallerOptions = { }
|
|
115
|
+
✅ enum AvailablePackages { }
|
|
116
|
+
✅ class ProjectScaffold { }
|
|
117
|
+
|
|
118
|
+
❌ interface cli_results { }
|
|
119
|
+
❌ type installer_options = { }
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 🗂️ Import/Export Conventions
|
|
125
|
+
|
|
126
|
+
### Named exports preferred over default exports
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
✅ export function create_project() { }
|
|
130
|
+
✅ export const install_dependencies = () => { }
|
|
131
|
+
|
|
132
|
+
❌ export default function createProject() { }
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Import organization
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
// 1. External dependencies
|
|
139
|
+
import chalk from "chalk";
|
|
140
|
+
import * as p from "@clack/prompts";
|
|
141
|
+
|
|
142
|
+
// 2. Internal absolute imports
|
|
143
|
+
import { logger } from "../utils/logger.js";
|
|
144
|
+
import { type CliResults } from "../types/index.js";
|
|
145
|
+
|
|
146
|
+
// 3. Relative imports
|
|
147
|
+
import { create_project } from "./create-project.js";
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 📋 Complete Example
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
// src/helpers/scaffold-project.ts
|
|
156
|
+
|
|
157
|
+
import path from "path";
|
|
158
|
+
import fs from "fs-extra";
|
|
159
|
+
import { type CliResults, type InstallerOptions } from "../types/index.js";
|
|
160
|
+
import { logger } from "../utils/logger.js";
|
|
161
|
+
import { install_dependencies } from "./install-dependencies.js";
|
|
162
|
+
|
|
163
|
+
const DEFAULT_PROJECT_DIR = process.cwd();
|
|
164
|
+
const TEMPLATE_BASE_PATH = "../templates/base";
|
|
165
|
+
|
|
166
|
+
interface ScaffoldOptions {
|
|
167
|
+
projectDir: string;
|
|
168
|
+
appName: string;
|
|
169
|
+
packages: string[];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export async function scaffold_project(options: CliResults): Promise<void> {
|
|
173
|
+
const projectDir = path.resolve(DEFAULT_PROJECT_DIR, options.appName);
|
|
174
|
+
|
|
175
|
+
logger.info(`Creating project at: ${projectDir}`);
|
|
176
|
+
|
|
177
|
+
await create_base_structure(projectDir);
|
|
178
|
+
await copy_template_files(projectDir, options.packages);
|
|
179
|
+
|
|
180
|
+
if (!options.flags.noInstall) {
|
|
181
|
+
await install_dependencies(projectDir);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
logger.success("✅ Project scaffolded successfully!");
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
async function create_base_structure(projectDir: string): Promise<void> {
|
|
188
|
+
await fs.ensureDir(projectDir);
|
|
189
|
+
await fs.ensureDir(path.join(projectDir, "src"));
|
|
190
|
+
await fs.ensureDir(path.join(projectDir, "src", "routes"));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
async function copy_template_files(
|
|
194
|
+
projectDir: string,
|
|
195
|
+
packages: string[]
|
|
196
|
+
): Promise<void> {
|
|
197
|
+
const templatePath = path.resolve(__dirname, TEMPLATE_BASE_PATH);
|
|
198
|
+
await fs.copy(templatePath, projectDir);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function get_package_installer(packageName: string) {
|
|
202
|
+
// Implementation
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 🎨 Template File Naming
|
|
209
|
+
|
|
210
|
+
### Template files should also use kebab-case
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
✅ templates/base/src/index.ts
|
|
214
|
+
✅ templates/extras/database/postgres/src/db/index.ts
|
|
215
|
+
✅ templates/extras/ai/vercel-ai/src/services/ai/index.ts
|
|
216
|
+
✅ templates/extras/queue/bullmq/src/queue/email-job.ts
|
|
217
|
+
|
|
218
|
+
❌ templates/base/src/Index.ts
|
|
219
|
+
❌ templates/extras/database/postgres/src/db/dbIndex.ts
|
|
220
|
+
❌ templates/extras/ai/vercel-ai/src/services/ai/aiService.ts
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 🔍 Linting Rules
|
|
226
|
+
|
|
227
|
+
To enforce these conventions, configure ESLint:
|
|
228
|
+
|
|
229
|
+
```json
|
|
230
|
+
{
|
|
231
|
+
"rules": {
|
|
232
|
+
"camelcase": ["error", {
|
|
233
|
+
"properties": "never",
|
|
234
|
+
"allow": ["^[a-z]+(_[a-z]+)*$"]
|
|
235
|
+
}],
|
|
236
|
+
"@typescript-eslint/naming-convention": [
|
|
237
|
+
"error",
|
|
238
|
+
{
|
|
239
|
+
"selector": "function",
|
|
240
|
+
"format": ["snake_case"]
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"selector": "variable",
|
|
244
|
+
"format": ["camelCase", "UPPER_CASE"]
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"selector": "typeLike",
|
|
248
|
+
"format": ["PascalCase"]
|
|
249
|
+
}
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 🚫 Common Mistakes to Avoid
|
|
258
|
+
|
|
259
|
+
### ❌ Don't mix conventions
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
❌ function createProject() { } // camelCase function
|
|
263
|
+
❌ const project_dir = ""; // snake_case variable
|
|
264
|
+
❌ src/CreateProject.ts // PascalCase file
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### ✅ Do stick to the rules
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
✅ function create_project() { } // snake_case function
|
|
271
|
+
✅ const projectDir = ""; // camelCase variable
|
|
272
|
+
✅ src/create-project.ts // kebab-case file
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 📚 Summary Table
|
|
278
|
+
|
|
279
|
+
| Element | Convention | Example |
|
|
280
|
+
|---------|-----------|---------|
|
|
281
|
+
| **Files** | `kebab-case` | `create-project.ts` |
|
|
282
|
+
| **Folders** | `kebab-case` | `src/helpers/` |
|
|
283
|
+
| **Functions** | `snake_case` | `function create_project()` |
|
|
284
|
+
| **Variables** | `camelCase` | `const projectDir` |
|
|
285
|
+
| **Constants** | `SCREAMING_SNAKE_CASE` | `const MAX_RETRIES` |
|
|
286
|
+
| **Types/Interfaces** | `PascalCase` | `interface CliResults` |
|
|
287
|
+
| **Enums** | `PascalCase` | `enum AvailablePackages` |
|
|
288
|
+
| **Classes** | `PascalCase` | `class ProjectScaffold` |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 🤝 Contributing
|
|
293
|
+
|
|
294
|
+
When contributing to this project, please:
|
|
295
|
+
|
|
296
|
+
1. ✅ Follow ALL conventions outlined in this document
|
|
297
|
+
2. ✅ Run linting before committing: `bun run lint`
|
|
298
|
+
3. ✅ Format code: `bun run format`
|
|
299
|
+
4. ✅ Use descriptive commit messages
|
|
300
|
+
5. ✅ Add JSDoc comments for exported functions
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 💡 Rationale
|
|
305
|
+
|
|
306
|
+
These conventions are chosen to:
|
|
307
|
+
|
|
308
|
+
- **Maintain consistency** across the codebase
|
|
309
|
+
- **Improve readability** for all contributors
|
|
310
|
+
- **Reduce cognitive load** when working with multiple languages
|
|
311
|
+
- **Follow industry standards** where applicable
|
|
312
|
+
- **Enable better tooling support**
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 📖 References
|
|
317
|
+
|
|
318
|
+
- [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)
|
|
319
|
+
- [TypeScript Style Guide](https://google.github.io/styleguide/tsguide.html)
|
|
320
|
+
- [File Naming Conventions](https://github.com/kettanaito/naming-cheatsheet)
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
**Last Updated:** January 2026
|
|
325
|
+
**Maintainer:** @yourname
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
*Questions or suggestions? Open an issue or PR!*
|
package/README.md
ADDED
|
File without changes
|
package/cli/README.md
ADDED
|
File without changes
|
package/cli/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "deploy-bbc",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "CLI to bootstrap production-ready backends with Bun (Best Backend Code)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"deploy-bbc": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"templates"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"dev": "bun --watch src/index.ts",
|
|
15
|
+
"build": "bun build src/index.ts --outdir dist --target node",
|
|
16
|
+
"start": "node dist/index.js",
|
|
17
|
+
"type-check": "tsc --noEmit"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"backend",
|
|
21
|
+
"bun",
|
|
22
|
+
"typescript",
|
|
23
|
+
"cli",
|
|
24
|
+
"boilerplate",
|
|
25
|
+
"api"
|
|
26
|
+
],
|
|
27
|
+
"author": "Your Name",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@clack/prompts": "^0.7.0",
|
|
31
|
+
"chalk": "^5.3.0",
|
|
32
|
+
"commander": "^11.1.0",
|
|
33
|
+
"execa": "^8.0.1",
|
|
34
|
+
"fs-extra": "^11.2.0",
|
|
35
|
+
"ora": "^7.0.1"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/bun": "latest",
|
|
39
|
+
"@types/fs-extra": "^11.0.4",
|
|
40
|
+
"@types/node": "^20.10.6",
|
|
41
|
+
"typescript": "^5.3.3"
|
|
42
|
+
}
|
|
43
|
+
}
|