everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
1 lines • 5 kB
Source Map (JSON)
{"version":3,"file":"ops.cjs","names":["Context","Layer","Effect","DatabaseBindings","DrizzleKit"],"sources":["../../../src/services/db/ops.ts"],"sourcesContent":["import { Context, Effect, Layer } from \"effect\";\nimport type { DbDoctorResult, DbRepairResult, DbStudioResult } from \"../../contract\";\nimport { DatabaseBindings, DrizzleKit } from \"../../db/index\";\n\nexport class DbOpsService extends Context.Service<\n DbOpsService,\n {\n studio: (plugin: string) => Effect.Effect<DbStudioResult, unknown>;\n doctor: (plugin: string) => Effect.Effect<DbDoctorResult, unknown>;\n repair: (\n plugin: string,\n mode: \"history-reset\" | \"recreate\",\n ) => Effect.Effect<DbRepairResult, unknown>;\n }\n>()(\"bos/DbOpsService\") {\n static Live = Layer.effect(\n DbOpsService,\n Effect.map(Effect.all([DatabaseBindings, DrizzleKit]), ([bindings, drizzleKit]) => {\n return DbOpsService.of({\n studio: (plugin) =>\n Effect.tryPromise({\n try: async () => {\n const binding = await Effect.runPromise(bindings.forPluginKey(plugin));\n await Effect.runPromise(drizzleKit.studio(binding));\n\n return {\n status: \"success\" as const,\n plugin: binding.key,\n source: binding.source,\n section: binding.section,\n databaseSecret: binding.identity.secretName,\n databaseUrl: binding.url,\n workspaceDir: binding.identity.workspaceDir,\n };\n },\n catch: (error) => ({\n status: \"error\" as const,\n plugin,\n source: \"remote\" as const,\n section: \"\",\n error: error instanceof Error ? error.message : \"Unknown error\",\n }),\n }),\n\n doctor: (plugin) =>\n Effect.tryPromise({\n try: async () => {\n const binding = await Effect.runPromise(bindings.forPluginKey(plugin));\n\n const { diagnosePlugin } = await import(\"./doctor\");\n const report = await diagnosePlugin(binding);\n\n return {\n status: \"success\" as const,\n ...report,\n };\n },\n catch: (error) => ({\n status: \"error\" as const,\n plugin,\n slug: \"\",\n journalTable: \"\",\n journalSchema: \"\",\n diagnosis: \"error\" as const,\n localMigrationCount: 0,\n appliedHashCount: 0,\n expectedTables: [] as string[],\n missingTables: [] as string[],\n error: error instanceof Error ? error.message : \"Unknown error\",\n }),\n }),\n\n repair: (plugin, mode) =>\n Effect.tryPromise({\n try: async () => {\n const binding = await Effect.runPromise(bindings.forPluginKey(plugin));\n\n const { repairPlugin } = await import(\"./repair\");\n const result = await repairPlugin(binding, mode, drizzleKit);\n\n return {\n ...result,\n error: result.status === \"error\" ? result.message : undefined,\n };\n },\n catch: (error) => ({\n status: \"error\" as const,\n message: error instanceof Error ? error.message : \"Unknown error\",\n diagnosis: null,\n error: error instanceof Error ? error.message : \"Unknown error\",\n }),\n }),\n });\n }),\n );\n}\n"],"mappings":";;;;;AAIA,IAAa,eAAb,MAAa,qBAAqBA,eAAQ,QAUxC,CAAC,CAAC,kBAAkB,CAAC,CAAC;CACtB,OAAO,OAAOC,aAAM,OAClB,cACAC,cAAO,IAAIA,cAAO,IAAI,CAACC,mCAAkBC,8BAAU,CAAC,IAAI,CAAC,UAAU,gBAAgB;EACjF,OAAO,aAAa,GAAG;GACrB,SAAS,WACPF,cAAO,WAAW;IAChB,KAAK,YAAY;KACf,MAAM,UAAU,MAAMA,cAAO,WAAW,SAAS,aAAa,MAAM,CAAC;KACrE,MAAMA,cAAO,WAAW,WAAW,OAAO,OAAO,CAAC;KAElD,OAAO;MACL,QAAQ;MACR,QAAQ,QAAQ;MAChB,QAAQ,QAAQ;MAChB,SAAS,QAAQ;MACjB,gBAAgB,QAAQ,SAAS;MACjC,aAAa,QAAQ;MACrB,cAAc,QAAQ,SAAS;KACjC;IACF;IACA,QAAQ,WAAW;KACjB,QAAQ;KACR;KACA,QAAQ;KACR,SAAS;KACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAClD;GACF,CAAC;GAEH,SAAS,WACPA,cAAO,WAAW;IAChB,KAAK,YAAY;KACf,MAAM,UAAU,MAAMA,cAAO,WAAW,SAAS,aAAa,MAAM,CAAC;KAErE,MAAM,EAAE,mBAAmB,2CAAM;KAGjC,OAAO;MACL,QAAQ;MACR,GAAG,MAJgB,eAAe,OAAO;KAK3C;IACF;IACA,QAAQ,WAAW;KACjB,QAAQ;KACR;KACA,MAAM;KACN,cAAc;KACd,eAAe;KACf,WAAW;KACX,qBAAqB;KACrB,kBAAkB;KAClB,gBAAgB,CAAC;KACjB,eAAe,CAAC;KAChB,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAClD;GACF,CAAC;GAEH,SAAS,QAAQ,SACfA,cAAO,WAAW;IAChB,KAAK,YAAY;KACf,MAAM,UAAU,MAAMA,cAAO,WAAW,SAAS,aAAa,MAAM,CAAC;KAErE,MAAM,EAAE,iBAAiB,2CAAM;KAC/B,MAAM,SAAS,MAAM,aAAa,SAAS,MAAM,UAAU;KAE3D,OAAO;MACL,GAAG;MACH,OAAO,OAAO,WAAW,UAAU,OAAO,UAAU;KACtD;IACF;IACA,QAAQ,WAAW;KACjB,QAAQ;KACR,SAAS,iBAAiB,QAAQ,MAAM,UAAU;KAClD,WAAW;KACX,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAClD;GACF,CAAC;EACL,CAAC;CACH,CAAC,CACH;AACF"}