keryx 0.10.1 → 0.10.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/initializers/db.ts +13 -3
- package/package.json +1 -1
- package/templates/scaffold/gitignore.mustache +1 -1
- package/util/cli.ts +4 -2
- package/util/scaffold.ts +2 -1
package/initializers/db.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type Config as DrizzleMigrateConfig } from "drizzle-kit";
|
|
|
3
3
|
import { DefaultLogger, type LogWriter, sql } from "drizzle-orm";
|
|
4
4
|
import { drizzle } from "drizzle-orm/node-postgres";
|
|
5
5
|
import { migrate } from "drizzle-orm/node-postgres/migrator";
|
|
6
|
+
import fs from "node:fs";
|
|
6
7
|
import { unlink } from "node:fs/promises";
|
|
7
8
|
import path from "path";
|
|
8
9
|
import { Pool } from "pg";
|
|
@@ -68,9 +69,18 @@ export class DB extends Initializer {
|
|
|
68
69
|
|
|
69
70
|
if (config.database.autoMigrate) {
|
|
70
71
|
try {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
const migrationsFolder = path.join(api.rootDir, "drizzle");
|
|
73
|
+
const journalPath = path.join(
|
|
74
|
+
migrationsFolder,
|
|
75
|
+
"meta",
|
|
76
|
+
"_journal.json",
|
|
77
|
+
);
|
|
78
|
+
if (!fs.existsSync(journalPath)) {
|
|
79
|
+
fs.mkdirSync(path.dirname(journalPath), { recursive: true });
|
|
80
|
+
fs.writeFileSync(journalPath, JSON.stringify({ entries: [] }));
|
|
81
|
+
logger.info("created empty drizzle migrations journal");
|
|
82
|
+
}
|
|
83
|
+
await migrate(api.db.db, { migrationsFolder });
|
|
74
84
|
logger.info("database migrated successfully");
|
|
75
85
|
} catch (e) {
|
|
76
86
|
throw new TypedError({
|
package/package.json
CHANGED
package/util/cli.ts
CHANGED
|
@@ -28,7 +28,9 @@ export async function buildProgram(opts: {
|
|
|
28
28
|
version: string;
|
|
29
29
|
}): Promise<Command> {
|
|
30
30
|
const program = new Command();
|
|
31
|
-
program.name(opts.name)
|
|
31
|
+
program.name(opts.name);
|
|
32
|
+
program.description(opts.description ?? "");
|
|
33
|
+
program.version(opts.version);
|
|
32
34
|
|
|
33
35
|
program
|
|
34
36
|
.command("new [project-name]")
|
|
@@ -65,7 +67,7 @@ Done! To get started:
|
|
|
65
67
|
|
|
66
68
|
cd ${projectName}
|
|
67
69
|
cp .env.example .env
|
|
68
|
-
bun install
|
|
70
|
+
${options.includeDb ? ` createdb ${projectName}\n` : ""} bun install
|
|
69
71
|
bun dev
|
|
70
72
|
`);
|
|
71
73
|
process.exit(0);
|
package/util/scaffold.ts
CHANGED
|
@@ -234,6 +234,7 @@ export async function scaffoldProject(
|
|
|
234
234
|
{
|
|
235
235
|
name: projectName,
|
|
236
236
|
version: "0.0.1",
|
|
237
|
+
description: `${projectName} — powered by Keryx`,
|
|
237
238
|
module: "index.ts",
|
|
238
239
|
type: "module",
|
|
239
240
|
private: true,
|
|
@@ -290,7 +291,7 @@ export async function scaffoldProject(
|
|
|
290
291
|
if (options.includeDb) {
|
|
291
292
|
await writeTemplate("migrations.ts", "migrations.ts.mustache");
|
|
292
293
|
await write("schema/.gitkeep", "");
|
|
293
|
-
await write("drizzle
|
|
294
|
+
await write("drizzle/meta/_journal.json", JSON.stringify({ entries: [] }));
|
|
294
295
|
}
|
|
295
296
|
|
|
296
297
|
// --- Built-in actions (always included) ---
|