llearn
Version:
Bad-ass developers create awesome apps
78 lines (69 loc) • 2.92 kB
JavaScript
// console.log("Starting helper_parameter.js...");
// helper_parameter.js
// Purpose: The purpose of this....
// Date Created: 6/2/2018
// Created by : Perez Lamed van Niekerk
// ------------------------------------------------------
/*jshint esversion: 6 */
const _log = console.log;
const _JSONstr = (object) => JSON.stringify(object, undefined, 2);
const _logJSON = (object) => console.log(_JSONstr(object));
// ------------------------------------------------------
const _chalk = require('chalk'); // npm i chalk -s
var _logBlue = (msg) => _log(_chalk.blue.bold(msg));
const _io = require('./helper_io');
const _helper = require('./helper');
const _ = require("lodash"); // npm install lodash --save
const _expect = require('expect');
const _larray = require('larray');
function parametersParse (code) {
let parms = [];
if (code.includes('$')) {
parms = code.split('$');
parms[0] = ''; // remove first part of the template
//_log(parms);
/* filter out false positives */
parms = _.filter(parms, (item) => {
/* If these chars is in the parameter -> filter it out */
var error = item.includesAny(' ', '{', ';', '/', ':', '.', '\r\n');
if (error === false && item.length <= 1) error = true;
if (error === false) return item;
});
// _log({parms});
parms = _.uniq(parms);
// _log({parms});
if (parms.length > 2) {
throw new Error("Max of two parameters supported! [" + parms + "]"); }
}
return parms;
};
/* Parse the template, remove $END$ and identify parameters */
function parametersGet(code){
return new Promise((resolve, reject) => {
let parms = parametersParse(code);
if (parms.length === 0) {
/* There is no parameters */
resolve('');
} else {
/* Get parameter input from the user */
_logBlue(`\n${code}\n`);
/* readLine() */
let QA = parms.replaceAll('_', ' ');
_io.IO().readLine(`Please enter '${QA[0]}':`)
.then((result) => {
if (parms.length === 2) {
/* readLine() */
_io.IO().readLine(`Please enter '${QA[1]}':`)
.then((result2) => {
resolve({parameter1: parms[0], keyword1: result,
parameter2: parms[1], keyword2: result2});
}).catch((err) => resolve(''))
} else {
resolve({parameter1: parms[0], keyword1: result});
}
}).catch((err) => resolve(''));
}
});
};
// Exports --------------------------
module.exports = {parametersParse, parametersGet};