Skip to content
Open
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions examples/openapi-ts-angular-common/openapi-ts.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig } from '@hey-api/openapi-ts';
import { defineConfig, type UserConfig } from '@hey-api/openapi-ts';

export default defineConfig({
const config: Promise<UserConfig> = defineConfig({
input:
'https://raw.githubusercontent.com/swagger-api/swagger-petstore/master/src/main/resources/openapi.yaml',
logs: {
Expand Down Expand Up @@ -35,3 +35,5 @@ export default defineConfig({
},
],
});

export default config;
4 changes: 2 additions & 2 deletions examples/openapi-ts-angular-common/src/client/client.gen.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file is auto-generated by @hey-api/openapi-ts

import { type ClientOptions, type Config, createClient, createConfig } from './client';
import { type Client, type ClientOptions, type Config, createClient, createConfig } from './client';
import type { ClientOptions as ClientOptions2 } from './types.gen';

/**
Expand All @@ -15,7 +15,7 @@ export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (
override?: Config<ClientOptions & T>,
) => Config<Required<ClientOptions> & T>;

export const client = createClient(
export const client: Client = createClient(
createConfig<ClientOptions2>({
baseUrl: 'https://petstore3.swagger.io/api/v3',
throwOnError: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export {
} from '../core/bodySerializer.gen';
export { buildClientParams } from '../core/params.gen';
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
export type { ServerSentEventsResult } from '../core/serverSentEvents.gen';
export { createClient } from './client.gen';
export type {
Client,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {
export const createQuerySerializer = <T = unknown>({
parameters = {},
...args
}: QuerySerializerOptions = {}) => {
const querySerializer = (queryParams: T) => {
}: QuerySerializerOptions = {}): ((queryParams: T) => string) => {
const querySerializer = (queryParams: T): string => {
const search: string[] = [];
if (queryParams && typeof queryParams === 'object') {
for (const name in queryParams) {
Expand Down Expand Up @@ -184,7 +184,7 @@ export const setAuthParams = async (
Pick<RequestOptions, 'auth' | 'query'> & {
headers: HttpHeaders;
},
) => {
): Promise<void> => {
for (const auth of options.security) {
const token = await getAuthToken(auth, options.auth);

Expand Down Expand Up @@ -240,7 +240,7 @@ export const getUrl = ({
query?: Record<string, unknown>;
querySerializer: QuerySerializer;
url: string;
}) => {
}): string => {
const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;
let url = (baseUrl ?? '') + pathUrl;
if (path) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ const stripEmptySlots = (params: Params) => {
}
};

export const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {
export const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig): Params => {
const params: Params = {
body: {},
headers: {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ interface SerializePrimitiveParam extends SerializePrimitiveOptions {
value: string;
}

export const separatorArrayExplode = (style: ArraySeparatorStyle) => {
export const separatorArrayExplode = (style: ArraySeparatorStyle): '.' | ';' | ',' | '&' => {
switch (style) {
case 'label':
return '.';
Expand All @@ -38,7 +38,7 @@ export const separatorArrayExplode = (style: ArraySeparatorStyle) => {
}
};

export const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {
export const separatorArrayNoExplode = (style: ArraySeparatorStyle): ',' | '|' | '%20' => {
switch (style) {
case 'form':
return ',';
Expand All @@ -51,7 +51,7 @@ export const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {
}
};

export const separatorObjectExplode = (style: ObjectSeparatorStyle) => {
export const separatorObjectExplode = (style: ObjectSeparatorStyle): '.' | ';' | ',' | '&' => {
switch (style) {
case 'label':
return '.';
Expand All @@ -72,7 +72,7 @@ export const serializeArrayParam = ({
value,
}: SerializeOptions<ArraySeparatorStyle> & {
value: unknown[];
}) => {
}): string => {
if (!explode) {
const joinedValues = (
allowReserved ? value : value.map((v) => encodeURIComponent(v as string))
Expand Down Expand Up @@ -110,7 +110,7 @@ export const serializePrimitiveParam = ({
allowReserved,
name,
value,
}: SerializePrimitiveParam) => {
}: SerializePrimitiveParam): string => {
if (value === undefined || value === null) {
return '';
}
Expand All @@ -134,7 +134,7 @@ export const serializeObjectParam = ({
}: SerializeOptions<ObjectSeparatorStyle> & {
value: Record<string, unknown> | Date;
valueOnly?: boolean;
}) => {
}): string => {
if (value instanceof Date) {
return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export type JsonValue =
/**
* Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes.
*/
export const queryKeyJsonReplacer = (_key: string, value: unknown) => {
export const queryKeyJsonReplacer = (_key: string, value: unknown): unknown | undefined => {
if (value === undefined || typeof value === 'function' || typeof value === 'symbol') {
return undefined;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ export interface PathSerializer {
url: string;
}

export const PATH_PARAM_RE = /\{[^{}]+\}/g;
export const PATH_PARAM_RE: RegExp = /\{[^{}]+\}/g;

export const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {
export const defaultPathSerializer = ({ path, url: _url }: PathSerializer): string => {
let url = _url;
const matches = _url.match(PATH_PARAM_RE);
if (matches) {
Expand Down Expand Up @@ -94,7 +94,7 @@ export const getUrl = ({
query?: Record<string, unknown>;
querySerializer: QuerySerializer;
url: string;
}) => {
}): string => {
const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;
let url = (baseUrl ?? '') + pathUrl;
if (path) {
Expand All @@ -114,7 +114,7 @@ export function getValidRequestBody(options: {
body?: unknown;
bodySerializer?: BodySerializer | null;
serializedBody?: unknown;
}) {
}): unknown {
const hasBody = options.body !== undefined;
const isSerializedBody = hasBody && options.bodySerializer;

Expand Down
45 changes: 25 additions & 20 deletions examples/openapi-ts-angular-common/src/client/sdk.gen.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file is auto-generated by @hey-api/openapi-ts

import type { Client, Options as Options2, TDataShape } from './client';
import type { Client, Options as Options2, RequestResult, TDataShape } from './client';
import { client } from './client.gen';
import type {
AddPetData,
Expand Down Expand Up @@ -87,7 +87,7 @@ export type Options<
*/
export const addPet = <ThrowOnError extends boolean = true>(
options: Options<AddPetData, ThrowOnError>,
) =>
): RequestResult<AddPetResponses, AddPetErrors, ThrowOnError, 'data'> =>
(options.client ?? client).post<AddPetResponses, AddPetErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
security: [{ scheme: 'bearer', type: 'http' }],
Expand All @@ -106,7 +106,7 @@ export const addPet = <ThrowOnError extends boolean = true>(
*/
export const updatePet = <ThrowOnError extends boolean = true>(
options: Options<UpdatePetData, ThrowOnError>,
) =>
): RequestResult<UpdatePetResponses, UpdatePetErrors, ThrowOnError, 'data'> =>
(options.client ?? client).put<UpdatePetResponses, UpdatePetErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
security: [{ scheme: 'bearer', type: 'http' }],
Expand All @@ -125,7 +125,7 @@ export const updatePet = <ThrowOnError extends boolean = true>(
*/
export const findPetsByStatus = <ThrowOnError extends boolean = true>(
options: Options<FindPetsByStatusData, ThrowOnError>,
) =>
): RequestResult<FindPetsByStatusResponses, FindPetsByStatusErrors, ThrowOnError, 'data'> =>
(options.client ?? client).get<
FindPetsByStatusResponses,
FindPetsByStatusErrors,
Expand All @@ -145,7 +145,7 @@ export const findPetsByStatus = <ThrowOnError extends boolean = true>(
*/
export const findPetsByTags = <ThrowOnError extends boolean = true>(
options: Options<FindPetsByTagsData, ThrowOnError>,
) =>
): RequestResult<FindPetsByTagsResponses, FindPetsByTagsErrors, ThrowOnError, 'data'> =>
(options.client ?? client).get<
FindPetsByTagsResponses,
FindPetsByTagsErrors,
Expand All @@ -165,7 +165,7 @@ export const findPetsByTags = <ThrowOnError extends boolean = true>(
*/
export const deletePet = <ThrowOnError extends boolean = true>(
options: Options<DeletePetData, ThrowOnError>,
) =>
): RequestResult<DeletePetResponses, DeletePetErrors, ThrowOnError, 'data'> =>
(options.client ?? client).delete<DeletePetResponses, DeletePetErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
security: [{ scheme: 'bearer', type: 'http' }],
Expand All @@ -180,7 +180,7 @@ export const deletePet = <ThrowOnError extends boolean = true>(
*/
export const getPetById = <ThrowOnError extends boolean = true>(
options: Options<GetPetByIdData, ThrowOnError>,
) =>
): RequestResult<GetPetByIdResponses, GetPetByIdErrors, ThrowOnError, 'data'> =>
(options.client ?? client).get<GetPetByIdResponses, GetPetByIdErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
security: [
Expand All @@ -198,7 +198,7 @@ export const getPetById = <ThrowOnError extends boolean = true>(
*/
export const updatePetWithForm = <ThrowOnError extends boolean = true>(
options: Options<UpdatePetWithFormData, ThrowOnError>,
) =>
): RequestResult<UpdatePetWithFormResponses, UpdatePetWithFormErrors, ThrowOnError, 'data'> =>
(options.client ?? client).post<
UpdatePetWithFormResponses,
UpdatePetWithFormErrors,
Expand All @@ -218,7 +218,7 @@ export const updatePetWithForm = <ThrowOnError extends boolean = true>(
*/
export const uploadFile = <ThrowOnError extends boolean = true>(
options: Options<UploadFileData, ThrowOnError>,
) =>
): RequestResult<UploadFileResponses, UploadFileErrors, ThrowOnError, 'data'> =>
(options.client ?? client).post<UploadFileResponses, UploadFileErrors, ThrowOnError, 'data'>({
bodySerializer: null,
responseStyle: 'data',
Expand All @@ -238,7 +238,7 @@ export const uploadFile = <ThrowOnError extends boolean = true>(
*/
export const getInventory = <ThrowOnError extends boolean = true>(
options?: Options<GetInventoryData, ThrowOnError>,
) =>
): RequestResult<GetInventoryResponses, GetInventoryErrors, ThrowOnError, 'data'> =>
(options?.client ?? client).get<GetInventoryResponses, GetInventoryErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
security: [{ name: 'api_key', type: 'apiKey' }],
Expand All @@ -253,7 +253,7 @@ export const getInventory = <ThrowOnError extends boolean = true>(
*/
export const placeOrder = <ThrowOnError extends boolean = true>(
options?: Options<PlaceOrderData, ThrowOnError>,
) =>
): RequestResult<PlaceOrderResponses, PlaceOrderErrors, ThrowOnError, 'data'> =>
(options?.client ?? client).post<PlaceOrderResponses, PlaceOrderErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/store/order',
Expand All @@ -271,7 +271,7 @@ export const placeOrder = <ThrowOnError extends boolean = true>(
*/
export const deleteOrder = <ThrowOnError extends boolean = true>(
options: Options<DeleteOrderData, ThrowOnError>,
) =>
): RequestResult<DeleteOrderResponses, DeleteOrderErrors, ThrowOnError, 'data'> =>
(options.client ?? client).delete<DeleteOrderResponses, DeleteOrderErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/store/order/{orderId}',
Expand All @@ -285,7 +285,7 @@ export const deleteOrder = <ThrowOnError extends boolean = true>(
*/
export const getOrderById = <ThrowOnError extends boolean = true>(
options: Options<GetOrderByIdData, ThrowOnError>,
) =>
): RequestResult<GetOrderByIdResponses, GetOrderByIdErrors, ThrowOnError, 'data'> =>
(options.client ?? client).get<GetOrderByIdResponses, GetOrderByIdErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/store/order/{orderId}',
Expand All @@ -299,7 +299,7 @@ export const getOrderById = <ThrowOnError extends boolean = true>(
*/
export const createUser = <ThrowOnError extends boolean = true>(
options?: Options<CreateUserData, ThrowOnError>,
) =>
): RequestResult<CreateUserResponses, CreateUserErrors, ThrowOnError, 'data'> =>
(options?.client ?? client).post<CreateUserResponses, CreateUserErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/user',
Expand All @@ -317,7 +317,12 @@ export const createUser = <ThrowOnError extends boolean = true>(
*/
export const createUsersWithListInput = <ThrowOnError extends boolean = true>(
options?: Options<CreateUsersWithListInputData, ThrowOnError>,
) =>
): RequestResult<
CreateUsersWithListInputResponses,
CreateUsersWithListInputErrors,
ThrowOnError,
'data'
> =>
(options?.client ?? client).post<
CreateUsersWithListInputResponses,
CreateUsersWithListInputErrors,
Expand All @@ -340,7 +345,7 @@ export const createUsersWithListInput = <ThrowOnError extends boolean = true>(
*/
export const loginUser = <ThrowOnError extends boolean = true>(
options?: Options<LoginUserData, ThrowOnError>,
) =>
): RequestResult<LoginUserResponses, LoginUserErrors, ThrowOnError, 'data'> =>
(options?.client ?? client).get<LoginUserResponses, LoginUserErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/user/login',
Expand All @@ -354,7 +359,7 @@ export const loginUser = <ThrowOnError extends boolean = true>(
*/
export const logoutUser = <ThrowOnError extends boolean = true>(
options?: Options<LogoutUserData, ThrowOnError>,
) =>
): RequestResult<LogoutUserResponses, LogoutUserErrors, ThrowOnError, 'data'> =>
(options?.client ?? client).get<LogoutUserResponses, LogoutUserErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/user/logout',
Expand All @@ -368,7 +373,7 @@ export const logoutUser = <ThrowOnError extends boolean = true>(
*/
export const deleteUser = <ThrowOnError extends boolean = true>(
options: Options<DeleteUserData, ThrowOnError>,
) =>
): RequestResult<DeleteUserResponses, DeleteUserErrors, ThrowOnError, 'data'> =>
(options.client ?? client).delete<DeleteUserResponses, DeleteUserErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/user/{username}',
Expand All @@ -382,7 +387,7 @@ export const deleteUser = <ThrowOnError extends boolean = true>(
*/
export const getUserByName = <ThrowOnError extends boolean = true>(
options: Options<GetUserByNameData, ThrowOnError>,
) =>
): RequestResult<GetUserByNameResponses, GetUserByNameErrors, ThrowOnError, 'data'> =>
(options.client ?? client).get<GetUserByNameResponses, GetUserByNameErrors, ThrowOnError, 'data'>(
{
responseStyle: 'data',
Expand All @@ -398,7 +403,7 @@ export const getUserByName = <ThrowOnError extends boolean = true>(
*/
export const updateUser = <ThrowOnError extends boolean = true>(
options: Options<UpdateUserData, ThrowOnError>,
) =>
): RequestResult<UpdateUserResponses, UpdateUserErrors, ThrowOnError, 'data'> =>
(options.client ?? client).put<UpdateUserResponses, UpdateUserErrors, ThrowOnError, 'data'>({
responseStyle: 'data',
url: '/user/{username}',
Expand Down
6 changes: 4 additions & 2 deletions examples/openapi-ts-angular/openapi-ts.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig } from '@hey-api/openapi-ts';
import { defineConfig, type UserConfig } from '@hey-api/openapi-ts';

export default defineConfig({
const config: Promise<UserConfig> = defineConfig({
input:
'https://raw.githubusercontent.com/swagger-api/swagger-petstore/master/src/main/resources/openapi.yaml',
logs: {
Expand All @@ -26,3 +26,5 @@ export default defineConfig({
},
],
});

export default config;
4 changes: 2 additions & 2 deletions examples/openapi-ts-angular/src/client/client.gen.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file is auto-generated by @hey-api/openapi-ts

import { type ClientOptions, type Config, createClient, createConfig } from './client';
import { type Client, type ClientOptions, type Config, createClient, createConfig } from './client';
import type { ClientOptions as ClientOptions2 } from './types.gen';

/**
Expand All @@ -15,6 +15,6 @@ export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (
override?: Config<ClientOptions & T>,
) => Config<Required<ClientOptions> & T>;

export const client = createClient(
export const client: Client = createClient(
createConfig<ClientOptions2>({ baseUrl: 'https://petstore3.swagger.io/api/v3' }),
);
1 change: 1 addition & 0 deletions examples/openapi-ts-angular/src/client/client/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export {
} from '../core/bodySerializer.gen';
export { buildClientParams } from '../core/params.gen';
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
export type { ServerSentEventsResult } from '../core/serverSentEvents.gen';
export { createClient } from './client.gen';
export type {
Client,
Expand Down
Loading
Loading