UNPKG

llearn

Version:

Bad-ass developers create awesome apps

78 lines (69 loc) 2.92 kB
// 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};