@@ -27,7 +27,11 @@ export class YdbEmbeddedAPI {
27
27
meta ?: MetaAPI ;
28
28
codeAssist ?: CodeAssistAPI ;
29
29
30
- constructor ( { webVersion = false , withCredentials = false } = { } ) {
30
+ constructor ( {
31
+ webVersion = false ,
32
+ withCredentials = false ,
33
+ csrfTokenGetter = ( ) => undefined ,
34
+ } = { } ) {
31
35
const config : AxiosRequestConfig = { withCredentials} ;
32
36
33
37
this . auth = new AuthAPI ( { config} ) ;
@@ -47,5 +51,22 @@ export class YdbEmbeddedAPI {
47
51
this . tablets = new TabletsAPI ( { config} ) ;
48
52
this . vdisk = new VDiskAPI ( { config} ) ;
49
53
this . viewer = new ViewerAPI ( { config} ) ;
54
+
55
+ const token = csrfTokenGetter ( ) ;
56
+ if ( token ) {
57
+ this . auth . setCSRFToken ( token ) ;
58
+ // Use optional chaining as `meta` may not be initialized.
59
+ this . meta ?. setCSRFToken ( token ) ;
60
+ // Use optional chaining as `codeAssist` may not be initialized.
61
+ this . codeAssist ?. setCSRFToken ( token ) ;
62
+ this . operation . setCSRFToken ( token ) ;
63
+ this . pdisk . setCSRFToken ( token ) ;
64
+ this . scheme . setCSRFToken ( token ) ;
65
+ this . storage . setCSRFToken ( token ) ;
66
+ this . streaming . setCSRFToken ( token ) ;
67
+ this . tablets . setCSRFToken ( token ) ;
68
+ this . vdisk . setCSRFToken ( token ) ;
69
+ this . viewer . setCSRFToken ( token ) ;
70
+ }
50
71
}
51
72
}
0 commit comments