mirror of https://github.com/coder/coder.git
fix(scripts/apitypings): force health.Message and health.Severity to correct types (#11043)
* Force typegen types for some fields of derp health report * Explicitly allocate slices for RegionReport.{Errors,Warnings} to avoid nulls in API response
This commit is contained in:
parent
a235644046
commit
2e4e0b2d2c
|
@ -54,7 +54,7 @@ func (*AGPLWorkspaceProxiesFetchUpdater) Update(context.Context) error {
|
||||||
func (r *WorkspaceProxyReport) Run(ctx context.Context, opts *WorkspaceProxyReportOptions) {
|
func (r *WorkspaceProxyReport) Run(ctx context.Context, opts *WorkspaceProxyReportOptions) {
|
||||||
r.Healthy = true
|
r.Healthy = true
|
||||||
r.Severity = health.SeverityOK
|
r.Severity = health.SeverityOK
|
||||||
r.Warnings = []health.Message{}
|
r.Warnings = make([]health.Message, 0)
|
||||||
r.Dismissed = opts.Dismissed
|
r.Dismissed = opts.Dismissed
|
||||||
|
|
||||||
if opts.WorkspaceProxiesFetchUpdater == nil {
|
if opts.WorkspaceProxiesFetchUpdater == nil {
|
||||||
|
|
|
@ -945,6 +945,12 @@ func convertProxy(p database.WorkspaceProxy, status proxyhealth.ProxyStatus) cod
|
||||||
if status.Status == "" {
|
if status.Status == "" {
|
||||||
status.Status = proxyhealth.Unknown
|
status.Status = proxyhealth.Unknown
|
||||||
}
|
}
|
||||||
|
if status.Report.Errors == nil {
|
||||||
|
status.Report.Errors = make([]string, 0)
|
||||||
|
}
|
||||||
|
if status.Report.Warnings == nil {
|
||||||
|
status.Report.Warnings = make([]string, 0)
|
||||||
|
}
|
||||||
return codersdk.WorkspaceProxy{
|
return codersdk.WorkspaceProxy{
|
||||||
Region: convertRegion(p, status),
|
Region: convertRegion(p, status),
|
||||||
DerpEnabled: p.DerpEnabled,
|
DerpEnabled: p.DerpEnabled,
|
||||||
|
|
|
@ -867,10 +867,14 @@ func (g *Generator) typescriptType(ty types.Type) (TypescriptType, error) {
|
||||||
return TypescriptType{ValueType: "Record<string, string>"}, nil
|
return TypescriptType{ValueType: "Record<string, string>"}, nil
|
||||||
case "github.com/coder/coder/v2/cli/clibase.URL":
|
case "github.com/coder/coder/v2/cli/clibase.URL":
|
||||||
return TypescriptType{ValueType: "string"}, nil
|
return TypescriptType{ValueType: "string"}, nil
|
||||||
// XXX: For some reason, the type generator generates this as `any`
|
// XXX: For some reason, the type generator generates these as `any`
|
||||||
// so explicitly specifying the correct generic TS type.
|
// so explicitly specifying the correct generic TS type.
|
||||||
case "github.com/coder/coder/v2/codersdk.RegionsResponse[github.com/coder/coder/v2/codersdk.WorkspaceProxy]":
|
case "github.com/coder/coder/v2/codersdk.RegionsResponse[github.com/coder/coder/v2/codersdk.WorkspaceProxy]":
|
||||||
return TypescriptType{ValueType: "RegionsResponse<WorkspaceProxy>"}, nil
|
return TypescriptType{ValueType: "RegionsResponse<WorkspaceProxy>"}, nil
|
||||||
|
case "github.com/coder/coder/v2/coderd/healthcheck/health.Message":
|
||||||
|
return TypescriptType{ValueType: "HealthMessage"}, nil
|
||||||
|
case "github.com/coder/coder/v2/coderd/healthcheck/health.Severity":
|
||||||
|
return TypescriptType{ValueType: "HealthSeverity"}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Some hard codes are a bit trickier.
|
// Some hard codes are a bit trickier.
|
||||||
|
|
|
@ -2257,11 +2257,8 @@ export const HealthSeveritys: HealthSeverity[] = ["error", "ok", "warning"];
|
||||||
// From derphealth/derp.go
|
// From derphealth/derp.go
|
||||||
export interface DerphealthNodeReport {
|
export interface DerphealthNodeReport {
|
||||||
readonly healthy: boolean;
|
readonly healthy: boolean;
|
||||||
// This is likely an enum in an external package ("github.com/coder/coder/v2/coderd/healthcheck/health.Severity")
|
readonly severity: HealthSeverity;
|
||||||
readonly severity: string;
|
readonly warnings: HealthMessage[];
|
||||||
// Named type "github.com/coder/coder/v2/coderd/healthcheck/health.Message" unknown, using "any"
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
|
||||||
readonly warnings: any[];
|
|
||||||
// Named type "tailscale.com/tailcfg.DERPNode" unknown, using "any"
|
// Named type "tailscale.com/tailcfg.DERPNode" unknown, using "any"
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
||||||
readonly node?: any;
|
readonly node?: any;
|
||||||
|
@ -2281,11 +2278,8 @@ export interface DerphealthNodeReport {
|
||||||
// From derphealth/derp.go
|
// From derphealth/derp.go
|
||||||
export interface DerphealthRegionReport {
|
export interface DerphealthRegionReport {
|
||||||
readonly healthy: boolean;
|
readonly healthy: boolean;
|
||||||
// This is likely an enum in an external package ("github.com/coder/coder/v2/coderd/healthcheck/health.Severity")
|
readonly severity: HealthSeverity;
|
||||||
readonly severity: string;
|
readonly warnings: HealthMessage[];
|
||||||
// Named type "github.com/coder/coder/v2/coderd/healthcheck/health.Message" unknown, using "any"
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
|
||||||
readonly warnings: any[];
|
|
||||||
// Named type "tailscale.com/tailcfg.DERPRegion" unknown, using "any"
|
// Named type "tailscale.com/tailcfg.DERPRegion" unknown, using "any"
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
||||||
readonly region?: any;
|
readonly region?: any;
|
||||||
|
@ -2296,11 +2290,8 @@ export interface DerphealthRegionReport {
|
||||||
// From derphealth/derp.go
|
// From derphealth/derp.go
|
||||||
export interface DerphealthReport {
|
export interface DerphealthReport {
|
||||||
readonly healthy: boolean;
|
readonly healthy: boolean;
|
||||||
// This is likely an enum in an external package ("github.com/coder/coder/v2/coderd/healthcheck/health.Severity")
|
readonly severity: HealthSeverity;
|
||||||
readonly severity: string;
|
readonly warnings: HealthMessage[];
|
||||||
// Named type "github.com/coder/coder/v2/coderd/healthcheck/health.Message" unknown, using "any"
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- External type
|
|
||||||
readonly warnings: any[];
|
|
||||||
readonly dismissed: boolean;
|
readonly dismissed: boolean;
|
||||||
readonly regions: Record<number, DerphealthRegionReport>;
|
readonly regions: Record<number, DerphealthRegionReport>;
|
||||||
// Named type "tailscale.com/net/netcheck.Report" unknown, using "any"
|
// Named type "tailscale.com/net/netcheck.Report" unknown, using "any"
|
||||||
|
|
|
@ -131,7 +131,12 @@ export const DERPWarnings: Story = {
|
||||||
severity: "warning",
|
severity: "warning",
|
||||||
derp: {
|
derp: {
|
||||||
...MockHealth.derp,
|
...MockHealth.derp,
|
||||||
warnings: ["foobar"],
|
warnings: [
|
||||||
|
{
|
||||||
|
message: "derp derp derp",
|
||||||
|
code: "EDERP01",
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue