express-project-builder 1.0.34 → 1.0.36
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/bin/index.js +4 -2
- package/dist/bin/index.js.map +1 -1
- package/dist/lib/config/createEnvExample.js +1 -1
- package/dist/lib/config/createEnvExample.js.map +1 -1
- package/dist/lib/config/createGitignore.d.ts.map +1 -1
- package/dist/lib/config/createGitignore.js +3 -1
- package/dist/lib/config/createGitignore.js.map +1 -1
- package/dist/lib/config/createPackageJson.d.ts.map +1 -1
- package/dist/lib/config/createPackageJson.js +6 -6
- package/dist/lib/config/createPackageJson.js.map +1 -1
- package/dist/lib/prisma/create_Schema.Prisma.d.ts.map +1 -1
- package/dist/lib/prisma/create_Schema.Prisma.js +7 -3
- package/dist/lib/prisma/create_Schema.Prisma.js.map +1 -1
- package/dist/lib/prisma/create_prisma_config.d.ts +3 -0
- package/dist/lib/prisma/create_prisma_config.d.ts.map +1 -0
- package/dist/lib/prisma/create_prisma_config.js +32 -0
- package/dist/lib/prisma/create_prisma_config.js.map +1 -0
- package/dist/lib/src/config/create_Config_Index.js +1 -1
- package/dist/lib/src/createServerFile.d.ts.map +1 -1
- package/dist/lib/src/createServerFile.js +185 -19
- package/dist/lib/src/createServerFile.js.map +1 -1
- package/dist/lib/src/middlewares/create_ValidateRequest_Guard.d.ts.map +1 -1
- package/dist/lib/src/middlewares/create_ValidateRequest_Guard.js +2 -33
- package/dist/lib/src/middlewares/create_ValidateRequest_Guard.js.map +1 -1
- package/dist/lib/src/shared/create_Prisma_Shated.d.ts.map +1 -1
- package/dist/lib/src/shared/create_Prisma_Shated.js +11 -5
- package/dist/lib/src/shared/create_Prisma_Shated.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/index.js
CHANGED
|
@@ -52,6 +52,7 @@ import { create_JWT_Token_type } from "../lib/src/interfaces/create_JWT_Token_ty
|
|
|
52
52
|
import { create_prisma_shared_file } from "../lib/src/shared/create_Prisma_Shated.js";
|
|
53
53
|
import { createSchemaPrisma } from "../lib/prisma/create_Schema.Prisma.js";
|
|
54
54
|
import { create_IndexD_type } from "../lib/src/interfaces/create_Index_d_type.js";
|
|
55
|
+
import { create_Prisma_Config_file } from "../lib/prisma/create_prisma_config.js";
|
|
55
56
|
program
|
|
56
57
|
.version("1.0.0")
|
|
57
58
|
.description("A professional Express.js project generator CLI that scaffolds a production-ready backend in seconds. Supports MongoDB with Mongoose, PostgreSQL with Prisma, or no database, with optional authentication. Includes modular folder structure, built-in error handling (validation, cast, duplicate, Zod), middleware (auth guard, rate limiting, file upload, caching), and utility functions. Just provide your database URL and start building APIs instantly. Powered by the express-project-builder npm package, developed by Mozzammel Ridoy.")
|
|
@@ -93,6 +94,7 @@ program
|
|
|
93
94
|
await createTsConfig(projectPath);
|
|
94
95
|
// Create prisma schema if PostgreSQL with Prisma is selected
|
|
95
96
|
await createSchemaPrisma(projectPath, answers);
|
|
97
|
+
await create_Prisma_Config_file(projectPath, answers);
|
|
96
98
|
// Create src directory and initial files
|
|
97
99
|
await createSrcStructure(projectPath);
|
|
98
100
|
await createAppFile(projectPath);
|
|
@@ -147,8 +149,8 @@ program
|
|
|
147
149
|
if (answers.database === "PostgreSQL with Prisma") {
|
|
148
150
|
console.log(chalk.yellow(" \n🚀 Prisma Setup Guide"));
|
|
149
151
|
console.log(chalk.cyan(" npm install prisma --save-dev"));
|
|
150
|
-
console.log(chalk.cyan(" npm install @prisma/client"));
|
|
151
|
-
console.log(chalk.cyan(" # Edit .env with your database (
|
|
152
|
+
console.log(chalk.cyan(" npm install @prisma/client @prisma/adapter-pg pg"));
|
|
153
|
+
console.log(chalk.cyan(" # Edit .env with your database (POSTGRESQL_DATABASE_URL) credentials"));
|
|
152
154
|
console.log(chalk.cyan(" npx prisma generate"));
|
|
153
155
|
console.log(chalk.cyan(" npx prisma studio"));
|
|
154
156
|
}
|
package/dist/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ ${answers.database === "MongoDB with Mongoose"
|
|
|
11
11
|
? "MONGO_DATABASE_URL=mongodb://localhost:27017/myapp"
|
|
12
12
|
: ""}
|
|
13
13
|
${answers.database === "PostgreSQL with Prisma"
|
|
14
|
-
? '
|
|
14
|
+
? 'POSTGRESQL_DATABASE_URL="postgresql://username:password@localhost:5432/myapp"'
|
|
15
15
|
: ""}
|
|
16
16
|
${answers.includeAuth
|
|
17
17
|
? `JWT_ACCESS_TOKEN_SECRET=40051dc52aa534598646248e692db2d70224cf751507a782daee7742f45e92486ca3de2ce447ff10a2ca76032f07bd57624e7f12e38c1d6966438944f04fc4352
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEnvExample.js","sourceRoot":"","sources":["../../../src/lib/config/createEnvExample.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG;;;;EAKrB,OAAO,CAAC,QAAQ,KAAK,uBAAuB;YAC1C,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,EACN;EAEE,OAAO,CAAC,QAAQ,KAAK,wBAAwB;YAC3C,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"createEnvExample.js","sourceRoot":"","sources":["../../../src/lib/config/createEnvExample.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG;;;;EAKrB,OAAO,CAAC,QAAQ,KAAK,uBAAuB;YAC1C,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,EACN;EAEE,OAAO,CAAC,QAAQ,KAAK,wBAAwB;YAC3C,CAAC,CAAC,+EAA+E;YACjF,CAAC,CAAC,EACN;EAEE,OAAO,CAAC,WAAW;YACjB,CAAC,CAAC;;;;;CAKL;YACG,CAAC,CAAC,EACN;;;;;;;;;;;;;;CAcC,CAAC;QAEE,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QAErE,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CACjE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGitignore.d.ts","sourceRoot":"","sources":["../../../src/lib/config/createGitignore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"createGitignore.d.ts","sourceRoot":"","sources":["../../../src/lib/config/createGitignore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,CAmDd,CAAC"}
|
|
@@ -36,7 +36,9 @@ coverage/
|
|
|
36
36
|
*~
|
|
37
37
|
${answers.database === "PostgreSQL with Prisma"
|
|
38
38
|
? `# Prisma
|
|
39
|
-
prisma/migrations
|
|
39
|
+
prisma/migrations
|
|
40
|
+
src/generated
|
|
41
|
+
`
|
|
40
42
|
: ""}`;
|
|
41
43
|
await createFile(path.join(projectPath, ".gitignore"), gitignore);
|
|
42
44
|
// Success message with green checkmark and text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGitignore.js","sourceRoot":"","sources":["../../../src/lib/config/createGitignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCpB,OAAO,CAAC,QAAQ,KAAK,wBAAwB;YAC3C,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"createGitignore.js","sourceRoot":"","sources":["../../../src/lib/config/createGitignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCpB,OAAO,CAAC,QAAQ,KAAK,wBAAwB;YAC3C,CAAC,CAAC;;;CAGL;YACG,CAAC,CAAC,EACN,EAAE,CAAC;QAEC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;QAElE,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPackageJson.d.ts","sourceRoot":"","sources":["../../../src/lib/config/createPackageJson.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"createPackageJson.d.ts","sourceRoot":"","sources":["../../../src/lib/config/createPackageJson.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,CAwEd,CAAC"}
|
|
@@ -8,7 +8,7 @@ export const createPackageJson = async (projectPath, projectName, answers) => {
|
|
|
8
8
|
name: projectName,
|
|
9
9
|
version: "1.0.0",
|
|
10
10
|
description: "",
|
|
11
|
-
main: "dist/
|
|
11
|
+
main: "dist/server.js",
|
|
12
12
|
scripts: {
|
|
13
13
|
test: 'echo "Error: no test specified" && exit 1',
|
|
14
14
|
start: "node dist/server.js",
|
|
@@ -50,12 +50,12 @@ export const createPackageJson = async (projectPath, projectName, answers) => {
|
|
|
50
50
|
};
|
|
51
51
|
// Add dependencies based on user choices
|
|
52
52
|
if (answers.database === "MongoDB with Mongoose") {
|
|
53
|
-
packageJson.dependencies.mongoose = "^
|
|
54
|
-
}
|
|
55
|
-
else if (answers.database === "PostgreSQL with Prisma") {
|
|
56
|
-
packageJson.dependencies["@prisma/client"] = "^6.16.1"; // Updated to latest
|
|
57
|
-
packageJson.devDependencies.prisma = "^6.16.1"; // Updated to latest
|
|
53
|
+
packageJson.dependencies.mongoose = "^9.1.5"; // Updated to latest
|
|
58
54
|
}
|
|
55
|
+
// else if (answers.database === "PostgreSQL with Prisma") {
|
|
56
|
+
// packageJson.dependencies["@prisma/client"] = "^6.16.1"; // Updated to latest
|
|
57
|
+
// packageJson.devDependencies.prisma = "^6.16.1"; // Updated to latest
|
|
58
|
+
// }
|
|
59
59
|
if (answers.includeAuth) {
|
|
60
60
|
packageJson.dependencies.jsonwebtoken = "^9.0.2";
|
|
61
61
|
packageJson.devDependencies["@types/jsonwebtoken"] = "^9.0.10";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPackageJson.js","sourceRoot":"","sources":["../../../src/lib/config/createPackageJson.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,WAAmB,EACnB,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,WAAW,GAAQ;YACvB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"createPackageJson.js","sourceRoot":"","sources":["../../../src/lib/config/createPackageJson.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,WAAmB,EACnB,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,WAAW,GAAQ;YACvB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE;gBACP,IAAI,EAAE,2CAA2C;gBACjD,KAAK,EAAE,qBAAqB;gBAC5B,GAAG,EAAE,sDAAsD;gBAC3D,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,oBAAoB;gBAChC,QAAQ,EACN,sEAAsE;aACzE;YACD,OAAO,EAAE,KAAK;YACd,YAAY,EAAE;gBACZ,eAAe,EAAE,QAAQ;gBACzB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,SAAS;gBACjB,wBAAwB,EAAE,QAAQ;gBAClC,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,cAAc;gBACtB,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,QAAQ;gBACpB,GAAG,EAAE,SAAS;aACf;YACD,eAAe,EAAE;gBACf,sBAAsB,EAAE,QAAQ;gBAChC,aAAa,EAAE,SAAS;gBACxB,YAAY,EAAE,SAAS;gBACvB,gBAAgB,EAAE,QAAQ,EAAE,8BAA8B;gBAC1D,mBAAmB,EAAE,QAAQ;gBAC7B,eAAe,EAAE,QAAQ,EAAE,wBAAwB;gBACnD,kCAAkC,EAAE,SAAS;gBAC7C,2BAA2B,EAAE,SAAS;gBACtC,MAAM,EAAE,SAAS;gBACjB,wBAAwB,EAAE,SAAS;gBACnC,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,QAAQ;gBACvB,UAAU,EAAE,QAAQ;gBACpB,mBAAmB,EAAE,SAAS;aAC/B;SACF,CAAC;QAEF,yCAAyC;QACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,uBAAuB,EAAE,CAAC;YACjD,WAAW,CAAC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,oBAAoB;QACpE,CAAC;QACD,4DAA4D;QAC5D,iFAAiF;QACjF,yEAAyE;QACzE,IAAI;QAEJ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,WAAW,CAAC,YAAY,CAAC,YAAY,GAAG,QAAQ,CAAC;YACjD,WAAW,CAAC,eAAe,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC;YAC/D,WAAW,CAAC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/C,CAAC;QAED,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;QAE1E,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_Schema.Prisma.d.ts","sourceRoot":"","sources":["../../../src/lib/prisma/create_Schema.Prisma.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"create_Schema.Prisma.d.ts","sourceRoot":"","sources":["../../../src/lib/prisma/create_Schema.Prisma.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,CAoCd,CAAC"}
|
|
@@ -9,16 +9,20 @@ export const createSchemaPrisma = async (projectPath, answers) => {
|
|
|
9
9
|
await createDirectory(prismaPath);
|
|
10
10
|
const schemaPrisma = `// This is your Prisma schema file,
|
|
11
11
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
12
|
+
|
|
12
13
|
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
|
13
14
|
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
|
15
|
+
|
|
14
16
|
generator client {
|
|
15
|
-
provider = "prisma-client
|
|
16
|
-
output = "../generated/prisma"
|
|
17
|
+
provider = "prisma-client"
|
|
18
|
+
output = "../src/generated/prisma"
|
|
17
19
|
}
|
|
20
|
+
|
|
18
21
|
datasource db {
|
|
19
22
|
provider = "postgresql"
|
|
20
|
-
url = env("DATABASE_URL")
|
|
21
23
|
}
|
|
24
|
+
|
|
25
|
+
// Define your data models here
|
|
22
26
|
model User {
|
|
23
27
|
id String @id @default(uuid())
|
|
24
28
|
}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_Schema.Prisma.js","sourceRoot":"","sources":["../../../src/lib/prisma/create_Schema.Prisma.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"create_Schema.Prisma.js","sourceRoot":"","sources":["../../../src/lib/prisma/create_Schema.Prisma.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;EAkBzB,CAAC;YAEG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;YAEvE,gDAAgD;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_prisma_config.d.ts","sourceRoot":"","sources":["../../../src/lib/prisma/create_prisma_config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,eAAO,MAAM,yBAAyB,GACpC,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,CA+Bd,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { createFile } from "../utils/helpers.js";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
export const create_Prisma_Config_file = async (projectPath, answers) => {
|
|
5
|
+
try {
|
|
6
|
+
if (answers.database === "PostgreSQL with Prisma") {
|
|
7
|
+
const prismaConfigTemplate = `// This file was generated by Prisma, and assumes you have installed the following:
|
|
8
|
+
import { defineConfig } from 'prisma/config'
|
|
9
|
+
import config from './src/app/config/index'
|
|
10
|
+
|
|
11
|
+
export default defineConfig({
|
|
12
|
+
schema: 'prisma/schema.prisma',
|
|
13
|
+
migrations: {
|
|
14
|
+
path: 'prisma/migrations'
|
|
15
|
+
},
|
|
16
|
+
datasource: {
|
|
17
|
+
url: config.postgresql_database_url
|
|
18
|
+
}
|
|
19
|
+
})
|
|
20
|
+
`;
|
|
21
|
+
await createFile(path.join(projectPath, "prisma.config.ts"), prismaConfigTemplate);
|
|
22
|
+
// Success message with green checkmark and text
|
|
23
|
+
console.log(chalk.green("✅ Prisma config file created successfully."));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
// Error message with red cross and text
|
|
28
|
+
console.error(chalk.red("❌ Error creating Prisma config file:"), err);
|
|
29
|
+
throw err;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=create_prisma_config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_prisma_config.js","sourceRoot":"","sources":["../../../src/lib/prisma/create_prisma_config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAClD,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;CAalC,CAAC;YAEI,MAAM,UAAU,CACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAC1C,oBAAoB,CACrB,CAAC;YAEF,gDAAgD;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -50,7 +50,7 @@ const config = {
|
|
|
50
50
|
else if (answers.database === "PostgreSQL with Prisma") {
|
|
51
51
|
configContent += `
|
|
52
52
|
// PostgreSQL configuration
|
|
53
|
-
|
|
53
|
+
postgresql_database_url: ensureEnv('POSTGRESQL_DATABASE_URL'),
|
|
54
54
|
`;
|
|
55
55
|
}
|
|
56
56
|
// Add authentication configuration if selected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServerFile.d.ts","sourceRoot":"","sources":["../../../src/lib/src/createServerFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EACnB,SAAS,QAAQ,
|
|
1
|
+
{"version":3,"file":"createServerFile.d.ts","sourceRoot":"","sources":["../../../src/lib/src/createServerFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EACnB,SAAS,QAAQ,kBAgPlB,CAAC"}
|
|
@@ -3,32 +3,185 @@ import path from "path";
|
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
export const createServerFile = async (projectPath, answers) => {
|
|
5
5
|
try {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
// --- Production-Grade Server Templates ---
|
|
7
|
+
const prismaServerTemplate = `/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
|
+
import { Server } from 'http'
|
|
9
|
+
import app from './app'
|
|
10
|
+
import config from './app/config'
|
|
11
|
+
import { prisma } from './app/shared/prisma'
|
|
12
|
+
|
|
13
|
+
let server: Server
|
|
14
|
+
let isShuttingDown = false
|
|
15
|
+
|
|
16
|
+
// Track open sockets
|
|
17
|
+
const connections = new Set<any>()
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Graceful shutdown
|
|
21
|
+
*/
|
|
22
|
+
const shutdown = async (signal: string) => {
|
|
23
|
+
if (isShuttingDown) return
|
|
24
|
+
isShuttingDown = true
|
|
25
|
+
|
|
26
|
+
console.log(\`\\n🔴 \${signal} received. Starting graceful shutdown...\`)
|
|
27
|
+
|
|
28
|
+
// Stop new requests
|
|
29
|
+
server.close(() => {
|
|
30
|
+
console.log('✅ HTTP server stopped accepting new connections.')
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
// Kill hanging keep-alive connections
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
console.log('⚠️ Force closing remaining connections...')
|
|
36
|
+
connections.forEach(socket => socket.destroy())
|
|
37
|
+
}, 10000)
|
|
38
|
+
|
|
39
|
+
// Disconnect DB
|
|
40
|
+
try {
|
|
41
|
+
await prisma.$disconnect()
|
|
42
|
+
console.log('✅ Prisma disconnected.')
|
|
43
|
+
process.exit(0)
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error('❌ Prisma disconnect error:', error)
|
|
46
|
+
process.exit(1)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Start server
|
|
52
|
+
*/
|
|
53
|
+
async function main() {
|
|
54
|
+
try {
|
|
18
55
|
await prisma.$connect()
|
|
19
|
-
console.log('
|
|
20
|
-
|
|
21
|
-
|
|
56
|
+
console.log('✅ PostgreSQL connected via Prisma')
|
|
57
|
+
|
|
58
|
+
server = app.listen(config.port, () => {
|
|
59
|
+
console.log(\`🚀 Server running on port \${config.port}\`)
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
// Track sockets
|
|
63
|
+
server.on('connection', socket => {
|
|
64
|
+
connections.add(socket)
|
|
65
|
+
socket.on('close', () => connections.delete(socket))
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
process.on('SIGINT', shutdown)
|
|
69
|
+
process.on('SIGTERM', shutdown)
|
|
70
|
+
} catch (err) {
|
|
71
|
+
console.error('❌ Startup failed:', err)
|
|
72
|
+
process.exit(1)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
main()
|
|
77
|
+
|
|
78
|
+
/** Non-fatal */
|
|
79
|
+
process.on('unhandledRejection', reason => {
|
|
80
|
+
console.error('😡 Unhandled Rejection:', reason)
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
/** Fatal */
|
|
84
|
+
process.on('uncaughtException', err => {
|
|
85
|
+
console.error('💥 Uncaught Exception:', err)
|
|
86
|
+
shutdown('uncaughtException')
|
|
87
|
+
})
|
|
88
|
+
`;
|
|
89
|
+
const mongooseServerTemplate = `/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
90
|
+
import mongoose from 'mongoose'
|
|
91
|
+
import { Server } from 'http'
|
|
22
92
|
import app from './app'
|
|
23
93
|
import config from './app/config'
|
|
24
94
|
|
|
25
95
|
let server: Server
|
|
96
|
+
let isShuttingDown = false
|
|
97
|
+
|
|
98
|
+
// Track open sockets (prevents deploy hang)
|
|
99
|
+
const connections = new Set<any>()
|
|
26
100
|
|
|
27
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Graceful shutdown
|
|
103
|
+
*/
|
|
104
|
+
const shutdown = async (signal: string) => {
|
|
105
|
+
if (isShuttingDown) return
|
|
106
|
+
isShuttingDown = true
|
|
107
|
+
|
|
108
|
+
console.log(\`\\n🔴 \${signal} received. Starting graceful shutdown...\`)
|
|
109
|
+
|
|
110
|
+
// Stop accepting new requests
|
|
111
|
+
server.close(() => {
|
|
112
|
+
console.log('✅ HTTP server stopped accepting new connections.')
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
// Kill hanging keep-alive connections after 10s
|
|
116
|
+
setTimeout(() => {
|
|
117
|
+
console.log('⚠️ Force closing remaining connections...')
|
|
118
|
+
connections.forEach(socket => socket.destroy())
|
|
119
|
+
}, 10000)
|
|
120
|
+
|
|
121
|
+
// Close MongoDB
|
|
122
|
+
try {
|
|
123
|
+
await mongoose.connection.close(false)
|
|
124
|
+
console.log('✅ MongoDB disconnected.')
|
|
125
|
+
process.exit(0)
|
|
126
|
+
} catch (error) {
|
|
127
|
+
console.error('❌ MongoDB close error:', error)
|
|
128
|
+
process.exit(1)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Start app
|
|
134
|
+
*/
|
|
28
135
|
async function main() {
|
|
29
136
|
try {
|
|
30
|
-
|
|
137
|
+
await mongoose.connect(config.mongo_database_url as string, {
|
|
138
|
+
maxPoolSize: 10,
|
|
139
|
+
serverSelectionTimeoutMS: 5000
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
console.log('✅ MongoDB connected via Mongoose.')
|
|
143
|
+
|
|
144
|
+
server = app.listen(config.port, () => {
|
|
145
|
+
console.log(\`🚀 Server running on port \${config.port}\`)
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
// Track sockets
|
|
149
|
+
server.on('connection', socket => {
|
|
150
|
+
connections.add(socket)
|
|
151
|
+
socket.on('close', () => connections.delete(socket))
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
process.on('SIGINT', shutdown)
|
|
155
|
+
process.on('SIGTERM', shutdown)
|
|
156
|
+
} catch (err) {
|
|
157
|
+
console.error('❌ Startup failed:', err)
|
|
158
|
+
process.exit(1)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
main()
|
|
31
163
|
|
|
164
|
+
/** Non-fatal */
|
|
165
|
+
process.on('unhandledRejection', reason => {
|
|
166
|
+
console.error('😡 Unhandled Rejection:', reason)
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
/** Fatal */
|
|
170
|
+
process.on('uncaughtException', err => {
|
|
171
|
+
console.error('💥 Uncaught Exception:', err)
|
|
172
|
+
shutdown('uncaughtException')
|
|
173
|
+
})
|
|
174
|
+
`;
|
|
175
|
+
// 👇 NEW: Template for when no database is selected
|
|
176
|
+
const noDbServerTemplate = `import { Server } from 'http'
|
|
177
|
+
import app from './app'
|
|
178
|
+
import config from './app/config'
|
|
179
|
+
|
|
180
|
+
let server: Server
|
|
181
|
+
|
|
182
|
+
// Main function to initialize the app
|
|
183
|
+
async function main() {
|
|
184
|
+
try {
|
|
32
185
|
// starting the server
|
|
33
186
|
server = app.listen(config.port, () => {
|
|
34
187
|
console.log(\`🚀 Server running on port \${config.port}\`)
|
|
@@ -64,11 +217,24 @@ process.on('uncaughtException', () => {
|
|
|
64
217
|
process.exit(1)
|
|
65
218
|
})
|
|
66
219
|
`;
|
|
67
|
-
|
|
220
|
+
// --- Template Selection Logic ---
|
|
221
|
+
let finalTemplate;
|
|
222
|
+
if (answers.database === "PostgreSQL with Prisma") {
|
|
223
|
+
finalTemplate = prismaServerTemplate;
|
|
224
|
+
}
|
|
225
|
+
else if (answers.database === "MongoDB with Mongoose") {
|
|
226
|
+
finalTemplate = mongooseServerTemplate;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
// 👇 Use the new "No DB" template for all other cases
|
|
230
|
+
finalTemplate = noDbServerTemplate;
|
|
231
|
+
}
|
|
232
|
+
// Create the server file with the chosen template
|
|
233
|
+
await createFile(path.join(projectPath, "src", "server.ts"), finalTemplate);
|
|
68
234
|
console.log(chalk.green("✅ Server file created successfully"));
|
|
69
235
|
}
|
|
70
236
|
catch (err) {
|
|
71
|
-
console.error(chalk.red("❌ Error creating
|
|
237
|
+
console.error(chalk.red("❌ Error creating server file:"), err);
|
|
72
238
|
throw err;
|
|
73
239
|
}
|
|
74
240
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServerFile.js","sourceRoot":"","sources":["../../../src/lib/src/createServerFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAmB,EACnB,OAAiB,EACjB,EAAE;IACF,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"createServerFile.js","sourceRoot":"","sources":["../../../src/lib/src/createServerFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAmB,EACnB,OAAiB,EACjB,EAAE;IACF,IAAI,CAAC;QACH,4CAA4C;QAE5C,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFhC,CAAC;QAEE,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFlC,CAAC;QAEE,oDAAoD;QACpD,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9B,CAAC;QAEE,mCAAmC;QACnC,IAAI,aAAqB,CAAC;QAE1B,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAClD,aAAa,GAAG,oBAAoB,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,uBAAuB,EAAE,CAAC;YACxD,aAAa,GAAG,sBAAsB,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,aAAa,GAAG,kBAAkB,CAAC;QACrC,CAAC;QAED,kDAAkD;QAClD,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_ValidateRequest_Guard.d.ts","sourceRoot":"","sources":["../../../../src/lib/src/middlewares/create_ValidateRequest_Guard.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"create_ValidateRequest_Guard.d.ts","sourceRoot":"","sources":["../../../../src/lib/src/middlewares/create_ValidateRequest_Guard.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAwEd,CAAC"}
|
|
@@ -45,44 +45,13 @@ const validateRequest = (schema: AnyZodObject) => {
|
|
|
45
45
|
cookies: req.cookies,
|
|
46
46
|
params: req.params
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
// Validate the data against the schema
|
|
50
50
|
await schema.parseAsync(dataToValidate)
|
|
51
|
-
|
|
51
|
+
|
|
52
52
|
// If validation passes, proceed to the next middleware
|
|
53
53
|
next()
|
|
54
54
|
} catch (error) {
|
|
55
|
-
// Handle Zod validation errors
|
|
56
|
-
if (error instanceof ZodError) {
|
|
57
|
-
// Format the Zod error into a more readable format
|
|
58
|
-
const formattedErrors = error.errors.map((err: ZodIssue) => {
|
|
59
|
-
// Base error object
|
|
60
|
-
const errorObj: any = {
|
|
61
|
-
path: err.path.join('.'),
|
|
62
|
-
message: err.message,
|
|
63
|
-
code: err.code
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Add expected and received only if they exist
|
|
67
|
-
if ('expected' in err) {
|
|
68
|
-
errorObj.expected = (err as any).expected
|
|
69
|
-
}
|
|
70
|
-
if ('received' in err) {
|
|
71
|
-
errorObj.received = (err as any).received
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return errorObj
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
// Throw an AppError with the validation details
|
|
78
|
-
throw new AppError(
|
|
79
|
-
400,
|
|
80
|
-
'validation',
|
|
81
|
-
'Request validation failed',
|
|
82
|
-
JSON.stringify(formattedErrors)
|
|
83
|
-
)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
55
|
// For other types of errors, rethrow them
|
|
87
56
|
next(error)
|
|
88
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_ValidateRequest_Guard.js","sourceRoot":"","sources":["../../../../src/lib/src/middlewares/create_ValidateRequest_Guard.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,WAAmB,EACJ,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,iCAAiC,GAAG
|
|
1
|
+
{"version":3,"file":"create_ValidateRequest_Guard.js","sourceRoot":"","sources":["../../../../src/lib/src/middlewares/create_ValidateRequest_Guard.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,WAAmB,EACJ,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,iCAAiC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD7C,CAAC;QAEE,MAAM,UAAU,CACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,EACnE,iCAAiC,CAClC,CAAC;QAEF,gDAAgD;QAChD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CACvE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,EAC/D,GAAG,CACJ,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_Prisma_Shated.d.ts","sourceRoot":"","sources":["../../../../src/lib/src/shared/create_Prisma_Shated.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"create_Prisma_Shated.d.ts","sourceRoot":"","sources":["../../../../src/lib/src/shared/create_Prisma_Shated.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,aAAa,MAAM,EACnB,SAAS,QAAQ,KAChB,OAAO,CAAC,IAAI,CAiCd,CAAC"}
|
|
@@ -11,14 +11,20 @@ export const create_prisma_shared_file = async (projectPath, answers) => {
|
|
|
11
11
|
try {
|
|
12
12
|
// Check if PostgreSQL with Prisma is selected
|
|
13
13
|
if (answers.database === "PostgreSQL with Prisma") {
|
|
14
|
-
const prismaSharedTemplate = `
|
|
15
|
-
import
|
|
14
|
+
const prismaSharedTemplate = `import { PrismaPg } from '@prisma/adapter-pg'
|
|
15
|
+
import config from '../config'
|
|
16
|
+
import { PrismaClient } from '../../generated/prisma/client'
|
|
16
17
|
|
|
18
|
+
const connectionString = config.postgresql_database_url
|
|
19
|
+
|
|
20
|
+
const adapter = new PrismaPg({ connectionString })
|
|
17
21
|
const prisma = new PrismaClient({
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
adapter,
|
|
23
|
+
log: ['query', 'info', 'warn', 'error']
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
export { prisma }
|
|
20
27
|
|
|
21
|
-
export default prisma;
|
|
22
28
|
`;
|
|
23
29
|
await createFile(path.join(projectPath, "src/app/shared", "prisma.ts"), prismaSharedTemplate);
|
|
24
30
|
// Success message with green checkmark and text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_Prisma_Shated.js","sourceRoot":"","sources":["../../../../src/lib/src/shared/create_Prisma_Shated.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,8CAA8C;QAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAClD,MAAM,oBAAoB,GAAG
|
|
1
|
+
{"version":3,"file":"create_Prisma_Shated.js","sourceRoot":"","sources":["../../../../src/lib/src/shared/create_Prisma_Shated.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAmB,EACnB,OAAiB,EACF,EAAE;IACjB,IAAI,CAAC;QACH,8CAA8C;QAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAClD,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;CAclC,CAAC;YAEI,MAAM,UAAU,CACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,WAAW,CAAC,EACrD,oBAAoB,CACrB,CAAC;YAEF,gDAAgD;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "express-project-builder",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.36",
|
|
4
4
|
"description": "A powerful and professional Express.js project generator CLI that instantly scaffolds a production-ready backend with TypeScript, modular architecture, and built-in support for MongoDB (Mongoose) or PostgreSQL (Prisma). Includes authentication, error handling, rate limiting, file upload, caching, and utility functions—so you can focus on building features instead of boilerplate. Perfect for kickstarting your next Express.js API project with best practices and modern tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/bin/index.js",
|