这是indexloc提供的服务,不要输入任何密码
Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 65 additions & 65 deletions packages/openapi-ts-tests/sdks/__snapshots__/opencode/flat/sdk.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export const sessionCreate = <ThrowOnError extends boolean = false>(parameters?:
parentID?: string;
title?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "body", key: "parentID" }, { in: "body", key: "title" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "body", key: "parentID" }, { in: "body", key: "title" }] }]);
return (options?.client ?? client).post<SessionCreateResponses, SessionCreateErrors, ThrowOnError>({
url: "/session",
...options,
Expand All @@ -69,7 +69,7 @@ export const sessionCreate = <ThrowOnError extends boolean = false>(parameters?:
export const sessionDelete = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).delete<SessionDeleteResponses, unknown, ThrowOnError>({
url: "/session/{id}",
...options,
Expand All @@ -83,7 +83,7 @@ export const sessionDelete = <ThrowOnError extends boolean = false>(parameters:
export const sessionGet = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).get<SessionGetResponses, unknown, ThrowOnError>({
url: "/session/{id}",
...options,
Expand All @@ -98,7 +98,7 @@ export const sessionUpdate = <ThrowOnError extends boolean = false>(parameters:
id: string;
title?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }, { in: "body", key: "title" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }, { in: "body", key: "title" }] }]);
return (options?.client ?? client).patch<SessionUpdateResponses, unknown, ThrowOnError>({
url: "/session/{id}",
...options,
Expand All @@ -117,7 +117,7 @@ export const sessionUpdate = <ThrowOnError extends boolean = false>(parameters:
export const sessionChildren = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).get<SessionChildrenResponses, unknown, ThrowOnError>({
url: "/session/{id}/children",
...options,
Expand All @@ -134,12 +134,12 @@ export const sessionInit = <ThrowOnError extends boolean = false>(parameters: {
providerID?: string;
modelID?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "path", key: "id" },
{ in: "body", key: "messageID" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "path", key: "id" },
{ in: "body", key: "messageID" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" }
] }]);
return (options?.client ?? client).post<SessionInitResponses, unknown, ThrowOnError>({
url: "/session/{id}/init",
...options,
Expand All @@ -158,7 +158,7 @@ export const sessionInit = <ThrowOnError extends boolean = false>(parameters: {
export const sessionAbort = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).post<SessionAbortResponses, unknown, ThrowOnError>({
url: "/session/{id}/abort",
...options,
Expand All @@ -172,7 +172,7 @@ export const sessionAbort = <ThrowOnError extends boolean = false>(parameters: {
export const sessionUnshare = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).delete<SessionUnshareResponses, unknown, ThrowOnError>({
url: "/session/{id}/share",
...options,
Expand All @@ -186,7 +186,7 @@ export const sessionUnshare = <ThrowOnError extends boolean = false>(parameters:
export const sessionShare = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).post<SessionShareResponses, unknown, ThrowOnError>({
url: "/session/{id}/share",
...options,
Expand All @@ -202,11 +202,11 @@ export const sessionSummarize = <ThrowOnError extends boolean = false>(parameter
providerID?: string;
modelID?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "path", key: "id" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "path", key: "id" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" }
] }]);
return (options?.client ?? client).post<SessionSummarizeResponses, unknown, ThrowOnError>({
url: "/session/{id}/summarize",
...options,
Expand All @@ -225,7 +225,7 @@ export const sessionSummarize = <ThrowOnError extends boolean = false>(parameter
export const sessionMessages = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).get<SessionMessagesResponses, unknown, ThrowOnError>({
url: "/session/{id}/message",
...options,
Expand Down Expand Up @@ -254,16 +254,16 @@ export const sessionChat = <ThrowOnError extends boolean = false>(parameters: {
type: "agent";
} & AgentPartInput)>;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "path", key: "id" },
{ in: "body", key: "messageID" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" },
{ in: "body", key: "agent" },
{ in: "body", key: "system" },
{ in: "body", key: "tools" },
{ in: "body", key: "parts" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "path", key: "id" },
{ in: "body", key: "messageID" },
{ in: "body", key: "providerID" },
{ in: "body", key: "modelID" },
{ in: "body", key: "agent" },
{ in: "body", key: "system" },
{ in: "body", key: "tools" },
{ in: "body", key: "parts" }
] }]);
return (options?.client ?? client).post<SessionChatResponses, unknown, ThrowOnError>({
url: "/session/{id}/message",
...options,
Expand All @@ -283,7 +283,7 @@ export const sessionMessage = <ThrowOnError extends boolean = false>(parameters:
id: string;
messageID: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }, { in: "path", key: "messageID" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }, { in: "path", key: "messageID" }] }]);
return (options?.client ?? client).get<SessionMessageResponses, unknown, ThrowOnError>({
url: "/session/{id}/message/{messageID}",
...options,
Expand All @@ -299,11 +299,11 @@ export const sessionShell = <ThrowOnError extends boolean = false>(parameters: {
agent?: string;
command?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "path", key: "id" },
{ in: "body", key: "agent" },
{ in: "body", key: "command" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "path", key: "id" },
{ in: "body", key: "agent" },
{ in: "body", key: "command" }
] }]);
return (options?.client ?? client).post<SessionShellResponses, unknown, ThrowOnError>({
url: "/session/{id}/shell",
...options,
Expand All @@ -324,11 +324,11 @@ export const sessionRevert = <ThrowOnError extends boolean = false>(parameters:
messageID?: string;
partID?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "path", key: "id" },
{ in: "body", key: "messageID" },
{ in: "body", key: "partID" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "path", key: "id" },
{ in: "body", key: "messageID" },
{ in: "body", key: "partID" }
] }]);
return (options?.client ?? client).post<SessionRevertResponses, unknown, ThrowOnError>({
url: "/session/{id}/revert",
...options,
Expand All @@ -347,7 +347,7 @@ export const sessionRevert = <ThrowOnError extends boolean = false>(parameters:
export const sessionUnrevert = <ThrowOnError extends boolean = false>(parameters: {
id: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }] }]);
return (options?.client ?? client).post<SessionUnrevertResponses, unknown, ThrowOnError>({
url: "/session/{id}/unrevert",
...options,
Expand All @@ -363,11 +363,11 @@ export const postSessionByIdPermissionsByPermissionId = <ThrowOnError extends bo
permissionID: string;
response?: "once" | "always" | "reject";
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "path", key: "id" },
{ in: "path", key: "permissionID" },
{ in: "body", key: "response" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "path", key: "id" },
{ in: "path", key: "permissionID" },
{ in: "body", key: "response" }
] }]);
return (options?.client ?? client).post<PostSessionByIdPermissionsByPermissionIdResponses, unknown, ThrowOnError>({
url: "/session/{id}/permissions/{permissionID}",
...options,
Expand All @@ -391,7 +391,7 @@ export const configProviders = <ThrowOnError extends boolean = false>(options?:
export const findText = <ThrowOnError extends boolean = false>(parameters: {
pattern: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "query", key: "pattern" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "pattern" }] }]);
return (options?.client ?? client).get<FindTextResponses, unknown, ThrowOnError>({
url: "/find",
...options,
Expand All @@ -405,7 +405,7 @@ export const findText = <ThrowOnError extends boolean = false>(parameters: {
export const findFiles = <ThrowOnError extends boolean = false>(parameters: {
query: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "query", key: "query" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "query" }] }]);
return (options?.client ?? client).get<FindFilesResponses, unknown, ThrowOnError>({
url: "/find/file",
...options,
Expand All @@ -419,7 +419,7 @@ export const findFiles = <ThrowOnError extends boolean = false>(parameters: {
export const findSymbols = <ThrowOnError extends boolean = false>(parameters: {
query: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "query", key: "query" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "query" }] }]);
return (options?.client ?? client).get<FindSymbolsResponses, unknown, ThrowOnError>({
url: "/find/symbol",
...options,
Expand All @@ -433,7 +433,7 @@ export const findSymbols = <ThrowOnError extends boolean = false>(parameters: {
export const fileRead = <ThrowOnError extends boolean = false>(parameters: {
path: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "query", key: "path" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "path" }] }]);
return (options?.client ?? client).get<FileReadResponses, unknown, ThrowOnError>({
url: "/file",
...options,
Expand All @@ -457,12 +457,12 @@ export const appLog = <ThrowOnError extends boolean = false>(parameters?: {
[key: string]: unknown;
};
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "body", key: "service" },
{ in: "body", key: "level" },
{ in: "body", key: "message" },
{ in: "body", key: "extra" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "body", key: "service" },
{ in: "body", key: "level" },
{ in: "body", key: "message" },
{ in: "body", key: "extra" }
] }]);
return (options?.client ?? client).post<AppLogResponses, unknown, ThrowOnError>({
url: "/log",
...options,
Expand All @@ -486,7 +486,7 @@ export const appAgents = <ThrowOnError extends boolean = false>(options?: Option
export const tuiAppendPrompt = <ThrowOnError extends boolean = false>(parameters?: {
text?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "body", key: "text" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "body", key: "text" }] }]);
return (options?.client ?? client).post<TuiAppendPromptResponses, unknown, ThrowOnError>({
url: "/tui/append-prompt",
...options,
Expand Down Expand Up @@ -535,7 +535,7 @@ export const tuiClearPrompt = <ThrowOnError extends boolean = false>(options?: O
export const tuiExecuteCommand = <ThrowOnError extends boolean = false>(parameters?: {
command?: string;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "body", key: "command" }]);
const params = buildClientParams([parameters], [{ args: [{ in: "body", key: "command" }] }]);
return (options?.client ?? client).post<TuiExecuteCommandResponses, unknown, ThrowOnError>({
url: "/tui/execute-command",
...options,
Expand All @@ -556,11 +556,11 @@ export const tuiShowToast = <ThrowOnError extends boolean = false>(parameters?:
message?: string;
variant?: "info" | "success" | "warning" | "error";
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [
{ in: "body", key: "title" },
{ in: "body", key: "message" },
{ in: "body", key: "variant" }
]);
const params = buildClientParams([parameters], [{ args: [
{ in: "body", key: "title" },
{ in: "body", key: "message" },
{ in: "body", key: "variant" }
] }]);
return (options?.client ?? client).post<TuiShowToastResponses, unknown, ThrowOnError>({
url: "/tui/show-toast",
...options,
Expand All @@ -580,7 +580,7 @@ export const authSet = <ThrowOnError extends boolean = false>(parameters: {
id: string;
auth?: Auth;
}, options?: Options<never, ThrowOnError>) => {
const params = buildClientParams([parameters], [{ in: "path", key: "id" }, {}]);
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "id" }, {}] }]);
return (options?.client ?? client).put<AuthSetResponses, AuthSetErrors, ThrowOnError>({
url: "/auth/{id}",
...options,
Expand Down
43 changes: 34 additions & 9 deletions packages/openapi-ts/src/plugins/@hey-api/sdk/shared/operation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -544,19 +544,44 @@ export const operationStatements = ({
for (const argName of opParameters.argNames) {
args.push($(argName));
}
for (const field of opParameters.fields) {
const shape = $.object();
if ('in' in field) {
shape.prop('in', $.literal(field.in));
if (field.key) {
shape.prop('key', $.literal(field.key));

// When using flat params, fields need to be wrapped in an args array
if (plugin.config.paramsStructure === 'flat') {
const fieldShapes: Array<ReturnType<typeof $.object>> = [];
for (const field of opParameters.fields) {
const shape = $.object();
if ('in' in field) {
shape.prop('in', $.literal(field.in));
if (field.key) {
shape.prop('key', $.literal(field.key));
}
if (field.map) {
shape.prop('map', $.literal(field.map));
}
}
if (field.map) {
shape.prop('map', $.literal(field.map));
fieldShapes.push(shape);
}
// Wrap all fields in an args array for flat params
const argsWrapper = $.object();
argsWrapper.prop('args', $.array(...fieldShapes));
config.push(argsWrapper);
} else {
// For grouped params, generate fields as before
for (const field of opParameters.fields) {
const shape = $.object();
if ('in' in field) {
shape.prop('in', $.literal(field.in));
if (field.key) {
shape.prop('key', $.literal(field.key));
}
if (field.map) {
shape.prop('map', $.literal(field.map));
}
}
config.push(shape);
}
config.push(shape);
}

const symbol = plugin.referenceSymbol({
category: 'external',
resource: 'client.buildClientParams',
Expand Down