UNPKG

everything-dev

Version:

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

93 lines (91 loc) • 5.35 kB
import { createPlugin, z } from "./sdk.mjs"; import { bosContract } from "./contract.mjs"; import { ResolutionSessionService, openResolution } from "./services/resolution/session.mjs"; import { DatabaseBindings, makeDatabaseBindings } from "./db/bindings.mjs"; import { DrizzleKit, makeDrizzleKitLive } from "./db/drizzle-kit.mjs"; import { cliDeployTrainRender } from "./cli/render/deploy-train.mjs"; import { cliWorkspaceBuildRender } from "./cli/render/workspace-build.mjs"; import { ProjectEnv, ProjectEnvLive } from "./env/project-env.mjs"; import { BuildTrainService, WorkspaceBuildRenderService } from "./services/workspace/build-train.mjs"; import { registerBuild } from "./handlers/build.mjs"; import { registerConfig, resolveRemoteConfigChain } from "./handlers/config.mjs"; import { DbOpsService } from "./services/db/ops.mjs"; import { registerDb } from "./handlers/db.mjs"; import { PlatformManifestService } from "./services/platform/manifest.mjs"; import { SiteClient } from "./services/auth/site-client.mjs"; import { DeviceLoginService } from "./services/auth/device-login.mjs"; import { SignerService } from "./services/auth/signer.mjs"; import { BundleStorage, RegistryStore } from "./services/deploy/deps.mjs"; import { DeployTrainRenderService } from "./services/deploy/render.mjs"; import { DeployTrainService } from "./services/deploy/train.mjs"; import { registerDeploy } from "./handlers/deploy.mjs"; import { pluginEvents } from "./services/dev/progress.mjs"; import { DevFlowService } from "./services/dev/flow.mjs"; import { registerDev } from "./handlers/dev.mjs"; import { registerImport } from "./handlers/import.mjs"; import { InitFlowService } from "./services/scaffold/init-flow.mjs"; import { registerInit } from "./handlers/init.mjs"; import { SessionStore } from "./services/auth/session-store.mjs"; import { registerKeys } from "./handlers/keys.mjs"; import { OpsService } from "./services/ops.mjs"; import { registerOps } from "./handlers/ops.mjs"; import { PluginAdminService } from "./services/plugins-admin.mjs"; import { registerPlugins } from "./handlers/plugins.mjs"; import { ProcessesService } from "./services/processes/service.mjs"; import { registerProcesses } from "./handlers/processes.mjs"; import { registerSecrets } from "./handlers/secrets.mjs"; import { registerSmoke } from "./handlers/smoke.mjs"; import { registerUpgrade } from "./handlers/upgrade.mjs"; import { Context, Effect, Layer } from "effect"; import { buildScoped, buildScopedContext } from "every-plugin"; import process from "node:process"; import * as p from "@clack/prompts"; //#region src/plugin.ts const buildRenderLayer = Layer.succeed(WorkspaceBuildRenderService, WorkspaceBuildRenderService.of(cliWorkspaceBuildRender)); const deployRenderLayer = Layer.succeed(DeployTrainRenderService, DeployTrainRenderService.of(cliDeployTrainRender)); const buildTrainLayer = BuildTrainService.Live.pipe(Layer.provide(buildRenderLayer)); var plugin_default = createPlugin({ variables: z.object({ configPath: z.string().optional(), configDir: z.string().optional() }), secrets: z.object({}), contract: bosContract, initialize: (config, _plugins) => Effect.gen(function* () { const session = yield* Effect.promise(() => openResolution({ path: config.variables.configPath })); const projectEnv = yield* buildScoped(ProjectEnv, ProjectEnvLive); const effectContext = yield* Effect.context(); const configDir = config.variables.configDir ?? session?.root ?? process.cwd(); const services = yield* buildScopedContext(Layer.mergeAll(makeDatabaseBindings({ projectDir: configDir, loadRuntimeConfig: async () => await session?.buildRuntime() ?? null, loadEnv: () => Effect.runPromiseWith(effectContext)(projectEnv.load(configDir)) }), makeDrizzleKitLive({ projectDir: configDir, onLog: (message) => p.log.info(message) }))); const dbBindingsLayer = Layer.succeed(DatabaseBindings, Context.get(services, DatabaseBindings)); const drizzleKitLayer = Layer.succeed(DrizzleKit, Context.get(services, DrizzleKit)); const deployTrainLayer = DeployTrainService.Live.pipe(Layer.provide(Layer.mergeAll(BundleStorage.Live, RegistryStore.Live, SignerService.Live, buildTrainLayer))); return Layer.mergeAll(Layer.succeed(ResolutionSessionService, session), dbBindingsLayer, drizzleKitLayer, ProcessesService.Live, SiteClient.Live, SessionStore.Live, DeviceLoginService.Live.pipe(Layer.provide(SiteClient.Live)), buildRenderLayer, buildTrainLayer, deployTrainLayer, deployRenderLayer, OpsService.Live, DbOpsService.Live.pipe(Layer.provide(Layer.mergeAll(dbBindingsLayer, drizzleKitLayer))), PluginAdminService.Live.pipe(Layer.provide(deployTrainLayer)), DevFlowService.Live, InitFlowService.Live, PlatformManifestService.Live); }), createRouter: (builder) => ({ ...registerConfig(builder), ...registerPlugins(builder), ...registerDev(builder), ...registerBuild(builder), ...registerDeploy(builder), ...registerSmoke(builder), ...registerKeys(builder), ...registerSecrets(builder), ...registerProcesses(builder), ...registerInit(builder), ...registerImport(builder), ...registerUpgrade(builder), ...registerDb(builder), ...registerOps(builder) }) }); //#endregion export { plugin_default as default, pluginEvents, resolveRemoteConfigChain }; //# sourceMappingURL=plugin.mjs.map