Skip to content

Instantly share code, notes, and snippets.

@wryk
Created August 1, 2014 10:22
Show Gist options
  • Select an option

  • Save wryk/1ddd1958cd41b34365d6 to your computer and use it in GitHub Desktop.

Select an option

Save wryk/1ddd1958cd41b34365d6 to your computer and use it in GitHub Desktop.
function stringTypePlugin (validator) {
return function () {
validator.add(function (metadata) {
return metadata.type === 'string';
}, function (value) {
return typeof value === 'string';
})
};
}
function arrayTypePlugin (validator) {
return function () {
var type;
validator.add(function (metadata) {
type = metadata.type[0];
return Array.isArray(type = metadata.type);
}, function (value) {
validator.rules .....
})
};
}
validate = lul()
.add(function (metadata) { return metadata.type === 'string' }, function (value, metadata) { return typeof value === 'string'; })
.add(function (metadata) { return metadata.type === 'number' }, function (value, metadata) { return typeof value === 'number'; })
.add(function (metadata) { return metadata.type === 'enum' }, function (value, metadata) { return ~metadata.values.indexOf(value); })
// .add(function (metadata) { return metadata.type === 'number' }, function (value, metadata) { return typeof value === 'number' })
;
var model = {
pseudo: {type: 'string'},
level: {type: 'number'},
# spells: {type: ['string']},
weapon: {type: 'enum', values: ['sword', 'gun']}
};
var object = {
pseudo: 'wryk',
level: 25,
# spells: ['fire ball', 'dash'],
weapon: 'sword'
};
validate(model, object);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment