@@ -15,6 +15,18 @@ import {TabletsAPI} from './tablets';
1515import { VDiskAPI } from './vdisk' ;
1616import { ViewerAPI } from './viewer' ;
1717
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+
1830export class YdbEmbeddedAPI {
1931 auth : AuthAPI ;
2032 operation : OperationAPI ;
@@ -25,24 +37,18 @@ export class YdbEmbeddedAPI {
2537 tablets : TabletsAPI ;
2638 vdisk : VDiskAPI ;
2739 viewer : ViewerAPI ;
40+
2841 meta ?: MetaAPI ;
2942 codeAssist ?: CodeAssistAPI ;
3043
3144 constructor ( {
3245 webVersion = false ,
3346 withCredentials = false ,
34- singleClusterMode,
47+ singleClusterMode = true ,
48+ proxyMeta = false ,
3549 csrfTokenGetter = ( ) => undefined ,
3650 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 ) {
4652 const axiosParams : AxiosWrapperOptions = { config : { withCredentials, ...defaults } } ;
4753 const baseApiParams = { singleClusterMode, proxyMeta} ;
4854
0 commit comments