1.0.2 • Published 4 years ago
@hoaku/filter v1.0.2
Hoaku Filter
Checks if a variable meets certain requirements, like length or if it matches regex, all in one handy function.
Example usage
const Filter = require("@hoaku/filter");
const filter = new Filter({
filters: {
username: {
prefix: "USERNAME",
allowedTypes: ["string"],
minStringLength: 4,
maxStringLength: 30,
matchRegex: /^[a-zA-Z0-9_]*$/
}
}
});
const username = "realmy!";
const filterResult = filter("username", username);
console.log(filterResult);This would print out { passed: false, error: 'USERNAME_FORMAT_INCORRECT' }, because the string didn't match the regex pattern.
new Filter(globalSettings)
The class that require("@hoaku/filter") returns.
globalSettings (Object)
filters(Object): The object where the filters are stored, which are reusable- Filter name: The filter object, which has settings that apply to the filter.
Filter name
prefix: The prefix in front of the error messages. For example, if it's "USERNAME", error messages could look like "USERNAME_UNDEFINED". The default value is"INPUT".required: Whether or not the variable to check can be undefined. If it is undefined andrequiredis set tofalse, it would return{ passed: true }. If this is incorrect, it returns an error message likePREFIX_UNDEFINED. The default value istrue.allowedTypes: The types that the variable is allowed to be. If this is incorrect, it returns an error message likePREFIX_WRONG_TYPE. Note: This isn't the same list of types as whattypeofcan return. These are the types that are allowed:stringbooleannumber(This is bothnumberandbigint)nullarrayobject(This only counts as a key-value object, like{ hello: "world" })
minStringLength: The minimum length a string can be. If this is incorrect, it returns an error message likePREFIX_TOO_SHORT.maxStringLength: The maximum length a string can be. If this is incorrect, it returns an error message likePREFIX_TOO_LONG.matchRegex: The regex pattern a string must match. If this is incorrect, it returns an error message likePREFIX_FORMAT_INCORRECT.