@nyalajs/cli 1.0.0
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/nyala.d.ts +3 -0
- package/dist/bin/nyala.d.ts.map +1 -0
- package/dist/bin/nyala.js +190 -0
- package/dist/bin/nyala.js.map +1 -0
- package/dist/commands/generate.command.d.ts +63 -0
- package/dist/commands/generate.command.d.ts.map +1 -0
- package/dist/commands/generate.command.js +554 -0
- package/dist/commands/generate.command.js.map +1 -0
- package/dist/commands/migrate.command.d.ts +15 -0
- package/dist/commands/migrate.command.d.ts.map +1 -0
- package/dist/commands/migrate.command.js +179 -0
- package/dist/commands/migrate.command.js.map +1 -0
- package/dist/commands/new.command.d.ts +19 -0
- package/dist/commands/new.command.d.ts.map +1 -0
- package/dist/commands/new.command.helpers.d.ts +6 -0
- package/dist/commands/new.command.helpers.d.ts.map +1 -0
- package/dist/commands/new.command.helpers.js +92 -0
- package/dist/commands/new.command.helpers.js.map +1 -0
- package/dist/commands/new.command.js +515 -0
- package/dist/commands/new.command.js.map +1 -0
- package/dist/commands/seed.command.d.ts +15 -0
- package/dist/commands/seed.command.d.ts.map +1 -0
- package/dist/commands/seed.command.js +144 -0
- package/dist/commands/seed.command.js.map +1 -0
- package/dist/commands/validate.command.d.ts +7 -0
- package/dist/commands/validate.command.d.ts.map +1 -0
- package/dist/commands/validate.command.js +127 -0
- package/dist/commands/validate.command.js.map +1 -0
- package/dist/utils/banner.d.ts +5 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +174 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/naming.d.ts +4 -0
- package/dist/utils/naming.d.ts.map +1 -0
- package/dist/utils/naming.js +33 -0
- package/dist/utils/naming.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.MigrateCommand = void 0;
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const fs = __importStar(require("fs-extra"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
+
const dotenv = __importStar(require("dotenv"));
|
|
45
|
+
/**
|
|
46
|
+
* Real migration runner using Drizzle ORM's migrate() function.
|
|
47
|
+
* Reads DB credentials from the environment (loaded from .env) and
|
|
48
|
+
* runs all pending migrations from database/migrations/.
|
|
49
|
+
*/
|
|
50
|
+
class MigrateCommand {
|
|
51
|
+
async handle(options = {}) {
|
|
52
|
+
// Load .env so DB credentials are available
|
|
53
|
+
dotenv.config({ path: path.join(process.cwd(), ".env") });
|
|
54
|
+
const spinner = (0, ora_1.default)("Running database migrations").start();
|
|
55
|
+
const migrationsDir = path.join(process.cwd(), "database/migrations");
|
|
56
|
+
const migrationsFolder = migrationsDir;
|
|
57
|
+
try {
|
|
58
|
+
if (!(await fs.pathExists(migrationsDir))) {
|
|
59
|
+
spinner.info("No migrations directory found. Run `nyala generate migration <name>` first.");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const connectionString = this.buildConnectionString();
|
|
63
|
+
if (!connectionString) {
|
|
64
|
+
spinner.fail("No database connection string found.\n" +
|
|
65
|
+
" Set DB_URL or (DB_HOST + DB_PORT + DB_NAME + DB_USER + DB_PASSWORD) in your .env file.");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
spinner.text = "Connecting to database...";
|
|
69
|
+
// Dynamically import drizzle-orm/node-postgres and pg so this
|
|
70
|
+
// file stays require()-able even without those deps installed
|
|
71
|
+
// (they are a peer dep of @nyalajs/database).
|
|
72
|
+
let Pool;
|
|
73
|
+
let drizzle;
|
|
74
|
+
let migrate;
|
|
75
|
+
try {
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
77
|
+
({ Pool } = require("pg"));
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
79
|
+
({ drizzle } = require("drizzle-orm/node-postgres"));
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
81
|
+
({ migrate } = require("drizzle-orm/node-postgres/migrator"));
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
spinner.fail("Could not load database driver.\n" +
|
|
85
|
+
" Run: npm install pg drizzle-orm");
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const pool = new Pool({ connectionString });
|
|
89
|
+
try {
|
|
90
|
+
const db = drizzle(pool);
|
|
91
|
+
spinner.text = "Running migrations...";
|
|
92
|
+
await migrate(db, { migrationsFolder });
|
|
93
|
+
await pool.end();
|
|
94
|
+
spinner.succeed(chalk_1.default.green("All migrations applied successfully."));
|
|
95
|
+
console.log(chalk_1.default.dim(` Migrations folder: ${migrationsDir}`));
|
|
96
|
+
if (options.seed) {
|
|
97
|
+
await this.runSeeders();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (dbError) {
|
|
101
|
+
await pool.end().catch(() => { });
|
|
102
|
+
throw dbError;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
spinner.fail("Migration failed");
|
|
107
|
+
console.error(chalk_1.default.red(error?.message ?? error));
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async fresh() {
|
|
112
|
+
const spinner = (0, ora_1.default)("Dropping and recreating the schema...").start();
|
|
113
|
+
dotenv.config({ path: path.join(process.cwd(), ".env") });
|
|
114
|
+
const connectionString = this.buildConnectionString();
|
|
115
|
+
if (!connectionString) {
|
|
116
|
+
spinner.fail("No database connection string found.");
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
let Pool;
|
|
120
|
+
try {
|
|
121
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
122
|
+
({ Pool } = require("pg"));
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
spinner.fail("pg not installed. Run: npm install pg");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const pool = new Pool({ connectionString });
|
|
129
|
+
try {
|
|
130
|
+
await pool.query("DROP SCHEMA public CASCADE; CREATE SCHEMA public;");
|
|
131
|
+
await pool.end();
|
|
132
|
+
spinner.succeed("Schema dropped and recreated.");
|
|
133
|
+
// Re-run all migrations from scratch
|
|
134
|
+
await this.handle();
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
await pool.end().catch(() => { });
|
|
138
|
+
spinner.fail("Fresh migration failed: " + (e?.message ?? e));
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async runSeeders() {
|
|
143
|
+
const seedersDir = path.join(process.cwd(), "database/seeders");
|
|
144
|
+
if (!(await fs.pathExists(seedersDir)))
|
|
145
|
+
return;
|
|
146
|
+
const files = (await fs.readdir(seedersDir))
|
|
147
|
+
.filter((f) => f.endsWith(".ts") || f.endsWith(".js"))
|
|
148
|
+
.sort();
|
|
149
|
+
if (files.length === 0)
|
|
150
|
+
return;
|
|
151
|
+
console.log(chalk_1.default.cyan("\nRunning seeders..."));
|
|
152
|
+
for (const file of files) {
|
|
153
|
+
const seeder = await Promise.resolve(`${path.join(seedersDir, file)}`).then(s => __importStar(require(s)));
|
|
154
|
+
if (typeof seeder.default?.run === "function") {
|
|
155
|
+
await seeder.default.run();
|
|
156
|
+
console.log(chalk_1.default.green(" Seeded: ") + file);
|
|
157
|
+
}
|
|
158
|
+
else if (typeof seeder.run === "function") {
|
|
159
|
+
await seeder.run();
|
|
160
|
+
console.log(chalk_1.default.green(" Seeded: ") + file);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
buildConnectionString() {
|
|
165
|
+
if (process.env.DB_URL)
|
|
166
|
+
return process.env.DB_URL;
|
|
167
|
+
if (process.env.DATABASE_URL)
|
|
168
|
+
return process.env.DATABASE_URL;
|
|
169
|
+
const { DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD } = process.env;
|
|
170
|
+
if (DB_HOST && DB_NAME && DB_USER) {
|
|
171
|
+
const pass = DB_PASSWORD ? encodeURIComponent(DB_PASSWORD) : "";
|
|
172
|
+
const port = DB_PORT || "5432";
|
|
173
|
+
return `postgresql://${DB_USER}:${pass}@${DB_HOST}:${port}/${DB_NAME}`;
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
exports.MigrateCommand = MigrateCommand;
|
|
179
|
+
//# sourceMappingURL=migrate.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.command.js","sourceRoot":"","sources":["../../src/commands/migrate.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class NewCommand {
|
|
2
|
+
execute(name: string | undefined, options: any): Promise<void>;
|
|
3
|
+
/**
|
|
4
|
+
* Copy template files to project directory
|
|
5
|
+
*/
|
|
6
|
+
private copyTemplate;
|
|
7
|
+
private createProjectStructure;
|
|
8
|
+
private writeConfigFiles;
|
|
9
|
+
private getPackageJson;
|
|
10
|
+
private getTsConfig;
|
|
11
|
+
private getEnvTemplate;
|
|
12
|
+
private getGitignore;
|
|
13
|
+
private getConfigIndexTemplate;
|
|
14
|
+
private getRoutesTemplate;
|
|
15
|
+
private getAppModuleTemplate;
|
|
16
|
+
private getMainTemplate;
|
|
17
|
+
private getReadmeTemplate;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=new.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.command.d.ts","sourceRoot":"","sources":["../../src/commands/new.command.ts"],"names":[],"mappings":"AAiDA,qBAAa,UAAU;IACf,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA+FpE;;OAEG;YACW,YAAY;YA4BZ,sBAAsB;YA2EtB,gBAAgB;IA0F9B,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,sBAAsB;IAoC9B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,iBAAiB;CAkC1B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function getEslintConfig(): any;
|
|
2
|
+
export declare function getPrettierConfig(): any;
|
|
3
|
+
export declare function getVitestConfig(): string;
|
|
4
|
+
export declare function getEditorConfig(): string;
|
|
5
|
+
export declare function getPreCommitHook(): string;
|
|
6
|
+
//# sourceMappingURL=new.command.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.command.helpers.d.ts","sourceRoot":"","sources":["../../src/commands/new.command.helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,GAAG,CA0BrC;AAED,wBAAgB,iBAAiB,IAAI,GAAG,CAWvC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAqBxC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAcxC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Helper methods for NewCommand configuration generation
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getEslintConfig = getEslintConfig;
|
|
5
|
+
exports.getPrettierConfig = getPrettierConfig;
|
|
6
|
+
exports.getVitestConfig = getVitestConfig;
|
|
7
|
+
exports.getEditorConfig = getEditorConfig;
|
|
8
|
+
exports.getPreCommitHook = getPreCommitHook;
|
|
9
|
+
function getEslintConfig() {
|
|
10
|
+
return {
|
|
11
|
+
parser: "@typescript-eslint/parser",
|
|
12
|
+
parserOptions: {
|
|
13
|
+
project: "tsconfig.json",
|
|
14
|
+
sourceType: "module",
|
|
15
|
+
},
|
|
16
|
+
plugins: ["@typescript-eslint/eslint-plugin"],
|
|
17
|
+
extends: ["plugin:@typescript-eslint/recommended"],
|
|
18
|
+
root: true,
|
|
19
|
+
env: {
|
|
20
|
+
node: true,
|
|
21
|
+
jest: true,
|
|
22
|
+
},
|
|
23
|
+
ignorePatterns: [".eslintrc.js", "dist", "node_modules"],
|
|
24
|
+
rules: {
|
|
25
|
+
"@typescript-eslint/interface-name-prefix": "off",
|
|
26
|
+
"@typescript-eslint/explicit-function-return-type": "off",
|
|
27
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
28
|
+
"@typescript-eslint/no-explicit-any": "warn",
|
|
29
|
+
"@typescript-eslint/no-unused-vars": [
|
|
30
|
+
"error",
|
|
31
|
+
{ argsIgnorePattern: "^_" },
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function getPrettierConfig() {
|
|
37
|
+
return {
|
|
38
|
+
semi: true,
|
|
39
|
+
trailingComma: "es5",
|
|
40
|
+
singleQuote: false,
|
|
41
|
+
printWidth: 100,
|
|
42
|
+
tabWidth: 2,
|
|
43
|
+
useTabs: false,
|
|
44
|
+
arrowParens: "always",
|
|
45
|
+
endOfLine: "lf",
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function getVitestConfig() {
|
|
49
|
+
return `import { defineConfig } from "vitest/config";
|
|
50
|
+
|
|
51
|
+
export default defineConfig({
|
|
52
|
+
test: {
|
|
53
|
+
globals: true,
|
|
54
|
+
environment: "node",
|
|
55
|
+
coverage: {
|
|
56
|
+
provider: "v8",
|
|
57
|
+
reporter: ["text", "json", "html"],
|
|
58
|
+
exclude: [
|
|
59
|
+
"node_modules/",
|
|
60
|
+
"dist/",
|
|
61
|
+
"**/*.spec.ts",
|
|
62
|
+
"**/*.test.ts",
|
|
63
|
+
"**/test/**",
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
function getEditorConfig() {
|
|
71
|
+
return `root = true
|
|
72
|
+
|
|
73
|
+
[*]
|
|
74
|
+
charset = utf-8
|
|
75
|
+
indent_style = space
|
|
76
|
+
indent_size = 2
|
|
77
|
+
end_of_line = lf
|
|
78
|
+
insert_final_newline = true
|
|
79
|
+
trim_trailing_whitespace = true
|
|
80
|
+
|
|
81
|
+
[*.md]
|
|
82
|
+
trim_trailing_whitespace = false
|
|
83
|
+
`;
|
|
84
|
+
}
|
|
85
|
+
function getPreCommitHook() {
|
|
86
|
+
return `#!/usr/bin/env sh
|
|
87
|
+
. "$(dirname -- "$0")/_/husky.sh"
|
|
88
|
+
|
|
89
|
+
npx lint-staged
|
|
90
|
+
`;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=new.command.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.command.helpers.js","sourceRoot":"","sources":["../../src/commands/new.command.helpers.ts"],"names":[],"mappings":";AAAA,yDAAyD;;AAEzD,0CA0BC;AAED,8CAWC;AAED,0CAqBC;AAED,0CAcC;AAED,4CAMC;AAtFD,SAAgB,eAAe;IAC3B,OAAO;QACH,MAAM,EAAE,2BAA2B;QACnC,aAAa,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,QAAQ;SACvB;QACD,OAAO,EAAE,CAAC,kCAAkC,CAAC;QAC7C,OAAO,EAAE,CAAC,uCAAuC,CAAC;QAClD,IAAI,EAAE,IAAI;QACV,GAAG,EAAE;YACD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;SACb;QACD,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC;QACxD,KAAK,EAAE;YACH,0CAA0C,EAAE,KAAK;YACjD,kDAAkD,EAAE,KAAK;YACzD,mDAAmD,EAAE,KAAK;YAC1D,oCAAoC,EAAE,MAAM;YAC5C,mCAAmC,EAAE;gBACjC,OAAO;gBACP,EAAE,iBAAiB,EAAE,IAAI,EAAE;aAC9B;SACJ;KACJ,CAAC;AACN,CAAC;AAED,SAAgB,iBAAiB;IAC7B,OAAO;QACH,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,IAAI;KAClB,CAAC;AACN,CAAC;AAED,SAAgB,eAAe;IAC3B,OAAO;;;;;;;;;;;;;;;;;;;CAmBV,CAAC;AACF,CAAC;AAED,SAAgB,eAAe;IAC3B,OAAO;;;;;;;;;;;;CAYV,CAAC;AACF,CAAC;AAED,SAAgB,gBAAgB;IAC5B,OAAO;;;;CAIV,CAAC;AACF,CAAC"}
|