2022-01-25 13:22:21 +01:00

32 lines
960 B
TypeScript

import type { ApiRequestOptions } from './ApiRequestOptions';
import { CancelablePromise } from './CancelablePromise';
import type { OpenAPIConfig } from './OpenAPI';
export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<T> => {
return new CancelablePromise((resolve, reject, onCancel) => {
const url = `${config.BASE}${options.path}`;
try {
// Do your request...
const timeout = setTimeout(() => {
resolve({
url,
ok: true,
status: 200,
statusText: 'dummy',
body: {
...options,
},
});
}, 500);
// Cancel your request...
onCancel(() => {
clearTimeout(timeout);
});
} catch (e) {
reject(e);
}
});
};