You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
976 B
43 lines
976 B
/*! |
|
* 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)); |
|
};
|
|
|