interface RequestConfig { params?: { [code: string]: string | string[] } } interface ResponseConfig { data: any status: number statusText: string headers: { [code: string]: string } config: { [code: string]: string } } export default function createApi() { return { request(url: string, data: any, config?: RequestConfig): Promise { return new Promise((resolve) => { setTimeout(() => { resolve({ data: { id: '111111', name: 'Файл из api-generator-file.png', file: 'https://images.unsplash.com/photo-1627436712699-57a17c974615?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=435&q=80', extension: 'png', size: 13548, }, status: 200, statusText: 'OK', headers: {}, config: {}, }) }, Math.random() * 1000) }) }, get(url: string, config?: RequestConfig): Promise { return this.request(url, {}, config) }, post(url: string, data: any, config?: RequestConfig): Promise { return this.request(url, data, config) }, put(url: string, data: any, config?: RequestConfig): Promise { return this.request(url, data, config) }, patch(url: string, data: any, config?: RequestConfig): Promise { return this.request(url, data, config) }, delete(url: string, config?: RequestConfig): Promise { return this.request(url, {}, config) }, } }