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
8 changes: 8 additions & 0 deletions packages/openapi-ts-tests/main/test/3.1.x.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -787,6 +787,14 @@ describe(`OpenAPI ${version}`, () => {
}),
description: 'transforms an array',
},
{
config: createConfig({
input: 'transformers-discriminator-one-of.json',
output: 'transformers-discriminator-one-of',
plugins: ['@hey-api/client-fetch', '@hey-api/transformers'],
}),
description: 'transforms discriminated union with oneOf',
},
{
config: createConfig({
input: 'type-invalid.json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const postFooResponseTransformer = async (data: any): Promise<PostFooResp
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = BigInt(data.foo.toString());
if (data.foo) {
data.foo = BigInt(data.foo.toString());
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const postFooResponseTransformer = async (data: any): Promise<PostFooResp
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = BigInt(data.foo.toString());
if (data.foo) {
data.foo = BigInt(data.foo.toString());
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const postFooResponseTransformer = async (data: any): Promise<PostFooResp
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = BigInt(data.foo.toString());
if (data.foo) {
data.foo = BigInt(data.foo.toString());
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const postFooResponseTransformer = async (data: any): Promise<PostFooResp
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = BigInt(data.foo.toString());
if (data.foo) {
data.foo = BigInt(data.foo.toString());
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,28 @@ export const getFooResponseTransformer = async (data: any): Promise<GetFooRespon
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = data.foo.map((item: any) => {
return barSchemaResponseTransformer(item);
});
if (data.foo) {
data.foo = data.foo.map((item: any) => {
return barSchemaResponseTransformer(item);
});
}
return data;
};

const barSchemaResponseTransformer = (data: any) => {
data.foo = data.foo.map((item: any) => {
return bazSchemaResponseTransformer(item);
});
if (data.foo) {
data.foo = data.foo.map((item: any) => {
return bazSchemaResponseTransformer(item);
});
}
return data;
};

const bazSchemaResponseTransformer = (data: any) => {
data = quxSchemaResponseTransformer(data);
data.bar = new Date(data.bar);
if (data.bar) {
data.bar = new Date(data.bar);
}
return data;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
import type { GetFooResponse } from './types.gen';

export const getFooResponseTransformer = async (data: any): Promise<GetFooResponse> => {
data.foo = data.foo.map((item: any) => {
item.baz = new Date(item.baz);
return item;
});
if (data.foo) {
data.foo = data.foo.map((item: any) => {
if (item.baz) {
item.baz = new Date(item.baz);
}
return item;
});
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const postFooResponseTransformer = async (data: any): Promise<PostFooResp
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = BigInt(data.foo.toString());
if (data.foo) {
data.foo = BigInt(data.foo.toString());
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const postFooResponseTransformer = async (data: any): Promise<PostFooResp
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = BigInt(data.foo.toString());
if (data.foo) {
data.foo = BigInt(data.foo.toString());
}
return data;
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,28 @@ export const getFooResponseTransformer = async (data: any): Promise<GetFooRespon
};

const fooSchemaResponseTransformer = (data: any) => {
data.foo = data.foo.map((item: any) => {
return barSchemaResponseTransformer(item);
});
if (data.foo) {
data.foo = data.foo.map((item: any) => {
return barSchemaResponseTransformer(item);
});
}
return data;
};

const barSchemaResponseTransformer = (data: any) => {
data.foo = data.foo.map((item: any) => {
return bazSchemaResponseTransformer(item);
});
if (data.foo) {
data.foo = data.foo.map((item: any) => {
return bazSchemaResponseTransformer(item);
});
}
return data;
};

const bazSchemaResponseTransformer = (data: any) => {
data = quxSchemaResponseTransformer(data);
data.bar = new Date(data.bar);
if (data.bar) {
data.bar = new Date(data.bar);
}
return data;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
import type { GetFooResponse } from './types.gen';

export const getFooResponseTransformer = async (data: any): Promise<GetFooResponse> => {
data.foo = data.foo.map((item: any) => {
item.baz = new Date(item.baz);
return item;
});
if (data.foo) {
data.foo = data.foo.map((item: any) => {
if (item.baz) {
item.baz = new Date(item.baz);
}
return item;
});
}
return data;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// This file is auto-generated by @hey-api/openapi-ts

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

/**
* The `createClientConfig()` function will be called on client initialization
* and the returned object will become the client's initial configuration.
*
* You may want to initialize your client this way instead of calling
* `setConfig()`. This is useful for example if you're using Next.js
* to ensure your client always has the correct values.
*/
export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;

export const client = createClient(createConfig<ClientOptions2>());
Loading