TEMPLATE ENGINE

by João Vitor Scheuermann

JavaScript

// ANIMATION ENGINE


function foundTemplateInString (RegExp, string) {
		let results = string.match(RegExp)
    return results
}

function removeFromArray (data, arr) {
		let toReturn = [];		
    for (let el of arr)  {
    		if (el !== "") toReturn.push(el);	    
    }
    return toReturn;
}

function cleanTemplate (RegExp, string) {
		let raw = string.split(RegExp);  
    let clean = removeFromArray('',raw);
    return clean;
}

function createObj (name, data) {
		let obj = {}
    obj[name] = data
		return obj;
}

let teste = ' arquivoX {name:HUE_BR, teste:rola} reqwrqwer qrqwerqwerqwrwerq werqwer {position:teste}';

function convertTemplatedString (string) {    
		
    let DATA = [];
    
		let template = /{.*?[A-z]}/mig;
		let clean = /[:,{,}, ]/;
    
    let rawTemplates = foundTemplateInString(template, string);    
    rawTemplates.forEach(el => {
    		let cleanArr = cleanTemplate(clean, el);
        	console.log(cleanArr)
          let objName = cleanArr[0];
        	let objValue = cleanArr[1];
          
          if (objValue === "true") {objValue = true}
          else if (objValue === "false") {objValue = false}
          else if (!isNaN(objValue)) {objValue = Number(objValue)};        

       	DATA.push(createObj(objName, objValue));
    })
    
    return DATA;
}	

let readyData = convertTemplatedString(teste)
console.log(readyData)