everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
42 lines (40 loc) • 1.43 kB
JavaScript
const require_services_resolution_session = require('../services/resolution/session.cjs');
const require_smoke = require('../services/deploy/smoke.cjs');
let effect = require("effect");
//#region src/handlers/smoke.ts
function registerSmoke(builder) {
return { smoke: builder.smoke.effect(function* (_opts, input) {
const session = yield* require_services_resolution_session.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.Effect.tryPromise(() => require_smoke.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
exports.registerSmoke = registerSmoke;
//# sourceMappingURL=smoke.cjs.map