UNPKG

everything-dev

Version:

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

42 lines (40 loc) • 1.34 kB
import { ResolutionSessionService } from "../services/resolution/session.mjs"; import { runSmoke } from "../services/deploy/smoke.mjs"; import { Effect } from "effect"; //#region src/handlers/smoke.ts function registerSmoke(builder) { return { smoke: builder.smoke.effect(function* (_opts, input) { const session = yield* ResolutionSessionService; const account = input.account ?? session?.config?.account; const gateway = input.gateway ?? session?.config?.domain; const image = input.image; if (!image) return { status: "error", error: "smoke requires an image ref — pass --image <ref>" }; console.log(`smoke: booting ${image} on :${input.port}`); const result = yield* Effect.tryPromise(() => runSmoke({ image, port: input.port, keep: input.keep, ...account ? { account } : {}, ...gateway ? { gateway } : {}, ...input.apiDatabaseUrl ? { apiDatabaseUrl: input.apiDatabaseUrl } : {}, ...input.authDatabaseUrl ? { authDatabaseUrl: input.authDatabaseUrl } : {} })); if (result.ok) return { status: "ok", image: result.image, summary: result.summary }; return { status: "error", image: result.image, ...result.diagnosis ? { diagnosis: result.diagnosis } : {}, error: result.error }; }) }; } //#endregion export { registerSmoke }; //# sourceMappingURL=smoke.mjs.map