UNPKG

everything-dev

Version:

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

77 lines (75 loc) • 2.42 kB
import { DatabaseBindings } from "../../db/bindings.mjs"; import { DrizzleKit } from "../../db/drizzle-kit.mjs"; import { Context, Effect, Layer } from "effect"; //#region src/services/db/ops.ts var DbOpsService = class DbOpsService extends Context.Service()("bos/DbOpsService") { static Live = Layer.effect(DbOpsService, Effect.map(Effect.all([DatabaseBindings, DrizzleKit]), ([bindings, drizzleKit]) => { return DbOpsService.of({ studio: (plugin) => Effect.tryPromise({ try: async () => { const binding = await Effect.runPromise(bindings.forPluginKey(plugin)); await Effect.runPromise(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) => ({ status: "error", plugin, source: "remote", section: "", error: error instanceof Error ? error.message : "Unknown error" }) }), doctor: (plugin) => Effect.tryPromise({ try: async () => { const binding = await Effect.runPromise(bindings.forPluginKey(plugin)); const { diagnosePlugin } = await import("./doctor.mjs"); return { status: "success", ...await diagnosePlugin(binding) }; }, catch: (error) => ({ status: "error", plugin, slug: "", journalTable: "", journalSchema: "", diagnosis: "error", localMigrationCount: 0, appliedHashCount: 0, expectedTables: [], missingTables: [], error: error instanceof Error ? error.message : "Unknown error" }) }), repair: (plugin, mode) => Effect.tryPromise({ try: async () => { const binding = await Effect.runPromise(bindings.forPluginKey(plugin)); const { repairPlugin } = await import("./repair.mjs"); const result = await repairPlugin(binding, mode, drizzleKit); return { ...result, error: result.status === "error" ? result.message : void 0 }; }, catch: (error) => ({ status: "error", message: error instanceof Error ? error.message : "Unknown error", diagnosis: null, error: error instanceof Error ? error.message : "Unknown error" }) }) }); })); }; //#endregion export { DbOpsService }; //# sourceMappingURL=ops.mjs.map