diff --git a/.gitignore b/.gitignore index 3c3629e..c935a51 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +.cache \ No newline at end of file diff --git a/core/aqua.js b/core/aqua.js index fee82b3..9d08a82 100644 --- a/core/aqua.js +++ b/core/aqua.js @@ -5,6 +5,8 @@ const log = new Signale({ }); const interactive = new Signale({interactive: true}); const path = require('path'); +const fs = require('fs'); + require('yargs') .scriptName("aqua") .usage('$0 [args]') @@ -31,10 +33,12 @@ return; /// this is the base compile function, that the CLI directly calls. async function cliCompile(args) { - console.log('things') const {compile} = require('./compiler.js'); - if(!path.isAbsolute(args.index)) args.index = path.join(process.cwd(), 'index.js'); - if(!path.isAbsolute(args.cache)) args.cache = path.join(process.cwd(), '.cache'); + log.debug(path.isAbsolute(args.index)); + log.debug(args.index); + log.debug(process.cwd()); + if(!path.isAbsolute(args.index)) args.index = path.join(process.cwd(), args.index); + if(!path.isAbsolute(args.cache)) args.cache = path.join(process.cwd(), args.cache); let index = platformPrecompile(args); diff --git a/core/compiler.js b/core/compiler.js index a32f2fe..8125fb1 100644 --- a/core/compiler.js +++ b/core/compiler.js @@ -32,6 +32,7 @@ async function createCache({cache: cachePath, index}) { for(const symbol in index.Entities) { const module = index.Entities[symbol]; + let code = await retrieveModule(module.From, module.Name); // modules[module.Name] = code; cache.addEntity(module.Name, code); diff --git a/core/retrieveModule.js b/core/retrieveModule.js index 88699c1..8366baa 100644 --- a/core/retrieveModule.js +++ b/core/retrieveModule.js @@ -5,9 +5,10 @@ const fs = require('fs'); module.exports.retrieveModule = retrieveModule; function retrieveModule(source, name) { - return new Promise (res => { + return new Promise ((res, rej) => { fs.readFile(path.join(source, `${name}.js`), (err, data) => { - res(data.toString()); + if(err) return rej(err); + else res(data.toString()); }) }) } \ No newline at end of file diff --git a/tests/system/.cache/code/module.js b/tests/system/.cache/code/module.js deleted file mode 100644 index a639630..0000000 --- a/tests/system/.cache/code/module.js +++ /dev/null @@ -1,14 +0,0 @@ - - -module.exports.entity = class module { - async OnStart() { - console.log('starting...'); - await new Promise(res => { - setTimeout(_ => { - console.log('done'); - res(); - }, 1000); - }) - } -} - diff --git a/tests/system/.cache/instances/undefined.json b/tests/system/.cache/instances/undefined.json deleted file mode 100644 index facd745..0000000 --- a/tests/system/.cache/instances/undefined.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "Name": "module", - "From": "./../modules/", - "Data": { - "Thing": 5 - } -} \ No newline at end of file diff --git a/tests/system/index.js b/tests/system/index.js index e144721..5c57035 100644 --- a/tests/system/index.js +++ b/tests/system/index.js @@ -1,6 +1,12 @@ +const path = require('path'); +const {Signale} = require('signale'); +const log = new Signale({ + scope: 'CLI' +}); + module.exports = { Parameters: { - Source: './../modules/' + Source: path.join(__dirname, './../modules/') }, Entities: { Tester: {