Comparing version 0.1.2 to 0.2.0
146
lib/form.js
@@ -1,25 +0,23 @@ | ||
var | ||
async = require('async'), | ||
validator = require('validator'), | ||
path = require('path'), | ||
util = require('util'); | ||
(function () { | ||
'use strict'; | ||
var | ||
check = validator.check, | ||
sanitize = validator.sanitize; | ||
var | ||
async = require('async'), | ||
validator = require('validator'), | ||
check = validator.check, | ||
sanitize = validator.sanitize, | ||
Form = function (fields) { | ||
this.fields = fields; | ||
}; | ||
module.exports.Validator = new validator.Validator(); | ||
module.exports.Filter = new validator.Filter(); | ||
module.exports.Validator = new validator.Validator(); | ||
module.exports.Filter = new validator.Filter(); | ||
var Form = function(fields) { | ||
this.fields = fields; | ||
}; | ||
Form.prototype.addTask = function(tasks, data, field, handlers) { | ||
tasks.push( | ||
function(callback) { | ||
Form.prototype.addTask = function (tasks, data, field, handlers) { | ||
tasks[field] = function (callback) { | ||
async.concatSeries( | ||
handlers, | ||
function(task, callback) { | ||
task(data, field, function(result) { | ||
function (task, callback) { | ||
task(data, field, function (result) { | ||
if (result !== undefined) { | ||
@@ -32,64 +30,76 @@ callback(result, undefined); | ||
}, | ||
function(error, results) { | ||
function (error, results) { | ||
if (error !== undefined) { | ||
callback(undefined, [ error ]); | ||
callback(undefined, error); | ||
} else { | ||
callback(undefined, results); | ||
callback(undefined, undefined); | ||
} | ||
} | ||
); | ||
}; | ||
}; | ||
Form.prototype.process = function (request, callback) { | ||
var | ||
data = {}, | ||
tasks = {}, | ||
field; | ||
for (field in this.fields) { | ||
data[field] = request[field]; | ||
this.addTask(tasks, data, field, this.fields[field]); | ||
} | ||
); | ||
}; | ||
async.parallel(tasks, function (error, results) { | ||
var | ||
hasErrors = false, | ||
field; | ||
Form.prototype.process = function(request, callback) { | ||
var data = {}; | ||
var tasks = []; | ||
for (var field in this.fields) { | ||
data[field] = request[field]; | ||
this.addTask(tasks, data, field, this.fields[field]); | ||
} | ||
async.parallel(tasks, function(error, results) { | ||
var errors = []; | ||
results.forEach(function(result) { | ||
errors = errors.concat(result); | ||
for (field in results) { | ||
if (results[field] === null) { | ||
delete (results[field]); | ||
} else { | ||
hasErrors = true; | ||
} | ||
} | ||
if (hasErrors) { | ||
callback(results, undefined); | ||
} else { | ||
callback(undefined, data); | ||
} | ||
}); | ||
if (errors.length > 0) { | ||
callback(errors, undefined); | ||
} else { | ||
callback(undefined, data); | ||
} | ||
}); | ||
}; | ||
module.exports.filter = function(filter) { | ||
var args = Array.prototype.slice.call(arguments, 1); | ||
return function(fields, field, callback) { | ||
var container = sanitize((fields[field] !== undefined) ? fields[field] : ''); | ||
container.fields = fields; | ||
container.field = field; | ||
fields[field] = filter.apply(container, args); | ||
callback(); | ||
}; | ||
}; | ||
module.exports.validator = function(validator, message) { | ||
var args = Array.prototype.slice.call(arguments, 2); | ||
return function(fields, field, callback) { | ||
var container = check((fields[field] !== undefined) ? fields[field] : '', message); | ||
container.fields = fields; | ||
container.field = field; | ||
try { | ||
validator.apply(container, args); | ||
module.exports.filter = function (filter) { | ||
var args = Array.prototype.slice.call(arguments, 1); | ||
return function (fields, field, callback) { | ||
var container = sanitize((fields[field] !== undefined) ? fields[field] : ''); | ||
container.fields = fields; | ||
container.field = field; | ||
fields[field] = filter.apply(container, args); | ||
callback(); | ||
} catch(e) { | ||
var error = {}; | ||
error[field] = e.message; | ||
callback(error); | ||
} | ||
}; | ||
}; | ||
}; | ||
module.exports.create = function(fields) { | ||
return new Form(fields); | ||
}; | ||
module.exports.validator = function (validator) { | ||
var | ||
args = Array.prototype.slice.call(arguments, 1, arguments.length - 1), | ||
message = arguments[arguments.length - 1]; | ||
return function (fields, field, callback) { | ||
var container = check((fields[field] !== undefined) ? fields[field] : '', message); | ||
container.fields = fields; | ||
container.field = field; | ||
try { | ||
validator.apply(container, args); | ||
callback(); | ||
} catch (e) { | ||
callback(e.message); | ||
} | ||
}; | ||
}; | ||
module.exports.create = function (fields) { | ||
return new Form(fields); | ||
}; | ||
}()); |
{ | ||
"name" : "form", | ||
"version" : "0.1.2", | ||
"version" : "0.2.0", | ||
"description" : "Form processor for filter and validation form data", | ||
@@ -10,6 +10,6 @@ "keywords": ["form"], | ||
"dependencies": { | ||
"validator": ">= 0.2.8", | ||
"async": ">= 0.1.15" | ||
"validator": ">= 0.4.9", | ||
"async": ">= 0.1.22" | ||
}, | ||
"engines" : { "node": ">= 0.2.0" } | ||
"engines" : { "node": ">= 0.2.2" } | ||
} |
Non-existent author
Supply chain riskThe package was published by an npm account that no longer exists.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
3937
91
0
1
Updatedasync@>= 0.1.22
Updatedvalidator@>= 0.4.9