[gold] rpc_types.ts: Add RefClosest type union.

Bug: skia:9525
Change-Id: I1359200746da246305b4e711cb331d299f79109c
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/303346
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
diff --git a/golden/go/search/common/types.go b/golden/go/search/common/types.go
index 3e9003f..5fddf11 100644
--- a/golden/go/search/common/types.go
+++ b/golden/go/search/common/types.go
@@ -15,3 +15,6 @@
 	// NoRef indicates no other digests match.
 	NoRef = RefClosest("")
 )
+
+// AllRefClosest is a list of all possible RefClosest values.
+var AllRefClosest = []RefClosest{PositiveRef, NegativeRef, NoRef}
diff --git a/golden/go/web/frontend/generate_typescript_rpc_types/main.go b/golden/go/web/frontend/generate_typescript_rpc_types/main.go
index 244f4c7..97f27bb 100644
--- a/golden/go/web/frontend/generate_typescript_rpc_types/main.go
+++ b/golden/go/web/frontend/generate_typescript_rpc_types/main.go
@@ -8,6 +8,7 @@
 	"go.skia.org/infra/go/skerr"
 	"go.skia.org/infra/go/sklog"
 	"go.skia.org/infra/go/util"
+	"go.skia.org/infra/golden/go/search/common"
 	search_frontend "go.skia.org/infra/golden/go/search/frontend"
 	"go.skia.org/infra/golden/go/status"
 	"go.skia.org/infra/golden/go/tiling"
@@ -47,6 +48,10 @@
 		return skerr.Wrap(err)
 	}
 
+	if err := generator.AddUnionWithName(common.AllRefClosest, "RefClosest"); err != nil {
+		return skerr.Wrap(err)
+	}
+
 	// Response for the /json/trstatus RPC endpoint.
 	if err := generator.AddWithName(status.GUIStatus{}, "StatusResponse"); err != nil {
 		return skerr.Wrap(err)
diff --git a/golden/modules/rpc_types.ts b/golden/modules/rpc_types.ts
index 76b8de2..8eba6d0 100644
--- a/golden/modules/rpc_types.ts
+++ b/golden/modules/rpc_types.ts
@@ -131,6 +131,6 @@
 
 export type TraceID = string;
 
-export type RefClosest = string;
+export type RefClosest = "pos" | "neg" | "";
 
 export type ID = string;