Source workspace path pattern (#26632)
This commit is contained in:
@@ -4,9 +4,9 @@ import { Identifier } from "@/id/id"
|
||||
import { zod, ZodOverride } from "@opencode-ai/core/effect-zod"
|
||||
import { withStatics } from "@opencode-ai/core/schema"
|
||||
|
||||
const workspaceIdSchema = Schema.String.annotate({ [ZodOverride]: Identifier.schema("workspace") }).pipe(
|
||||
Schema.brand("WorkspaceID"),
|
||||
)
|
||||
const workspaceIdSchema = Schema.String.check(Schema.isStartsWith("wrk"))
|
||||
.annotate({ [ZodOverride]: Identifier.schema("workspace") })
|
||||
.pipe(Schema.brand("WorkspaceID"))
|
||||
|
||||
export type WorkspaceID = typeof workspaceIdSchema.Type
|
||||
|
||||
|
||||
@@ -478,7 +478,7 @@ function flattenOptions(options: OpenApiSchema[] | undefined): OpenApiSchema[] |
|
||||
function normalizeParameter(param: OpenApiParameter, route: string) {
|
||||
if (!param.schema || typeof param.schema !== "object") return
|
||||
if (param.in === "path") {
|
||||
param.schema = pathParameterSchema(route, param.name) ?? stripOptionalNull(param.schema)
|
||||
param.schema = stripOptionalNull(param.schema)
|
||||
return
|
||||
}
|
||||
if (param.in === "query") {
|
||||
@@ -497,12 +497,6 @@ function normalizeParameter(param: OpenApiParameter, route: string) {
|
||||
param.schema = stripOptionalNull(param.schema)
|
||||
}
|
||||
|
||||
function pathParameterSchema(route: string, name: string) {
|
||||
if (name === "id" && route.startsWith("DELETE /experimental/workspace/")) return { type: "string", pattern: "^wrk.*" }
|
||||
if (name === "id" && route.startsWith("POST /experimental/workspace/")) return { type: "string", pattern: "^wrk.*" }
|
||||
return undefined
|
||||
}
|
||||
|
||||
export const PublicApi = OpenCodeHttpApi.annotateMerge(
|
||||
OpenApi.annotations({
|
||||
title: "opencode",
|
||||
|
||||
Reference in New Issue
Block a user