@lokalise/api-contracts
Version:
32 lines • 1.26 kB
JavaScript
// Implementation
export function buildRestContract(config) {
const { method } = config;
const baseFields = {
isEmptyResponseExpected: config.isEmptyResponseExpected ?? method === 'delete',
isNonJSONResponseExpected: config.isNonJSONResponseExpected ?? false,
pathResolver: config.pathResolver,
requestHeaderSchema: config.requestHeaderSchema,
responseHeaderSchema: config.responseHeaderSchema,
requestPathParamsSchema: config.requestPathParamsSchema,
requestQuerySchema: config.requestQuerySchema,
successResponseBodySchema: config.successResponseBodySchema,
description: config.description,
summary: config.summary,
responseSchemasByStatusCode: config.responseSchemasByStatusCode,
metadata: config.metadata,
tags: config.tags,
};
if (method === 'post' || method === 'put' || method === 'patch') {
return {
...baseFields,
method,
// biome-ignore lint/suspicious/noExplicitAny: Type assertion needed for config union
requestBodySchema: config.requestBodySchema,
};
}
return {
...baseFields,
method,
};
}
//# sourceMappingURL=restContractBuilder.js.map