JSFiddle - React, Tailwind, and code Playground
by Alistair Brown
HTML
<script src="https://rawgithub.com/alistairjcbrown/check-type/master/lib/check-type.js"></script>
JavaScript
// Set up `check-type`
var custom_types = {};
custom_types.isUsername = function(value) {
return /^\w+$/.test(value);
};
custom_types.isAuthObject = function(value) {
return check(value).matches({
"username": "username",
"password": "string"
});
};
// Initialise with underscorejs functions
check.init();
// Add custom functions too
check.init(custom_types);
// ---------------------
function handleAuthentication(request) {
var username, password;
if (check(request).has("auth") &&
check(request.auth).is("AuthObject")) {
username = request.auth.username;
password = request.auth.password;
return {
username: username,
password: password
};
}
return false;
}
// ---------------------
var success, request;
request = {
auth: {
username: "alistairjcbrown",
password: "abc123"
}
};
success = handleAuthentication(request);
console.log(success);
request = {
auth: {
username: "Alistair Brown",
password: "abc123"
}
};
success = handleAuthentication(request);
console.log(success);