refactor: update ExtractValidation type to use 'unknown' (#36318)

pull/36320/head^2
Ahmed Nasser 6 months ago committed by GitHub
parent 512586a3c7
commit cac1463b84
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 20
      apps/meteor/app/api/server/ApiClass.spec.ts
  2. 4
      apps/meteor/app/api/server/ApiClass.ts

@ -39,3 +39,23 @@ it('Should return the expected type', () => {
>;
true as test;
});
describe('ExtractRoutesFromAPI', () => {
it('Should extract correct function signature when query is not present', () => {
type APIWithNeverQuery = APIClass<
'/v1',
{
method: 'GET';
path: '/v1/endpoint.test';
response: {
200: ValidateFunction<unknown>;
};
authRequired: true;
}
>;
type ExpectedFunctionSignature = Expect<
ShallowEqual<ExtractRoutesFromAPI<APIWithNeverQuery>['/v1/endpoint.test']['GET'], () => unknown>
>;
true as ExpectedFunctionSignature;
});
});

@ -73,7 +73,9 @@ type ConvertToRoute<TRoute extends MinimalRoute> = {
[K in TRoute['path']]: {
[K2 in Extract<TRoute, { path: K }>['method']]: K2 extends 'GET'
? (
params: ExtractValidation<Extract<TRoute, { path: K; method: K2 }>['query']>,
...args: [ExtractValidation<Extract<TRoute, { path: K; method: K2 }>['query']>] extends [never]
? [params?: never]
: [params: ExtractValidation<Extract<TRoute, { path: K; method: K2 }>['query']>]
) => ExtractValidation<Extract<TRoute, { path: K; method: K2 }>['response'][200]>
: K2 extends 'POST'
? (

Loading…
Cancel
Save