helpers/arrays/range.js
'use strict';
const _isNumber = require('lodash/isNumber'),
_range = require('lodash/range');
/**
* return an array of numbers, in order
* _note:_ can be used inline or as a block helper (will iterate through all numbers)
* @param {number} [start] on this number (defaults to 0)
* @param {number} end on this number
* @param {object} [options]
* @return {array}
*/
module.exports = function (start, end, options) {
let range;
if (!_isNumber(end)) {
// if they only specify one argument, start from 0
options = end;
end = start;
start = 0;
}
range = _range(start, end);
if (options && options.fn) {
// block-level, iterate through the range!
// pass each number as the context to options.fn
return range.map(options.fn).join('');
} else {
return range;
}
};
module.exports.example = {
code: '{{#range 1 5}}{{ this }}{{/range}}',
result: '1234'
};