commit before 230 am marcus touches the code

master
Marcus 2019-05-26 02:29:08 -04:00
commit eeb2775981
8 changed files with 125 additions and 0 deletions

1
.gitignore vendored 100644
View File

@ -0,0 +1 @@
node_modules

1
.npmrc 100644
View File

@ -0,0 +1 @@
package-lock=false

69
core/aqua.js 100644
View File

@ -0,0 +1,69 @@
#!/usr/bin/env node
const args = require('yargs').argv
const path = require('path');
args.index = args.index || path.join(process.cwd(), 'index.js');
args.cache = args.cache || path.join(process.cwd(), '.cache');
let index = platformPrecompile();
index = compileParameters(index);
/// Do all platform related things to the index file, like substituting
/// CLI arguments, and converting from a filepath to an actual index object.
// TODO make this also do dependencies
function platformPrecompile() {
// if its a path, require the file and create the object.
if(typeof args.index === 'string') {
args.index = require(args.index);
}
const index = args.index;
for(const key in args) {
if(key in index.Parameters) {
index.Parameters[key] = args[key];
}
}
return index;
}
function compileParameters (index) {
let entities = index.Entities;
for(const key in index.Parameters) {
entities = recursiveReplace(entities, `\$${key}`, index.Parameters[key]);
}
return {
Entities: entities
};
}
function recursiveReplace(obj, find, replace) {
switch(typeof obj) {
case 'string': {
if(obj === find) return replace;
else return obj;
}
case 'object': {
if(Array.isArray(obj)) {
const newArr = [];
for(const value of obj) {
newArr.push(recursiveReplace(value, find, replace));
}
return newArr;
} else {
const newObj = {};
for (const key in obj) {
newObj[key] = recursiveReplace(obj[key], find, replace);
}
return newObj;
}
}
default: {
return obj;
}
}
}

0
core/cache.js 100644
View File

0
core/system.js 100644
View File

26
package.json 100644
View File

@ -0,0 +1,26 @@
{
"name": "aquatin",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/marcus13345/AquaTin.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/marcus13345/AquaTin/issues"
},
"bin": {
"aqua": "core/aqua.js"
},
"homepage": "https://github.com/marcus13345/AquaTin#readme",
"dependencies": {
"uuid": "^3.3.2",
"yargs": "^13.2.4"
}
}

View File

@ -0,0 +1,14 @@
module.exports.entity = class module {
async OnStart() {
console.log('starting...');
await new Promise(res => {
setTimeout(_ => {
console.log('done');
res();
}, 1000);
})
}
}

View File

@ -0,0 +1,14 @@
module.exports = {
Parameters: {
Source: './../modules/'
},
Entities: {
Tester: {
Name: 'module',
From: '$Source',
Data: {
Thing: 5
}
}
}
}