- Add bun test suite: SQL generator and value unit tests, plus MariaDB integration tests gated on BUN_MARIADB_TEST_DB - schema: add --dry-run and require confirmation (or --yes) before dropping tables/columns; block unapproved destructive statements - Always AND targetId with the query, regardless of searchOperator - Initialize lazily on first call; init throws instead of exiting - Generate IN (?, ?, ...) lists for IN / NOT IN - Share value binding between insert and update (booleans, embeddings, function values, "" -> NULL for non-text columns) - Keep Buffers and convert BigInt/Date without a JSON round-trip - DbSQL: report success for empty SELECT results - Run update() in a transaction with row locking - Key the client cache on the full connection config - Consolidate identifier quoting, drop dead code, merge column lookup - Read CLI version from package.json, pin @types/bun, chmod CLI on compile - Rebuild dist Co-Authored-By: Claude Opus 5.5 <[email protected]>
49 lines
1.3 KiB
JavaScript
Executable File
49 lines
1.3 KiB
JavaScript
Executable File
#!/usr/bin/env bun
|
|
import { program } from "commander";
|
|
import schema from "./schema";
|
|
import typedef from "./typedef";
|
|
import backup from "./backup";
|
|
import restore from "./restore";
|
|
import exportCmd from "./export";
|
|
import importCmd from "./import";
|
|
import admin from "./admin";
|
|
import init from "../functions/init";
|
|
import { readFileSync } from "fs";
|
|
try {
|
|
init();
|
|
}
|
|
catch (error) {
|
|
console.error(`Initialization ERROR => ${error.message}`);
|
|
process.exit(1);
|
|
}
|
|
/** Resolves to the package root from both src/commands and dist/commands */
|
|
const { version } = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf-8"));
|
|
/**
|
|
* # Describe Program
|
|
*/
|
|
program
|
|
.name(`bun-mariadb`)
|
|
.description(`MariaDB manager for Bun`)
|
|
.version(version);
|
|
/**
|
|
* # Declare Commands
|
|
*/
|
|
program.addCommand(schema());
|
|
program.addCommand(typedef());
|
|
program.addCommand(backup());
|
|
program.addCommand(restore());
|
|
program.addCommand(exportCmd());
|
|
program.addCommand(importCmd());
|
|
program.addCommand(admin());
|
|
/**
|
|
* # Handle Unavailable Commands
|
|
*/
|
|
program.on("command:*", () => {
|
|
console.error("Invalid command: %s\nSee --help for a list of available commands.", program.args.join(" "));
|
|
process.exit(1);
|
|
});
|
|
/**
|
|
* # Parse Arguments
|
|
*/
|
|
program.parse(Bun.argv);
|