createPatternBuilder.js 623 B

12345678910111213141516171819
  1. const getVariableName = require('./getVariableName');
  2. module.exports = function createPatternBuilder(dimension) {
  3. return pattern;
  4. function pattern(template, config) {
  5. let indent = (config && config.indent) || 0;
  6. let join = (config && config.join !== undefined) ? config.join : '\n';
  7. let indentString = Array(indent + 1).join(' ');
  8. let buffer = [];
  9. for (let i = 0; i < dimension; ++i) {
  10. let variableName = getVariableName(i);
  11. let prefix = (i === 0) ? '' : indentString;
  12. buffer.push(prefix + template.replace(/{var}/g, variableName));
  13. }
  14. return buffer.join(join);
  15. }
  16. };