MCPcopy Index your code
hub / github.com/dagger/dagger / serveAllResolvedModuleLoads

Method serveAllResolvedModuleLoads

engine/server/session_workspaces.go:894–919  ·  view source on GitHub ↗

serveAllResolvedModuleLoads serves all resolved primary modules and their related modules (blueprints, toolchains-of-toolchains). Transitive dependencies are only served for the entrypoint module — the one the user is interacting with via `dagger call` or `dagger shell`. This is needed so the clien

(client *daggerClient, loads []moduleLoadRequest, resolved []resolvedModuleLoad)

Source from the content-addressed store, hash-verified

892// each module's deps are available in its own internal schema (mod.Deps) for
893// type resolution during function calls.
894func (srv *Server) serveAllResolvedModuleLoads(client *daggerClient, loads []moduleLoadRequest, resolved []resolvedModuleLoad) error {
895 for i := range loads {
896 load := resolved[i]
897 for _, related := range load.related {
898 if err := srv.serveModule(client, core.NewUserMod(related.mod), core.InstallOpts{Entrypoint: related.entrypoint}); err != nil {
899 return fmt.Errorf("error serving related module %s: %w", related.mod.Self().Name(), err)
900 }
901 }
902 if err := srv.serveModule(client, core.NewUserMod(load.primary), core.InstallOpts{Entrypoint: load.primaryEntrypoint}); err != nil {
903 return moduleLoadErr(loads[i], err)
904 }
905 // For the entrypoint module (the one the user targets via dagger call),
906 // also serve its direct dependencies so the client schema can resolve
907 // concrete types behind interfaces. This mirrors the includeDependencies
908 // behavior from `main`. Toolchain/non-entrypoint deps stay internal.
909 if load.primaryEntrypoint {
910 for _, dep := range load.primary.Self().Deps.Mods() {
911 if err := srv.serveModule(client, dep, core.InstallOpts{SkipConstructor: true}); err != nil {
912 return fmt.Errorf("error serving entrypoint dependency %s: %w", dep.Name(), err)
913 }
914 }
915 }
916 }
917
918 return nil
919}
920
921func gatherModuleLoadRequests(pending []pendingModule, extras []engine.ExtraModule) []moduleLoadRequest {
922 loads := make([]moduleLoadRequest, 0, len(pending)+len(extras))

Callers 1

ensureModulesLoadedMethod · 0.95

Calls 6

serveModuleMethod · 0.95
NewUserModFunction · 0.92
moduleLoadErrFunction · 0.85
SelfMethod · 0.80
ModsMethod · 0.80
NameMethod · 0.65

Tested by

no test coverage detected