everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
77 lines (75 loc) • 2.61 kB
JavaScript
const require_bindings = require('../../db/bindings.cjs');
const require_drizzle_kit = require('../../db/drizzle-kit.cjs');
let effect = require("effect");
//#region src/services/db/ops.ts
var DbOpsService = class DbOpsService extends effect.Context.Service()("bos/DbOpsService") {
static Live = effect.Layer.effect(DbOpsService, effect.Effect.map(effect.Effect.all([require_bindings.DatabaseBindings, require_drizzle_kit.DrizzleKit]), ([bindings, drizzleKit]) => {
return DbOpsService.of({
studio: (plugin) => effect.Effect.tryPromise({
try: async () => {
const binding = await effect.Effect.runPromise(bindings.forPluginKey(plugin));
await effect.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.Effect.tryPromise({
try: async () => {
const binding = await effect.Effect.runPromise(bindings.forPluginKey(plugin));
const { diagnosePlugin } = await Promise.resolve().then(() => require("./doctor.cjs"));
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.Effect.tryPromise({
try: async () => {
const binding = await effect.Effect.runPromise(bindings.forPluginKey(plugin));
const { repairPlugin } = await Promise.resolve().then(() => require("./repair.cjs"));
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
exports.DbOpsService = DbOpsService;
//# sourceMappingURL=ops.cjs.map