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.
@@ -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
- await migrate(api.db.db, {
72
- migrationsFolder: path.join(api.rootDir, "drizzle"),
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keryx",
3
- "version": "0.10.1",
3
+ "version": "0.10.3",
4
4
  "module": "index.ts",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,3 +1,3 @@
1
1
  node_modules/
2
2
  .env
3
- drizzle/
3
+ drizzle/config.tmp.ts
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).description(opts.description).version(opts.version);
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/.gitkeep", "");
294
+ await write("drizzle/meta/_journal.json", JSON.stringify({ entries: [] }));
294
295
  }
295
296
 
296
297
  // --- Built-in actions (always included) ---