ci-scripts
Version:
Useful scripts to execute from your CI runner. For example, post to Slack and GitHub when your build completes:
25 lines (18 loc) • 568 B
JavaScript
const createParamEvalWrapper = (ci) => [
'(function (ci, {' + Object.keys(ci).join(',') + '}) { return `',
'`; })',
];
const evalParam = (ci, param) => {
if (typeof param === 'function') {
return param(ci);
}
const doEval = Boolean(ci.params.eval || ci.params.e);
if (doEval) {
const wrapper = createParamEvalWrapper(ci);
const script = wrapper[0] + String(param) + wrapper[1];
// eslint-disable-next-line no-eval
return eval(script)(ci, ci);
}
return param;
};
module.exports = evalParam;