UNPKG

everything-dev

Version:

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

47 lines (45 loc) • 2.1 kB
const require_manifest = require("../services/platform/manifest.cjs"); const require_services_resolution_session = require("../services/resolution/session.cjs"); const require_flow = require("../services/dev/flow.cjs"); const require_plane_audit = require("../services/resolution/plane-audit.cjs"); let effect = require("effect"); //#region src/handlers/dev.ts const renderAuditLines = (lines) => { const divergences = lines.filter((line) => line.kind !== "uncomposed"); const notes = lines.filter((line) => line.kind === "uncomposed"); if (divergences.length > 0) { console.log(`\n ${divergences.length} release-plane divergence(s) in the composition:`); for (const line of divergences) console.log(` - ${line.message}`); console.log("\n The runtime survived on its pinned bytes — realign before shipping.\n"); } if (notes.length > 0) { console.log(`\n ${notes.length} pinned-release slot(s) this config does not compose (informational):`); for (const line of notes) console.log(` - ${line.message}`); console.log(""); } }; function registerDev(builder) { return { dev: builder.dev.effect(function* (_opts, input) { const session = yield* require_services_resolution_session.ResolutionSessionService; const result = yield* (yield* require_flow.DevFlowService).dev(session, input); if (result.status === "started" && session) { const notice = require_manifest.chainHeadPinLagNotice(session.releaseManifest?.frameworkVersion, session.rawConfig?.platform); if (notice) console.log(`\n ${notice}\n`); const audit = yield* effect.Effect.tryPromise({ try: () => require_plane_audit.auditSessionPlane(session), catch: () => void 0 }); if (audit && audit.length > 0) renderAuditLines(audit); } return result; }), start: builder.start.effect(function* (_opts, input) { const session = yield* require_services_resolution_session.ResolutionSessionService; return yield* (yield* require_flow.DevFlowService).start(session, input); }) }; } //#endregion exports.registerDev = registerDev; //# sourceMappingURL=dev.cjs.map