19 lines
623 B
JavaScript
Executable file
19 lines
623 B
JavaScript
Executable file
const getVariableName = require('./getVariableName');
|
|
|
|
module.exports = function createPatternBuilder(dimension) {
|
|
|
|
return pattern;
|
|
|
|
function pattern(template, config) {
|
|
let indent = (config && config.indent) || 0;
|
|
let join = (config && config.join !== undefined) ? config.join : '\n';
|
|
let indentString = Array(indent + 1).join(' ');
|
|
let buffer = [];
|
|
for (let i = 0; i < dimension; ++i) {
|
|
let variableName = getVariableName(i);
|
|
let prefix = (i === 0) ? '' : indentString;
|
|
buffer.push(prefix + template.replace(/{var}/g, variableName));
|
|
}
|
|
return buffer.join(join);
|
|
}
|
|
};
|