ui/src/pages/namespace/Explorer/Endpoint/EndpointEditor/utils.ts
import { EndpointFormSchema, EndpointFormSchemaType } from "./schema";
import { jsonToYaml, yamlToJsonOrNull } from "../../utils";
import { ZodError } from "zod";
type SerializeReturnType =
| [EndpointFormSchemaType, undefined]
| [undefined, ZodError<EndpointFormSchemaType>];
export const serializeEndpointFile = (yaml: string): SerializeReturnType => {
const json = yamlToJsonOrNull(yaml);
const jsonParsed = EndpointFormSchema.safeParse(json);
if (jsonParsed.success) {
return [jsonParsed.data, undefined];
}
return [undefined, jsonParsed.error];
};
const defaultEndpointFileJson: EndpointFormSchemaType = {
direktiv_api: "endpoint/v1",
};
export const defaultEndpointFileYaml = jsonToYaml(defaultEndpointFileJson);