create-express-kickstart 1.2.9 → 1.2.11

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/.env.example CHANGED
@@ -6,11 +6,4 @@ NODE_ENV=development
6
6
 
7
7
  # Rate Limiting
8
8
  RATE_LIMIT_WINDOW_MS=900000 # 15 minutes in milliseconds
9
- RATE_LIMIT_MAX=100 # Maximum requests per windowMs
10
-
11
- # Bcrypt Configuration
12
- BCRYPT_SALT=10
13
-
14
- # JWT Configuration
15
- JWT_SECRET=your_jwt_secret_key
16
- JWT_EXPIRES_IN=1d
9
+ RATE_LIMIT_MAX=100 # Maximum requests per windowMs
package/bin/cli.js CHANGED
@@ -258,11 +258,6 @@ export const verifyToken = (token) => {
258
258
  if (fs.existsSync(dbDir)) fs.rmSync(dbDir, { recursive: true, force: true });
259
259
  }
260
260
 
261
- if (!deps.dotenv) {
262
- serverJsCode = serverJsCode.replace(/import dotenv from "dotenv";\r?\n/, '');
263
- serverJsCode = serverJsCode.replace(/\/\/ Load environment variables[\s\S]*?\}\);\r?\n/, '');
264
- }
265
-
266
261
  fs.writeFileSync(serverJsPath, serverJsCode);
267
262
  }
268
263
 
@@ -276,7 +271,7 @@ export const verifyToken = (token) => {
276
271
  type: "module",
277
272
  scripts: {
278
273
  "start": "node src/server.js",
279
- "dev": "nodemon src/server.js"
274
+ "dev": deps.dotenv ? "nodemon -r dotenv/config src/server.js" : "nodemon src/server.js"
280
275
  },
281
276
  imports: {
282
277
  "#*": "./src/*"
@@ -296,21 +291,22 @@ export const verifyToken = (token) => {
296
291
 
297
292
  // Write package.json
298
293
  fs.writeFileSync(
299
- path.join(projectPath, 'package.json'),
294
+ path.join(projectPath, 'package.json'),
300
295
  JSON.stringify(packageJsonTemplate, null, 2)
301
296
  );
302
297
 
303
298
  // Install Dependencies
304
- const dependenciesToInstall = Object.keys(deps).filter(dep => deps[dep] && dep !== 'prettier');
299
+ const dependenciesToInstall = Object.keys(deps).filter(dep => deps[dep] && dep !== 'prettier' && dep !== 'dotenv');
305
300
  if (deps['pino-http']) {
306
301
  dependenciesToInstall.push('pino');
307
302
  }
308
303
  if (initAuth) {
309
304
  dependenciesToInstall.push('jsonwebtoken', 'bcryptjs'); // Add bcryptjs too since it's standard with JWT
310
305
  }
311
-
306
+
312
307
  const devDependenciesToInstall = ['nodemon'];
313
308
  if (deps.prettier) devDependenciesToInstall.push('prettier');
309
+ if (deps.dotenv) devDependenciesToInstall.push('dotenv');
314
310
  if (installPinoPretty) devDependenciesToInstall.push('pino-pretty');
315
311
  if (initTests) {
316
312
  devDependenciesToInstall.push('jest', 'supertest');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-express-kickstart",
3
- "version": "1.2.9",
3
+ "version": "1.2.11",
4
4
  "description": "Production-ready CLI starter for Express APIs",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {
package/src/app.js CHANGED
@@ -16,8 +16,8 @@ app.use(helmet());
16
16
 
17
17
  // Rate Limiting
18
18
  const limiter = rateLimit({
19
- windowMs: process.env.RATE_LIMIT_WINDOW_MS || 15 * 60 * 1000, // Default 15 minutes
20
- limit: process.env.RATE_LIMIT_MAX || 100, // Limit each IP to 100 requests per `window` (here, per 15 minutes)
19
+ windowMs: Number(process.env.RATE_LIMIT_WINDOW_MS) || 15 * 60 * 1000, // Default 15 minutes
20
+ limit: Number(process.env.RATE_LIMIT_MAX) || 100, // Limit each IP to 100 requests per `window` (here, per 15 minutes)
21
21
  standardHeaders: 'draft-7', // draft-6: `RateLimit-*` headers; draft-7: combined `RateLimit` header
22
22
  legacyHeaders: false, // Disable the `X-RateLimit-*` headers
23
23
  message: "Too many requests from this IP, please try again later"
@@ -51,9 +51,12 @@ app.use(pinoHttp({
51
51
  }));
52
52
 
53
53
  // CORS setup
54
+ if (!process.env.CORS_ORIGIN && process.env.NODE_ENV === "production") {
55
+ throw new Error("CORS_ORIGIN must be set");
56
+ }
54
57
  app.use(
55
58
  cors({
56
- origin: process.env.CORS_ORIGIN || "*", // Fallback to allowing everything
59
+ origin: process.env.CORS_ORIGIN || "*",
57
60
  credentials: true, // Allow cookies with requests
58
61
  })
59
62
  );
package/src/server.js CHANGED
@@ -1,11 +1,4 @@
1
- import dotenv from "dotenv";
2
1
  import { app } from "#app.js";
3
-
4
- // Load environment variables from .env file
5
- dotenv.config({
6
- path: './.env'
7
- });
8
-
9
2
  import connectDB from "#db/index.js";
10
3
 
11
4
  const PORT = process.env.PORT || 8000;