@@ -15,6 +15,18 @@ import {TabletsAPI} from './tablets';
15
15
import { VDiskAPI } from './vdisk' ;
16
16
import { ViewerAPI } from './viewer' ;
17
17
18
+ // Require all fields to be explicitly passed
19
+ // It is needed to prevent forgotten params in installations
20
+ // Where ydb-embedded-ui is used as a package
21
+ interface YdbEmbeddedAPIProps {
22
+ webVersion : undefined | boolean ;
23
+ withCredentials : undefined | boolean ;
24
+ singleClusterMode : undefined | boolean ;
25
+ proxyMeta : undefined | boolean ;
26
+ csrfTokenGetter : undefined | ( ( ) => string | undefined ) ;
27
+ defaults : undefined | AxiosRequestConfig ;
28
+ }
29
+
18
30
export class YdbEmbeddedAPI {
19
31
auth : AuthAPI ;
20
32
operation : OperationAPI ;
@@ -25,24 +37,18 @@ export class YdbEmbeddedAPI {
25
37
tablets : TabletsAPI ;
26
38
vdisk : VDiskAPI ;
27
39
viewer : ViewerAPI ;
40
+
28
41
meta ?: MetaAPI ;
29
42
codeAssist ?: CodeAssistAPI ;
30
43
31
44
constructor ( {
32
45
webVersion = false ,
33
46
withCredentials = false ,
34
- singleClusterMode,
47
+ singleClusterMode = true ,
48
+ proxyMeta = false ,
35
49
csrfTokenGetter = ( ) => undefined ,
36
50
defaults = { } ,
37
- proxyMeta = false ,
38
- } : {
39
- webVersion ?: boolean ;
40
- withCredentials ?: boolean ;
41
- singleClusterMode ?: boolean ;
42
- csrfTokenGetter ?: ( ) => string | undefined ;
43
- defaults ?: AxiosRequestConfig ;
44
- proxyMeta ?: boolean ;
45
- } = { } ) {
51
+ } : YdbEmbeddedAPIProps ) {
46
52
const axiosParams : AxiosWrapperOptions = { config : { withCredentials, ...defaults } } ;
47
53
const baseApiParams = { singleClusterMode, proxyMeta} ;
48
54
0 commit comments