3
3
* Copyright (c) 2021, 2022, Oracle and/or its affiliates.
4
4
* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
5
5
*/
6
- const { app, dialog} = require ( 'electron' ) ;
6
+ const { app, dialog } = require ( 'electron' ) ;
7
7
const fs = require ( 'fs' ) ;
8
- const { readFile , writeFile } = require ( 'fs/promises' ) ;
8
+ const fsPromises = require ( 'fs/promises' ) ;
9
9
const path = require ( 'path' ) ;
10
10
11
11
const fsUtils = require ( './fsUtils' ) ;
12
- const { getLogger} = require ( './wktLogging' ) ;
13
- const { sendToWindow} = require ( './windowUtils' ) ;
12
+ const { getErrorMessage } = require ( './errorUtils' ) ;
13
+ const { getLogger } = require ( './wktLogging' ) ;
14
+ const { sendToWindow } = require ( './windowUtils' ) ;
14
15
15
16
async function getModelFileFromUser ( targetWindow ) {
16
17
const openResponse = await dialog . showOpenDialog ( targetWindow , {
@@ -28,14 +29,14 @@ async function getModelFileFromUser(targetWindow) {
28
29
29
30
async function openModelFile ( targetWindow , file ) {
30
31
return new Promise ( ( resolve ) => {
31
- readFile ( file , 'utf8' ) . then ( data => {
32
+ fsPromises . readFile ( file , 'utf8' ) . then ( data => {
32
33
// startWatchingFile(targetWindow, file);
33
34
sendToWindow ( targetWindow , 'model-file-opened' , file , data ) ;
34
35
} ) . catch ( err => {
35
- dialog . showErrorBox ( `Failed to read model file: ${ file } ` , err . message ) . then ( ( ) => {
36
- getLogger ( ) . error ( `Failed to read model file ${ file } : ${ err } ` ) ;
37
- resolve ( ) ;
38
- } ) ;
36
+ const message = getErrorMessage ( err ) ;
37
+ dialog . showErrorBox ( `Failed to read model file: ${ file } ` , message ) ;
38
+ getLogger ( ) . error ( 'Failed to read model file %s: %s' , file , message ) ;
39
+ resolve ( ) ;
39
40
} ) ;
40
41
} ) ;
41
42
}
@@ -51,26 +52,21 @@ async function saveModelFile(targetWindow, file, content) {
51
52
{ name : 'YAML Files' , extensions : [ 'yaml' , 'yml' ] } ,
52
53
{ name : 'JSON Files' , extensions : [ 'json' ] }
53
54
]
54
- } )
55
- . then ( saveResponse => {
56
- if ( ! saveResponse . canceled && saveResponse . filePath ) {
57
- writeFile ( saveResponse . filePath , content , { encoding : 'utf8' } )
58
- . then ( ( ) => {
59
- sendToWindow ( targetWindow , 'model-file-saved' , saveResponse . filePath , content ) ;
60
- resolve ( ) ;
61
- } )
62
- . catch ( err => reject ( err ) ) ;
63
- } else {
64
- return resolve ( ) ;
65
- }
66
- } ) ;
55
+ } ) . then ( saveResponse => {
56
+ if ( ! saveResponse . canceled && saveResponse . filePath ) {
57
+ fsPromises . writeFile ( saveResponse . filePath , content , { encoding : 'utf8' } ) . then ( ( ) => {
58
+ sendToWindow ( targetWindow , 'model-file-saved' , saveResponse . filePath , content ) ;
59
+ resolve ( ) ;
60
+ } ) . catch ( err => reject ( err ) ) ;
61
+ } else {
62
+ return resolve ( ) ;
63
+ }
64
+ } ) ;
67
65
} else {
68
- writeFile ( file , content , { encoding : 'utf8' } )
69
- . then ( ( ) => {
70
- sendToWindow ( targetWindow , 'model-file-saved' , file , content ) ;
71
- resolve ( ) ;
72
- } )
73
- . catch ( err => reject ( err ) ) ;
66
+ fsPromises . writeFile ( file , content , { encoding : 'utf8' } ) . then ( ( ) => {
67
+ sendToWindow ( targetWindow , 'model-file-saved' , file , content ) ;
68
+ resolve ( ) ;
69
+ } ) . catch ( err => reject ( err ) ) ;
74
70
}
75
71
} ) ;
76
72
}
@@ -96,17 +92,15 @@ async function saveContentsOfModelFiles(projectDirectory, models) {
96
92
async function _getModelFileContent ( projectDirectory , modelFile ) {
97
93
const effectiveModelFile = fsUtils . getAbsolutePath ( modelFile , projectDirectory ) ;
98
94
return new Promise ( ( resolve , reject ) => {
99
- readFile ( effectiveModelFile , { encoding : 'utf8' } )
100
- . then ( data => resolve ( data ) )
101
- . catch ( err => reject ( err ) ) ;
95
+ fsPromises . readFile ( effectiveModelFile , { encoding : 'utf8' } ) . then ( data => resolve ( data ) ) . catch ( err => reject ( err ) ) ;
102
96
} ) ;
103
97
}
104
98
105
99
async function _saveModelFileContent ( projectDirectory , modelFile , modelContents ) {
106
100
const effectiveModelFile = fsUtils . getAbsolutePath ( modelFile , projectDirectory ) ;
107
101
const directory = path . dirname ( effectiveModelFile ) ;
108
102
fs . mkdirSync ( directory , { recursive : true } ) ;
109
- return writeFile ( effectiveModelFile , modelContents , { encoding : 'utf8' } ) ;
103
+ return fsPromises . writeFile ( effectiveModelFile , modelContents , { encoding : 'utf8' } ) ;
110
104
}
111
105
112
106
module . exports = {
0 commit comments