mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 04:10:04 +02:00
add some packages
This commit is contained in:
82
node_modules/randomatic/index.js
generated
vendored
Normal file
82
node_modules/randomatic/index.js
generated
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
/*!
|
||||
* randomatic <https://github.com/jonschlinkert/randomatic>
|
||||
*
|
||||
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var isNumber = require('is-number');
|
||||
var typeOf = require('kind-of');
|
||||
|
||||
/**
|
||||
* Expose `randomatic`
|
||||
*/
|
||||
|
||||
module.exports = randomatic;
|
||||
|
||||
/**
|
||||
* Available mask characters
|
||||
*/
|
||||
|
||||
var type = {
|
||||
lower: 'abcdefghijklmnopqrstuvwxyz',
|
||||
upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
|
||||
number: '0123456789',
|
||||
special: '~!@#$%^&()_+-={}[];\',.'
|
||||
};
|
||||
|
||||
type.all = type.lower + type.upper + type.number + type.special;
|
||||
|
||||
/**
|
||||
* Generate random character sequences of a specified `length`,
|
||||
* based on the given `pattern`.
|
||||
*
|
||||
* @param {String} `pattern` The pattern to use for generating the random string.
|
||||
* @param {String} `length` The length of the string to generate.
|
||||
* @param {String} `options`
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function randomatic(pattern, length, options) {
|
||||
if (typeof pattern === 'undefined') {
|
||||
throw new Error('randomatic expects a string or number.');
|
||||
}
|
||||
|
||||
var custom = false;
|
||||
if (arguments.length === 1) {
|
||||
if (typeof pattern === 'string') {
|
||||
length = pattern.length;
|
||||
|
||||
} else if (isNumber(pattern)) {
|
||||
options = {}; length = pattern; pattern = '*';
|
||||
}
|
||||
}
|
||||
|
||||
if (typeOf(length) === 'object' && length.hasOwnProperty('chars')) {
|
||||
options = length;
|
||||
pattern = options.chars;
|
||||
length = pattern.length;
|
||||
custom = true;
|
||||
}
|
||||
|
||||
var opts = options || {};
|
||||
var mask = '';
|
||||
var res = '';
|
||||
|
||||
// Characters to be used
|
||||
if (pattern.indexOf('?') !== -1) mask += opts.chars;
|
||||
if (pattern.indexOf('a') !== -1) mask += type.lower;
|
||||
if (pattern.indexOf('A') !== -1) mask += type.upper;
|
||||
if (pattern.indexOf('0') !== -1) mask += type.number;
|
||||
if (pattern.indexOf('!') !== -1) mask += type.special;
|
||||
if (pattern.indexOf('*') !== -1) mask += type.all;
|
||||
if (custom) mask += pattern;
|
||||
|
||||
while (length--) {
|
||||
res += mask.charAt(parseInt(Math.random() * mask.length, 10));
|
||||
}
|
||||
return res;
|
||||
};
|
Reference in New Issue
Block a user