From a3724d739bf1e1cc2b9e8f6d638ca569a864fa56 Mon Sep 17 00:00:00 2001 From: Jiiks Date: Sun, 24 Feb 2019 21:56:46 +0200 Subject: [PATCH] Read files on load at least for now --- core/src/modules/editor.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/core/src/modules/editor.js b/core/src/modules/editor.js index afc43fff..bb938494 100644 --- a/core/src/modules/editor.js +++ b/core/src/modules/editor.js @@ -34,9 +34,18 @@ export default class Editor extends Module { }); BDIpc.on('editor-getFiles', async (event) => { - event.reply([ - { type: 'file', name: 'custom.scss', content: '', savedContent: '', mode: 'scss', saved: true } - ]); + const exclude = ['db.json', 'emotes.json', 'storage', 'user.settings.json', 'window.json']; + const listFiles = await FileUtils.listDirectory(this.bd.config.getPath('data')); + const files = listFiles.filter(file => !exclude.includes(file)); + + const constructFiles = files.map(async file => { + const content = await FileUtils.readFile(path.resolve(this.bd.config.getPath('data'), file)); + return { name: file, saved: true, mode: this.resolveMode(file), content, savedContent: content }; + }); + + const awaitFiles = await Promise.all(constructFiles); + + event.reply(awaitFiles); }); BDIpc.on('editor-getSnippets', async (event) => { @@ -61,6 +70,23 @@ export default class Editor extends Module { }); } + resolveMode(fileName) { + if (!fileName.includes('.')) return 'text'; + const ext = fileName.substr(fileName.lastIndexOf('.') + 1); + if (this.modes.hasOwnProperty(ext)) return this.modes[ext]; + return 'text'; + } + + get modes() { + return { + 'css': 'css', + 'scss': 'scss', + 'js': 'js', + 'txt': 'text', + 'json': 'json' + }; + } + /** * Opens an editor. * @return {Promise}