Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
canvas
/
node_modules
/
undertaker
/
lib
/
helpers
/
Filename :
normalizeArgs.js
back
Copy
'use strict'; var assert = require('assert'); var map = require('arr-map'); var flatten = require('arr-flatten'); var levenshtein = require('fast-levenshtein'); function normalizeArgs(registry, args) { function getFunction(task) { if (typeof task === 'function') { return task; } var fn = registry.get(task); if (!fn) { var similar = similarTasks(registry, task); if (similar.length > 0) { assert(false, 'Task never defined: ' + task + ' - did you mean? ' + similar.join(', ')); } else { assert(false, 'Task never defined: ' + task); } } return fn; } var flattenArgs = flatten(args); assert(flattenArgs.length, 'One or more tasks should be combined using series or parallel'); return map(flattenArgs, getFunction); } function similarTasks(registry, queryTask) { if (typeof queryTask !== 'string') { return []; } var tasks = registry.tasks(); var similarTasks = []; for (var task in tasks) { if (tasks.hasOwnProperty(task)) { var distance = levenshtein.get(task, queryTask); var allowedDistance = Math.floor(0.4 * task.length) + 1; if (distance < allowedDistance) { similarTasks.push(task); } } } return similarTasks; } module.exports = normalizeArgs;