everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
47 lines (45 loc) • 2.1 kB
JavaScript
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