mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 02:13:33 +00:00
23 lines
623 B
TypeScript
23 lines
623 B
TypeScript
import { AxiosHeaders } from 'axios';
|
|
import { z } from 'zod';
|
|
|
|
// Since ts-rest client returns a strict response type, we need to add the headers to the body object
|
|
export const resultWithHeaders = <ItemType extends z.ZodTypeAny>(itemSchema: ItemType) => {
|
|
return z.object({
|
|
data: itemSchema,
|
|
headers: z.instanceof(AxiosHeaders),
|
|
});
|
|
};
|
|
|
|
export const resultSubsonicBaseResponse = <ItemType extends z.ZodRawShape>(
|
|
itemSchema: ItemType,
|
|
) => {
|
|
return z.object({
|
|
'subsonic-response': z
|
|
.object({
|
|
status: z.string(),
|
|
version: z.string(),
|
|
})
|
|
.extend(itemSchema),
|
|
});
|
|
};
|