1
- import { AxiosRequestConfig } from 'axios' ;
2
1
import { Blob } from 'node:buffer' ;
2
+ import { RequestConfig } from '@/types/request-config' ;
3
3
import { ApiBase } from '@/api/methods/api-base' ;
4
4
import { File } from '@/types/file' ;
5
5
import { FileGetContentsRequest } from '@/types/file-get-contents-request' ;
@@ -13,27 +13,27 @@ export class ApiFiles extends ApiBase {
13
13
* List all {@link File files} in the project.
14
14
*
15
15
* @param request Files list request config.
16
- * @param config Axios request config.
16
+ * @param config Request config.
17
17
*
18
18
* @see {@link https://localazy.com/docs/api/files#list-files-in-project Localazy API Docs }
19
19
*/
20
- public async list ( request : FilesListRequest , config ?: AxiosRequestConfig ) : Promise < File [ ] > {
20
+ public async list ( request : FilesListRequest , config ?: RequestConfig ) : Promise < File [ ] > {
21
21
const { project } : FilesListRequest = request ;
22
22
const projectId : string = ApiBase . getId ( project , 'project' ) ;
23
23
24
- return this . api . client . get ( `/projects/${ projectId } /files` , config ) ;
24
+ return ( await this . api . client . get ( `/projects/${ projectId } /files` , config ) ) as Promise < File [ ] > ;
25
25
}
26
26
27
27
/**
28
28
* First {@link File file} in the project.
29
29
*
30
30
* @param request Files list request config.
31
- * @param config Axios request config.
31
+ * @param config Request config.
32
32
* @throws Error At least one file must exist, otherwise an error is thrown.
33
33
*
34
34
* @see {@link https://localazy.com/docs/api/files#list-files-in-project Localazy API Docs }
35
35
*/
36
- public async first ( request : FilesListRequest , config ?: AxiosRequestConfig ) : Promise < File > {
36
+ public async first ( request : FilesListRequest , config ?: RequestConfig ) : Promise < File > {
37
37
const files : File [ ] = await this . list ( request , config ) ;
38
38
39
39
if ( files . length === 0 ) {
@@ -47,12 +47,12 @@ export class ApiFiles extends ApiBase {
47
47
* List all {@link Key keys} for the language in the {@link File file}.
48
48
*
49
49
* @param request File list keys request config.
50
- * @param config Axios request config.
50
+ * @param config Request config.
51
51
*
52
52
* @see {@link https://localazy.com/docs/api/files#retrieve-a-list-of-keys-and-translations-from-file
53
53
* | Localazy API Docs}
54
54
*/
55
- public async listKeys ( request : FileListKeysRequest , config ?: AxiosRequestConfig ) : Promise < Key [ ] > {
55
+ public async listKeys ( request : FileListKeysRequest , config ?: RequestConfig ) : Promise < Key [ ] > {
56
56
const keys : Key [ ] = [ ] ;
57
57
let pageResult : KeysPaginated = {
58
58
keys : [ ] ,
@@ -72,37 +72,38 @@ export class ApiFiles extends ApiBase {
72
72
* List all {@link Key keys} for the language in the {@link File file}. Result is paginated.
73
73
*
74
74
* @param request File list keys request config.
75
- * @param config Axios request config.
75
+ * @param config Request config.
76
76
*
77
77
* @see {@link https://localazy.com/docs/api/files#retrieve-a-list-of-keys-and-translations-from-file
78
78
* | Localazy API Docs}
79
79
*/
80
- public async listKeysPage ( request : FileListKeysRequest , config ?: AxiosRequestConfig ) : Promise < KeysPaginated > {
80
+ public async listKeysPage ( request : FileListKeysRequest , config ?: RequestConfig ) : Promise < KeysPaginated > {
81
81
const { project, file, lang, ...params } : FileListKeysRequest = request ;
82
82
const projectId : string = ApiBase . getId ( project , 'project' ) ;
83
83
const fileId : string = ApiBase . getId ( file , 'file' ) ;
84
84
85
- return this . api . client . get ( `/projects/${ projectId } /files/${ fileId } /keys/${ lang } ` , { ...config , params } ) ;
85
+ return ( await this . api . client . get ( `/projects/${ projectId } /files/${ fileId } /keys/${ lang } ` , {
86
+ ...config ,
87
+ params,
88
+ } ) ) as KeysPaginated ;
86
89
}
87
90
88
91
/**
89
92
* Get the contents of the {@link File file}.
90
93
*
91
94
* @param request File get contents request config.
92
- * @param config Axios request config.
95
+ * @param config Request config.
93
96
*
94
97
* @see {@link https://localazy.com/docs/api/files#list-file-content Localazy API Docs }
95
98
*/
96
- public async getContents ( request : FileGetContentsRequest , config ?: AxiosRequestConfig ) : Promise < Blob > {
99
+ public async getContents ( request : FileGetContentsRequest , config ?: RequestConfig ) : Promise < Blob > {
97
100
const { project, file, lang } : FileGetContentsRequest = request ;
98
101
const projectId : string = ApiBase . getId ( project , 'project' ) ;
99
102
const fileId : string = ApiBase . getId ( file , 'file' ) ;
100
103
101
- const buffer : Uint8Array = await this . api . client . get ( `/projects/${ projectId } /files/${ fileId } /download/${ lang } ` , {
104
+ return ( await this . api . client . get ( `/projects/${ projectId } /files/${ fileId } /download/${ lang } ` , {
102
105
...config ,
103
- responseType : 'arraybuffer' ,
104
- } ) ;
105
-
106
- return new Blob ( [ buffer ] ) ;
106
+ responseType : 'blob' ,
107
+ } ) ) as Blob ;
107
108
}
108
109
}
0 commit comments