test import string with no configs (#279)

* test import string with no configs

* now working without ()

Signed-off-by: tech4GT <varun.gupta1798@gmail.com>

* update test

Signed-off-by: tech4GT <varun.gupta1798@gmail.com>

* refactor for readability

* refactor for pipes | between multiple step settings

* fixed bugs

* test fixed
This commit is contained in:
Jeffrey Warren
2018-06-03 13:22:40 -07:00
committed by GitHub
parent 871453b857
commit 37122d4c28
4 changed files with 11223 additions and 12381 deletions

View File

@@ -217,35 +217,42 @@ ImageSequencer = function ImageSequencer(options) {
inputs[input] = encodeURIComponent(inputs[input]);
}
var configurations = Object.keys(inputs).map(key=>key + ':' + inputs[key]).join(',');
var configurations = Object.keys(inputs).map(key => key + ':' + inputs[key]).join('|');
return `${step.options.name}(${configurations})`;
}
// Coverts stringified sequence into JSON
function importStringtoJson(str){
let steps = str.split('),');
steps.push(steps.splice(-1)[0].slice(0,-1));
let steps = str.split(',');
return steps.map(importStringtoJsonStep);
}
// Converts one stringified step into JSON
function importStringtoJsonStep(str){
str = [
str.substr(0,str.indexOf('(')),
str.slice(str.indexOf('(')+1)
];
if(str.indexOf('(') === -1) { // if there are no settings specified
var moduleName = str.substr(0);
stepSettings = "";
} else {
var moduleName = str.substr(0, str.indexOf('('));
stepSettings = str.slice(str.indexOf('(') + 1, -1);
}
str[1] = str[1].split(',').reduce(function(acc,cur,i){
cur = [
cur.substr(0,cur.indexOf(':')),
decodeURIComponent(cur.substr(cur.indexOf(':') + 1))
stepSettings = stepSettings.split('|').reduce(function formatSettings(accumulator, current, i){
var settingName = current.substr(0, current.indexOf(':')),
settingValue = current.substr(current.indexOf(':') + 1);
settingValue = settingValue.replace(/^\(/, '').replace(/\)$/, ''); // strip () at start/end
settingValue = decodeURIComponent(settingValue);
current = [
settingName,
settingValue
];
if(!!cur[0]) acc[cur[0]] = cur[1];
return acc;
},{});
if (!!settingName) accumulator[settingName] = settingValue;
return accumulator;
}, {});
return {
name : str[0],
options:str[1]
name : moduleName,
options: stepSettings
}
}