Add utils.script.runner
This commit is contained in:
parent
6455376a97
commit
40eee0a442
1 changed files with 25 additions and 0 deletions
|
@ -87,6 +87,31 @@ class script extends utils {
|
|||
return `${random.number()} % ${o.pick(objName)}.length`
|
||||
}
|
||||
|
||||
static runner (cmds) {
|
||||
/**
|
||||
* Wrap command(s) in setInterval, setTimeout, loop or run directly
|
||||
* @param {Object|String} cmds - Command(s) to be executed
|
||||
*/
|
||||
cmds = (Array.isArray(cmds)) ? cmds : [cmds]
|
||||
cmds = cmds.filter(function (i) { return i !== undefined })
|
||||
if (cmds.length) {
|
||||
if (random.chance(50)) {
|
||||
// Wrap each command in try/catch for use in setInterval, setTimeout, repeater
|
||||
switch (random.number(3)) {
|
||||
case 0:
|
||||
return `setInterval(function () { ${utils.script.safely(cmds)} }, ${random.range(100, 400)} )`
|
||||
case 1:
|
||||
return `setTimeout(function () { ${utils.script.safely(cmds)} }, ${random.range(100, 400)} )`
|
||||
case 2:
|
||||
let n = random.number(random.number(30))
|
||||
return `for (let i = 0; i < ${n}; i++) { ${utils.script.safely(cmds)} }`
|
||||
}
|
||||
} else {
|
||||
return cmds
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static safely (obj) {
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map(s => utils.script.safely(s)).join(' ')
|
||||
|
|
Loading…
Reference in a new issue