12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*!
- * 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));
- };
|