#most probably newbee error in typescript

1 messages · Page 1 of 1 (latest)

turbid kettle
#

import { argument, dag, Directory, func, object } from "@dagger.io/dagger";

export type RequiredInput = {
  cleanGitRepo: Directory
}


@object()
export class First {

  requiredInput: RequiredInput;

  constructor(@argument({ defaultPath: "/.git" }) gitRoot: Directory) {
    console.log("CBO Root constructor");
    this.requiredInput = {
      cleanGitRepo: dag.container()
        .from("alpine:latest")
        .withExec(["apk", "update"])
        .withExec(["apk", "add", "git"])
        .withDirectory("/mnt/.git", gitRoot)
        .withWorkdir("/mnt")
        .withExec(["git", "config", "--global", "--add", "safe.directory", "/mnt"])
        .withExec(["git", "checkout", "-f"])
        .directory("/mnt")

    };
    console.log("CBO Root constructor ends");
  }

  @func()
  getCleanGitRepo(): Directory {
    console.log("CBO First getCleanGitRepo");
    return this.requiredInput.cleanGitRepo;
  }
}



This code fails when I execute dag call get-clean-git-repo

error is failed to convert return value: expected string, got map[string]interface {}

latent crane
latent crane
#

@turbid kettle this works in Go

package main

import (
    "dagger/lolo/internal/dagger"
)

type RequiredInput struct {
    Dir *dagger.Container
}

type Lolo struct {
    // +private
    RequiredInput RequiredInput
}

func New() *Lolo {
    return &Lolo{
        RequiredInput: RequiredInput{Dir: dag.Container().From("alpine")},
    }
}

// Returns a container that echoes whatever string argument is provided
func (m *Lolo) Foo() *dagger.Container {
    return m.RequiredInput.Dir

}

So I'd say this is very likely to be a typescript SDK specific issue. cc @digital glade

#

@turbid kettle if by any chance you can open an issue that'd be much appreciated 🙏