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

Method runClientGenerator

core/schema/modulesource.go:2528–2651  ·  view source on GitHub ↗
(
	ctx context.Context,
	srcInst dagql.ObjectResult[*core.ModuleSource],
	genDirInst dagql.ObjectResult[*core.Directory],
	clientGeneratorConfig *modules.ModuleConfigClient,
)

Source from the content-addressed store, hash-verified

2526}
2527
2528func (s *moduleSourceSchema) runClientGenerator(
2529 ctx context.Context,
2530 srcInst dagql.ObjectResult[*core.ModuleSource],
2531 genDirInst dagql.ObjectResult[*core.Directory],
2532 clientGeneratorConfig *modules.ModuleConfigClient,
2533) (dagql.ObjectResult[*core.Directory], error) {
2534 src := srcInst.Self()
2535
2536 query, err := core.CurrentQuery(ctx)
2537 if err != nil {
2538 return genDirInst, err
2539 }
2540 dag, err := query.Server.Server(ctx)
2541 if err != nil {
2542 return genDirInst, fmt.Errorf("failed to get dag server: %w", err)
2543 }
2544
2545 sdk, err := sdk.NewLoader().SDKForModule(
2546 ctx,
2547 query,
2548 &core.SDKConfig{
2549 Source: clientGeneratorConfig.Generator,
2550 },
2551 src,
2552 )
2553 if err != nil {
2554 return genDirInst, fmt.Errorf("failed to load generator module %s: %w", clientGeneratorConfig.Generator, err)
2555 }
2556
2557 clientGeneratorImpl, ok := sdk.AsClientGenerator()
2558 if !ok {
2559 if srcInst.Self() == nil || srcInst.Self().SDK == nil {
2560 return genDirInst, fmt.Errorf("module source has no SDK configured")
2561 }
2562 return genDirInst, ErrSDKClientGeneratorNotImplemented{SDK: srcInst.Self().SDK.Source}
2563 }
2564
2565 requiredClientGenerationFiles, err := clientGeneratorImpl.RequiredClientGenerationFiles(ctx)
2566 if err != nil {
2567 return genDirInst, fmt.Errorf("failed to get required client generation files: %w", err)
2568 }
2569
2570 // Add extra files required to correctly generate the client if there are any.
2571 var source dagql.ObjectResult[*core.ModuleSource]
2572 err = dag.Select(ctx, srcInst, &source, dagql.Selector{
2573 Field: "withIncludes",
2574 Args: []dagql.NamedInput{
2575 {
2576 Name: "patterns",
2577 Value: dagql.ArrayInput[dagql.String](requiredClientGenerationFiles),
2578 },
2579 },
2580 })
2581 if err != nil {
2582 return genDirInst, fmt.Errorf("failed to add module source required files: %w", err)
2583 }
2584
2585 deps, err := s.loadDependencyModules(ctx, srcInst, srcInst)

Callers 1

runGeneratedContextMethod · 0.95

Calls 15

loadDependencyModulesMethod · 0.95
CurrentQueryFunction · 0.92
NewLoaderFunction · 0.92
NewUserModFunction · 0.92
StringTypeAlias · 0.92
SelfMethod · 0.80
SDKForModuleMethod · 0.80
ServerMethod · 0.65
AsClientGeneratorMethod · 0.65
SelectMethod · 0.65

Tested by

no test coverage detected