You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
976 B
JavaScript

6 years ago
/*!
* expand-range <https://github.com/jonschlinkert/expand-range>
*
* Copyright (c) 2014-2015, Jon Schlinkert.
* Licensed under the MIT license.
*/
'use strict';
var fill = require('fill-range');
module.exports = function expandRange(str, options, fn) {
if (typeof str !== 'string') {
throw new TypeError('expand-range expects a string.');
}
if (typeof options === 'function') {
fn = options;
options = {};
}
if (typeof options === 'boolean') {
options = {};
options.makeRe = true;
}
// create arguments to pass to fill-range
var opts = options || {};
var args = str.split('..');
var len = args.length;
if (len > 3) { return str; }
// if only one argument, it can't expand so return it
if (len === 1) { return args; }
// if `true`, tell fill-range to regexify the string
if (typeof fn === 'boolean' && fn === true) {
opts.makeRe = true;
}
args.push(opts);
return fill.apply(null, args.concat(fn));
};