diff options
| author | Mhykol <mchaeldonald62@pm.me> | 2024-06-03 05:26:09 -0400 |
|---|---|---|
| committer | Mhykol <mchaeldonald62@pm.me> | 2024-06-03 05:26:09 -0400 |
| commit | cd760f0cf83cb00b9c4b372ed1b6ed5baf1b6272 (patch) | |
| tree | 94cf37e9c3dcf017fc65a50b52045856a6100537 /source/controller.js | |
| parent | 3135b036ce787d00228e627d9af58dfd9b5a1b08 (diff) | |
Added error handling for missing directories and examples
Diffstat (limited to 'source/controller.js')
| -rw-r--r-- | source/controller.js | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/source/controller.js b/source/controller.js index c66df01..889e868 100644 --- a/source/controller.js +++ b/source/controller.js @@ -1,4 +1,5 @@ const fs = require('fs') +const path = require('path') const Method = require('./method') const logger = require('./logger')() @@ -6,23 +7,33 @@ const logger = require('./logger')() class Controller { constructor() { this.main = new Promise((res, rej) => { - fs.readdir('./scripts/', (err, files) => { - if (err) { - logger.Error(`${err.code}: Failed to read directory`) - rej(`${err.code}: Failed to read directory`) - } + if (fs.existsSync('./scripts/')) { + fs.readdir('./scripts/', (err, files) => { + if (err) { + logger.Error(`${err.code}: Failed to read directory`) + rej(`${err.code}: Failed to read directory`) + } - this.require = new Map() - files.forEach(file => { - try { - this.require.set(file.replace('.js', ''), require(`../scripts/${file}`)()) - } catch (err) { - logger.Error(`${err.code}: Failed to read ${file}`) - rej(`${err.code}: Failed to read ${file}`) + this.require = new Map() + files.forEach(file => { + try { + this.require.set(file.replace('.js', ''), require(`../scripts/${file}`)()) + } catch (err) { + logger.Error(`${err.code}: Failed to read ${file}`) + rej(`${err.code}: Failed to read ${file}`) + } + }) + res(this.require) + }) + } else { + fs.mkdirSync('./scripts/') + fs.writeFile(path.join('./scripts/', 'index.js'), fs.readFileSync('./examples/index.js', 'utf-8'), (err) => { + if (err) { + logger.Error(`${err.code}: Error writing to file`) + rej(`${err.code}: Error writing to file`) } }) - res(this.require) - }) + } }).then(output => { return new Promise((res, rej) => { const map = output @@ -95,4 +106,5 @@ class Controller { } } -module.exports = Controller +module.exports = Controller + |
