33 * Copyright (c) 2021, 2022, Oracle and/or its affiliates.
44 * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
55 */
6- const { app, dialog} = require ( 'electron' ) ;
6+ const { app, dialog } = require ( 'electron' ) ;
77const fs = require ( 'fs' ) ;
8- const { readFile , writeFile } = require ( 'fs/promises' ) ;
8+ const fsPromises = require ( 'fs/promises' ) ;
99const path = require ( 'path' ) ;
1010
1111const 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' ) ;
1415
1516async function getModelFileFromUser ( targetWindow ) {
1617 const openResponse = await dialog . showOpenDialog ( targetWindow , {
@@ -28,14 +29,14 @@ async function getModelFileFromUser(targetWindow) {
2829
2930async function openModelFile ( targetWindow , file ) {
3031 return new Promise ( ( resolve ) => {
31- readFile ( file , 'utf8' ) . then ( data => {
32+ fsPromises . readFile ( file , 'utf8' ) . then ( data => {
3233 // startWatchingFile(targetWindow, file);
3334 sendToWindow ( targetWindow , 'model-file-opened' , file , data ) ;
3435 } ) . 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 ( ) ;
3940 } ) ;
4041 } ) ;
4142}
@@ -51,26 +52,21 @@ async function saveModelFile(targetWindow, file, content) {
5152 { name : 'YAML Files' , extensions : [ 'yaml' , 'yml' ] } ,
5253 { name : 'JSON Files' , extensions : [ 'json' ] }
5354 ]
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+ } ) ;
6765 } 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 ) ) ;
7470 }
7571 } ) ;
7672}
@@ -96,17 +92,15 @@ async function saveContentsOfModelFiles(projectDirectory, models) {
9692async function _getModelFileContent ( projectDirectory , modelFile ) {
9793 const effectiveModelFile = fsUtils . getAbsolutePath ( modelFile , projectDirectory ) ;
9894 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 ) ) ;
10296 } ) ;
10397}
10498
10599async function _saveModelFileContent ( projectDirectory , modelFile , modelContents ) {
106100 const effectiveModelFile = fsUtils . getAbsolutePath ( modelFile , projectDirectory ) ;
107101 const directory = path . dirname ( effectiveModelFile ) ;
108102 fs . mkdirSync ( directory , { recursive : true } ) ;
109- return writeFile ( effectiveModelFile , modelContents , { encoding : 'utf8' } ) ;
103+ return fsPromises . writeFile ( effectiveModelFile , modelContents , { encoding : 'utf8' } ) ;
110104}
111105
112106module . exports = {
0 commit comments