Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
* chore(deps): bump the minor-patch group with 6 updates Bumps the minor-patch group with 6 updates: | Package | From | To | | --- | --- | --- | | @scalar/hono-api-reference | `0.9.44` | `0.9.45` | | @tanstack/react-router | `1.162.8` | `1.162.9` | | @tanstack/react-router-ssr-query | `1.162.8` | `1.162.9` | | @tanstack/react-start | `1.162.8` | `1.162.9` | | @hey-api/openapi-ts | `0.92.4` | `0.93.0` | | oxlint-tsgolint | `0.14.2` | `0.15.0` | Updates `@scalar/hono-api-reference` from 0.9.44 to 0.9.45 Updates `@tanstack/react-router` from 1.162.8 to 1.162.9 Updates `@tanstack/react-router-ssr-query` from 1.162.8 to 1.162.9 Updates `@tanstack/react-start` from 1.162.8 to 1.162.9 Updates `@hey-api/openapi-ts` from 0.92.4 to 0.93.0 Updates `oxlint-tsgolint` from 0.14.2 to 0.15.0 --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.9.45 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: "@tanstack/react-router" dependency-version: 1.162.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: "@tanstack/react-router-ssr-query" dependency-version: 1.162.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: "@tanstack/react-start" dependency-version: 1.162.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: "@hey-api/openapi-ts" dependency-version: 0.93.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-patch - dependency-name: oxlint-tsgolint dependency-version: 0.15.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-patch ... Signed-off-by: dependabot[bot] <support@github.com> * chore: gen-api client --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicolas Meienberger <github@thisprops.com>
138 lines
3 KiB
TypeScript
138 lines
3 KiB
TypeScript
// @ts-nocheck
|
|
// This file is auto-generated by @hey-api/openapi-ts
|
|
|
|
import type { BodySerializer, QuerySerializer } from "./bodySerializer.gen";
|
|
import {
|
|
type ArraySeparatorStyle,
|
|
serializeArrayParam,
|
|
serializeObjectParam,
|
|
serializePrimitiveParam,
|
|
} from "./pathSerializer.gen";
|
|
|
|
export interface PathSerializer {
|
|
path: Record<string, unknown>;
|
|
url: string;
|
|
}
|
|
|
|
export const PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
|
|
export const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {
|
|
let url = _url;
|
|
const matches = _url.match(PATH_PARAM_RE);
|
|
if (matches) {
|
|
for (const match of matches) {
|
|
let explode = false;
|
|
let name = match.substring(1, match.length - 1);
|
|
let style: ArraySeparatorStyle = "simple";
|
|
|
|
if (name.endsWith("*")) {
|
|
explode = true;
|
|
name = name.substring(0, name.length - 1);
|
|
}
|
|
|
|
if (name.startsWith(".")) {
|
|
name = name.substring(1);
|
|
style = "label";
|
|
} else if (name.startsWith(";")) {
|
|
name = name.substring(1);
|
|
style = "matrix";
|
|
}
|
|
|
|
const value = path[name];
|
|
|
|
if (value === undefined || value === null) {
|
|
continue;
|
|
}
|
|
|
|
if (Array.isArray(value)) {
|
|
url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
|
|
continue;
|
|
}
|
|
|
|
if (typeof value === "object") {
|
|
url = url.replace(
|
|
match,
|
|
serializeObjectParam({
|
|
explode,
|
|
name,
|
|
style,
|
|
value: value as Record<string, unknown>,
|
|
valueOnly: true,
|
|
}),
|
|
);
|
|
continue;
|
|
}
|
|
|
|
if (style === "matrix") {
|
|
url = url.replace(
|
|
match,
|
|
`;${serializePrimitiveParam({
|
|
name,
|
|
value: value as string,
|
|
})}`,
|
|
);
|
|
continue;
|
|
}
|
|
|
|
const replaceValue = encodeURIComponent(style === "label" ? `.${value as string}` : (value as string));
|
|
url = url.replace(match, replaceValue);
|
|
}
|
|
}
|
|
return url;
|
|
};
|
|
|
|
export const getUrl = ({
|
|
baseUrl,
|
|
path,
|
|
query,
|
|
querySerializer,
|
|
url: _url,
|
|
}: {
|
|
baseUrl?: string;
|
|
path?: Record<string, unknown>;
|
|
query?: Record<string, unknown>;
|
|
querySerializer: QuerySerializer;
|
|
url: string;
|
|
}) => {
|
|
const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
|
|
let url = (baseUrl ?? "") + pathUrl;
|
|
if (path) {
|
|
url = defaultPathSerializer({ path, url });
|
|
}
|
|
let search = query ? querySerializer(query) : "";
|
|
if (search.startsWith("?")) {
|
|
search = search.substring(1);
|
|
}
|
|
if (search) {
|
|
url += `?${search}`;
|
|
}
|
|
return url;
|
|
};
|
|
|
|
export function getValidRequestBody(options: {
|
|
body?: unknown;
|
|
bodySerializer?: BodySerializer | null;
|
|
serializedBody?: unknown;
|
|
}) {
|
|
const hasBody = options.body !== undefined;
|
|
const isSerializedBody = hasBody && options.bodySerializer;
|
|
|
|
if (isSerializedBody) {
|
|
if ("serializedBody" in options) {
|
|
const hasSerializedBody = options.serializedBody !== undefined && options.serializedBody !== "";
|
|
|
|
return hasSerializedBody ? options.serializedBody : null;
|
|
}
|
|
|
|
// not all clients implement a serializedBody property (i.e. client-axios)
|
|
return options.body !== "" ? options.body : null;
|
|
}
|
|
|
|
// plain/text body
|
|
if (hasBody) {
|
|
return options.body;
|
|
}
|
|
|
|
// no body was provided
|
|
return undefined;
|
|
}
|