db-model-router 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/README.md +154 -203
- package/docker-compose.yml +13 -9
- package/docs/SKILL.md +196 -24
- package/docs/adapters/cockroachdb.md +1 -1
- package/docs/adapters/dynamodb.md +1 -1
- package/docs/adapters/mongodb.md +1 -1
- package/docs/adapters/mssql.md +1 -1
- package/docs/adapters/oracle.md +1 -1
- package/docs/adapters/postgres.md +1 -1
- package/docs/adapters/redis.md +1 -1
- package/docs/adapters/sqlite3.md +1 -1
- package/package.json +7 -12
- package/src/cli/commands/diff.js +114 -0
- package/src/cli/commands/doctor.js +181 -0
- package/src/cli/commands/generate-llm-docs.js +418 -0
- package/src/cli/commands/generate.js +240 -0
- package/src/cli/commands/init.js +153 -0
- package/src/cli/commands/inspect.js +205 -0
- package/src/cli/diff-engine.js +198 -0
- package/src/cli/flags.js +112 -0
- package/src/cli/generate-model.js +4 -4
- package/src/cli/generate-openapi.js +5 -1
- package/src/cli/generate-route.js +242 -7
- package/src/cli/init/dependencies.js +83 -0
- package/src/cli/init/generators.js +782 -0
- package/src/cli/init/prompt.js +159 -0
- package/src/cli/init.js +281 -0
- package/src/cli/main.js +95 -0
- package/src/commons/model.js +5 -6
- package/src/commons/route.js +24 -0
- package/src/schema/schema-parser.js +78 -0
- package/src/schema/schema-printer.js +81 -0
- package/src/schema/schema-to-meta.js +74 -0
- package/src/schema/schema-validator.js +253 -0
- package/src/serve.js +7 -10
- package/docs/README.md +0 -208
- package/src/cli/generate-app.js +0 -359
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Maps each supported database to its driver package(s).
|
|
5
|
+
*/
|
|
6
|
+
const DRIVER_MAP = {
|
|
7
|
+
mysql: ["mysql2"],
|
|
8
|
+
postgres: ["pg"],
|
|
9
|
+
sqlite3: ["better-sqlite3"],
|
|
10
|
+
mongodb: ["mongodb"],
|
|
11
|
+
mssql: ["mssql"],
|
|
12
|
+
cockroachdb: ["pg"],
|
|
13
|
+
oracle: ["oracledb"],
|
|
14
|
+
redis: ["ioredis"],
|
|
15
|
+
dynamodb: ["@aws-sdk/client-dynamodb", "@aws-sdk/lib-dynamodb"],
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Collect dependencies and devDependencies based on user answers.
|
|
20
|
+
* @param {import('./types').InitAnswers} answers
|
|
21
|
+
* @returns {{ dependencies: Record<string, string>, devDependencies: Record<string, string> }}
|
|
22
|
+
*/
|
|
23
|
+
function collectDependencies(answers) {
|
|
24
|
+
const dependencies = {};
|
|
25
|
+
const devDependencies = {};
|
|
26
|
+
|
|
27
|
+
// Always included
|
|
28
|
+
dependencies["db-model-router"] = "latest";
|
|
29
|
+
dependencies["dotenv"] = "latest";
|
|
30
|
+
dependencies[answers.framework] = "latest";
|
|
31
|
+
dependencies["express-session"] = "latest";
|
|
32
|
+
|
|
33
|
+
// Database driver(s)
|
|
34
|
+
const drivers = DRIVER_MAP[answers.database] || [];
|
|
35
|
+
for (const driver of drivers) {
|
|
36
|
+
dependencies[driver] = "latest";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Session: redis
|
|
40
|
+
if (answers.session === "redis") {
|
|
41
|
+
dependencies["connect-redis"] = "latest";
|
|
42
|
+
// Only add ioredis if not already included via the database driver
|
|
43
|
+
if (answers.database !== "redis") {
|
|
44
|
+
dependencies["ioredis"] = "latest";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Optional middleware
|
|
49
|
+
if (answers.rateLimiting) {
|
|
50
|
+
dependencies["express-rate-limit"] = "latest";
|
|
51
|
+
}
|
|
52
|
+
if (answers.helmet) {
|
|
53
|
+
dependencies["helmet"] = "latest";
|
|
54
|
+
}
|
|
55
|
+
if (answers.logger) {
|
|
56
|
+
dependencies["express-mung"] = "latest";
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Dev dependencies
|
|
60
|
+
devDependencies["nodemon"] = "latest";
|
|
61
|
+
|
|
62
|
+
return { dependencies, devDependencies };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Returns the 5 package.json scripts.
|
|
67
|
+
* @returns {Record<string, string>}
|
|
68
|
+
*/
|
|
69
|
+
function getScripts() {
|
|
70
|
+
return {
|
|
71
|
+
start: "node app.js",
|
|
72
|
+
dev: "nodemon app.js",
|
|
73
|
+
test: 'echo "Error: no test specified" && exit 1',
|
|
74
|
+
migrate: "node migrate.js",
|
|
75
|
+
add_migration: "node add_migration.js",
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
module.exports = {
|
|
80
|
+
DRIVER_MAP,
|
|
81
|
+
collectDependencies,
|
|
82
|
+
getScripts,
|
|
83
|
+
};
|