package builtins import ( "monkey/internal/context" "monkey/internal/object" "monkey/internal/typing" "os" ) // ReadFile ... func ReadFile(ctx context.Context, args ...object.Object) object.Object { if err := typing.Check( "readfile", args, typing.ExactArgs(1), typing.WithTypes(object.StringType), ); err != nil { return newError(err.Error()) } filename := args[0].(object.String).Value data, err := os.ReadFile(filename) if err != nil { return newError("IOError: error reading from file %s: %s", filename, err) } return object.String{Value: string(data)} }