@apicart/brackets
Version:
Small, flexible, easy to use, component-oriented javascript template engine.
30 lines (22 loc) • 654 B
JavaScript
import {utils} from '../../../shared/utils';
import {getMacros} from '../../runtime/macros';
/**
* @param {[]} tokenMatchArray
* @return {string}
*/
export function processMacro(tokenMatchArray) {
var
macroName = tokenMatchArray[0],
macros = getMacros(),
parsedToken;
tokenMatchArray.shift();
if (typeof macros[macroName] === 'string') {
parsedToken = macros[macroName];
utils.each(tokenMatchArray, function (tokenMatchPartKey, tokenMatchPart) {
parsedToken = parsedToken.replace(new RegExp('#' + tokenMatchPartKey), tokenMatchPart);
});
} else {
parsedToken = macros[macroName](tokenMatchArray);
}
return parsedToken;
}