UNPKG

everything-dev

Version:

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

1 lines • 5.54 kB
{"version":3,"file":"dev.mjs","names":[],"sources":["../../src/commands/dev.ts"],"sourcesContent":["import process from \"node:process\";\nimport { Context, Effect, References } from \"effect\";\nimport { MISSING_CONFIG_MESSAGE } from \"../config\";\nimport type { PhaseTiming } from \"../contract\";\nimport { type LogLevelEnv, resolveLogLevel, toEffectLogLevel } from \"../dev-log-pipeline\";\nimport { bootstrapLayers, devBootstrap, startBootstrap } from \"../dev-program\";\nimport { openResolution } from \"../resolution/session\";\nimport { type BosBuilder, BosDepsTag } from \"./shared\";\n\nexport function registerDev(builder: BosBuilder) {\n return {\n dev: builder.dev.handler(async ({ input, context }) => {\n const deps = Context.get(context[\"effect/context\"], BosDepsTag);\n const devTimings: PhaseTiming[] = [];\n\n const outcome = await Effect.runPromise(\n devBootstrap(deps, input, devTimings).pipe(\n Effect.provideService(\n References.MinimumLogLevel,\n toEffectLogLevel(resolveLogLevel(process.env as LogLevelEnv, input.logLevel)),\n ),\n Effect.provide(bootstrapLayers),\n Effect.catchTags({\n DevConfigMissing: () => Effect.succeed({ failed: MISSING_CONFIG_MESSAGE }),\n DevProxyMissing: () =>\n Effect.succeed({ failed: \"No valid proxy URL configured in the authored config\" }),\n DevPreflightFailed: (error) =>\n Effect.succeed({ failed: `Infra preflight failed: ${error.messages.join(\"; \")}` }),\n }),\n ),\n );\n\n if (\"failed\" in outcome) {\n return {\n status: \"error\" as const,\n description: outcome.failed,\n processes: [],\n timings: devTimings,\n };\n }\n\n return {\n status: \"started\" as const,\n description: outcome.description,\n processes: outcome.processes,\n timings: devTimings,\n session: outcome.session,\n };\n }),\n\n start: builder.start.handler(async ({ input, context }) => {\n const baseDeps = Context.get(context[\"effect/context\"], BosDepsTag);\n let deps = baseDeps;\n if (input.configPath) {\n const override = await openResolution({ path: input.configPath });\n if (!override) {\n return {\n status: \"error\" as const,\n url: \"\",\n error: `No config found at ${input.configPath}`,\n };\n }\n deps = { ...baseDeps, session: override };\n }\n\n const outcome = await Effect.runPromise(\n startBootstrap(deps, input).pipe(\n Effect.provide(bootstrapLayers),\n Effect.catchTags({\n StartRemoteConfigMissing: (error) => Effect.succeed({ failed: error.message }),\n StartFetchFailed: (error) => Effect.succeed({ failed: error.message }),\n StartConfigMissing: () =>\n Effect.succeed({\n failed:\n \"No configuration found. Provide --account and --gateway flags, or create a local authored config (bos.app.ts or bos.config.json).\",\n }),\n InfraError: (error) => Effect.succeed({ failed: `${error.phase}: ${error.message}` }),\n DevStepError: (error) =>\n Effect.succeed({\n failed: `${error.phase} failed: ${\n error.cause instanceof Error ? error.cause.message : String(error.cause)\n }`,\n }),\n }),\n ),\n );\n\n if (\"failed\" in outcome) {\n return {\n status: \"error\" as const,\n url: \"\",\n error: outcome.failed,\n };\n }\n\n return {\n status: \"running\" as const,\n url: outcome.url,\n session: outcome.session,\n summary: outcome.summary,\n };\n }),\n };\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,YAAY,SAAqB;CAC/C,OAAO;EACL,KAAK,QAAQ,IAAI,QAAQ,OAAO,EAAE,OAAO,cAAc;GACrD,MAAM,OAAO,QAAQ,IAAI,QAAQ,mBAAmB,UAAU;GAC9D,MAAM,aAA4B,CAAC;GAEnC,MAAM,UAAU,MAAM,OAAO,WAC3B,aAAa,MAAM,OAAO,UAAU,CAAC,CAAC,KACpC,OAAO,eACL,WAAW,iBACX,iBAAiB,gBAAgB,QAAQ,KAAoB,MAAM,QAAQ,CAAC,CAC9E,GACA,OAAO,QAAQ,eAAe,GAC9B,OAAO,UAAU;IACf,wBAAwB,OAAO,QAAQ,EAAE,QAAQ,uBAAuB,CAAC;IACzE,uBACE,OAAO,QAAQ,EAAE,QAAQ,uDAAuD,CAAC;IACnF,qBAAqB,UACnB,OAAO,QAAQ,EAAE,QAAQ,2BAA2B,MAAM,SAAS,KAAK,IAAI,IAAI,CAAC;GACrF,CAAC,CACH,CACF;GAEA,IAAI,YAAY,SACd,OAAO;IACL,QAAQ;IACR,aAAa,QAAQ;IACrB,WAAW,CAAC;IACZ,SAAS;GACX;GAGF,OAAO;IACL,QAAQ;IACR,aAAa,QAAQ;IACrB,WAAW,QAAQ;IACnB,SAAS;IACT,SAAS,QAAQ;GACnB;EACF,CAAC;EAED,OAAO,QAAQ,MAAM,QAAQ,OAAO,EAAE,OAAO,cAAc;GACzD,MAAM,WAAW,QAAQ,IAAI,QAAQ,mBAAmB,UAAU;GAClE,IAAI,OAAO;GACX,IAAI,MAAM,YAAY;IACpB,MAAM,WAAW,MAAM,eAAe,EAAE,MAAM,MAAM,WAAW,CAAC;IAChE,IAAI,CAAC,UACH,OAAO;KACL,QAAQ;KACR,KAAK;KACL,OAAO,sBAAsB,MAAM;IACrC;IAEF,OAAO;KAAE,GAAG;KAAU,SAAS;IAAS;GAC1C;GAEA,MAAM,UAAU,MAAM,OAAO,WAC3B,eAAe,MAAM,KAAK,CAAC,CAAC,KAC1B,OAAO,QAAQ,eAAe,GAC9B,OAAO,UAAU;IACf,2BAA2B,UAAU,OAAO,QAAQ,EAAE,QAAQ,MAAM,QAAQ,CAAC;IAC7E,mBAAmB,UAAU,OAAO,QAAQ,EAAE,QAAQ,MAAM,QAAQ,CAAC;IACrE,0BACE,OAAO,QAAQ,EACb,QACE,oIACJ,CAAC;IACH,aAAa,UAAU,OAAO,QAAQ,EAAE,QAAQ,GAAG,MAAM,MAAM,IAAI,MAAM,UAAU,CAAC;IACpF,eAAe,UACb,OAAO,QAAQ,EACb,QAAQ,GAAG,MAAM,MAAM,WACrB,MAAM,iBAAiB,QAAQ,MAAM,MAAM,UAAU,OAAO,MAAM,KAAK,IAE3E,CAAC;GACL,CAAC,CACH,CACF;GAEA,IAAI,YAAY,SACd,OAAO;IACL,QAAQ;IACR,KAAK;IACL,OAAO,QAAQ;GACjB;GAGF,OAAO;IACL,QAAQ;IACR,KAAK,QAAQ;IACb,SAAS,QAAQ;IACjB,SAAS,QAAQ;GACnB;EACF,CAAC;CACH;AACF"}