UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

107 lines (105 loc) • 3.48 kB
const require_config = require('../config.cjs'); const require_shared = require('./shared.cjs'); let effect = require("effect"); //#region src/commands/db.ts function registerDb(builder) { return { dbStudio: builder.dbStudio.handler(async ({ input, context }) => { const deps = effect.Context.get(context["effect/context"], require_shared.BosDepsTag); if (!require_config.findConfigPath()) return { status: "error", plugin: input.plugin, source: "remote", section: "", error: `${require_config.MISSING_CONFIG_MESSAGE} in current directory` }; try { const binding = await effect.Effect.runPromise(deps.databaseBindings.forPluginKey(input.plugin)); await effect.Effect.runPromise(deps.drizzleKit.studio(binding)); return { status: "success", plugin: binding.key, source: binding.source, section: binding.section, databaseSecret: binding.identity.secretName, databaseUrl: binding.url, workspaceDir: binding.identity.workspaceDir }; } catch (error) { return { status: "error", plugin: input.plugin, source: "remote", section: "", error: error instanceof Error ? error.message : "Unknown error" }; } }), dbDoctor: builder.dbDoctor.handler(async ({ input, context }) => { const deps = effect.Context.get(context["effect/context"], require_shared.BosDepsTag); try { if (!require_config.findConfigPath()) return { status: "error", plugin: input.plugin, slug: "", journalTable: "", journalSchema: "", diagnosis: "error", localMigrationCount: 0, appliedHashCount: 0, expectedTables: [], missingTables: [], error: `${require_config.MISSING_CONFIG_MESSAGE} in current directory` }; const binding = await effect.Effect.runPromise(deps.databaseBindings.forPluginKey(input.plugin)); const { diagnosePlugin } = await Promise.resolve().then(() => require("../cli/db-doctor.cjs")); return { status: "success", ...await diagnosePlugin(binding) }; } catch (error) { return { status: "error", plugin: input.plugin, slug: "", journalTable: "", journalSchema: "", diagnosis: "error", localMigrationCount: 0, appliedHashCount: 0, expectedTables: [], missingTables: [], error: error instanceof Error ? error.message : "Unknown error" }; } }), dbRepair: builder.dbRepair.handler(async ({ input, context }) => { const deps = effect.Context.get(context["effect/context"], require_shared.BosDepsTag); try { if (!require_config.findConfigPath()) return { status: "error", message: require_config.MISSING_CONFIG_MESSAGE, diagnosis: null, error: "No config" }; const binding = await effect.Effect.runPromise(deps.databaseBindings.forPluginKey(input.plugin)); const { repairPlugin } = await Promise.resolve().then(() => require("../cli/db-repair.cjs")); const result = await repairPlugin(binding, input.mode ?? "history-reset", deps.drizzleKit); return { ...result, error: result.status === "error" ? result.message : void 0 }; } catch (error) { return { status: "error", message: error instanceof Error ? error.message : "Unknown error", diagnosis: null, error: error instanceof Error ? error.message : "Unknown error" }; } }) }; } //#endregion exports.registerDb = registerDb; //# sourceMappingURL=db.cjs.map