@@ -34,11 +34,13 @@ export const getFileName = (folder: string, name: string, split: boolean, addCat
3434 return [ folder , cat , name ] . filter ( notNull ) . join ( path . sep ) ;
3535} ;
3636
37- export async function exportFile ( workspaceFolder : string , name : string , fileName : string ) : Promise < void > {
37+ export async function exportFile (
38+ workspaceFolder : string , namespace : string , name : string , fileName : string ) : Promise < void > {
3839 if ( ! config ( "conn" , workspaceFolder ) . active ) {
3940 return Promise . reject ( "Connection not active" ) ;
4041 }
4142 const api = new AtelierAPI ( workspaceFolder ) ;
43+ api . setNamespace ( namespace ) ;
4244 const log = ( status ) => outputChannel . appendLine ( `export "${ name } " as "${ fileName } " - ${ status } ` ) ;
4345 const folders = path . dirname ( fileName ) ;
4446 return mkdirSyncRecursive ( folders )
@@ -111,7 +113,7 @@ export async function exportFile(workspaceFolder: string, name: string, fileName
111113 } ) ;
112114}
113115
114- export async function exportList ( files : string [ ] , workspaceFolder : string ) : Promise < any > {
116+ export async function exportList ( files : string [ ] , workspaceFolder : string , namespace : string ) : Promise < any > {
115117 if ( ! files || ! files . length ) {
116118 vscode . window . showWarningMessage ( "Nothing to export" ) ;
117119 }
@@ -121,7 +123,7 @@ export async function exportList(files: string[], workspaceFolder: string): Prom
121123 const run = async ( fileList ) => {
122124 const errors = [ ] ;
123125 for ( const file of fileList ) {
124- await exportFile ( workspaceFolder , file , getFileName ( root , file , atelier , addCategory ) )
126+ await exportFile ( workspaceFolder , namespace , file , getFileName ( root , file , atelier , addCategory ) )
125127 . catch ( ( error ) => { errors . push ( `${ file } - ${ error } ` ) ; } ) ;
126128 }
127129 outputChannel . appendLine ( `Exported items: ${ fileList . length - errors . length } ` ) ;
@@ -147,21 +149,32 @@ export async function exportAll(workspaceFolder?: string): Promise<any> {
147149 if ( ! config ( "conn" , workspaceFolder ) . active ) {
148150 return ;
149151 }
150- const api = new AtelierAPI ( ) ;
151- api . setConnection ( workspaceFolder ) ;
152+ const api = new AtelierAPI ( workspaceFolder ) ;
152153 outputChannel . show ( true ) ;
153- const { category, generated, filter } = config ( "export" , workspaceFolder ) ;
154+ const { category, generated, filter, ns } = config ( "export" , workspaceFolder ) ;
154155 const files = ( data ) => data . result . content . filter ( filesFilter ) . map ( ( file ) => file . name ) ;
155156 return api . getDocNames ( { category, generated, filter } ) . then ( ( data ) => {
156- return exportList ( files ( data ) , workspaceFolder ) ;
157+ return exportList ( files ( data ) , workspaceFolder , ns ) ;
157158 } ) ;
158159}
159160
160161export async function exportExplorerItem ( node : RootNode | PackageNode | ClassNode | RoutineNode ) : Promise < any > {
161- if ( ! config ( "conn" , node . workspaceFolder ) . active ) {
162- return ;
162+ const origNamespace = config ( "conn" ) . ns ;
163+ if ( origNamespace !== node . namespace ) {
164+ const answer = await vscode . window . showWarningMessage (
165+ `
166+ You are going to export items from another namespace.
167+ Would you like to continue?` ,
168+ {
169+ modal : true ,
170+ } ,
171+ "Yes" ,
172+ ) ;
173+ if ( answer !== "Yes" ) {
174+ return ;
175+ }
163176 }
164- const workspaceFolder = node . workspaceFolder ;
177+ const { workspaceFolder, namespace } = node ;
165178 const nodesList = node instanceof RootNode ? node . getChildren ( node ) : Promise . resolve ( [ node ] ) ;
166179 return nodesList
167180 . then ( ( nodes ) =>
@@ -171,6 +184,6 @@ export async function exportExplorerItem(node: RootNode | PackageNode | ClassNod
171184 ) ,
172185 )
173186 . then ( ( items ) => {
174- return exportList ( items , workspaceFolder ) ;
187+ return exportList ( items , workspaceFolder , namespace ) ;
175188 } ) ;
176189}
0 commit comments