1.0.4 • Published 6 years ago
typecheck-extended v1.0.4
typecheck-extended ·

JavaScript type checker with extended types. Validates all built-in types. Additionally adds support for enums and makes an easier distinction between array and object.
Install
npm i typecheck-extended
Available Types
Standard Types
The following native JS types are supported as-is:
booleanfunctionnumberstringsymbolundefined
Extended Types
array: Arrays only. (ex.['a', 'b', 'c'])enum: Adds enum support.object: Non-array objects only. (ex.{ a: 1, b: 2, c: 3 })
In javascript, arrays have a typeof "object". typecheck-extended excludes arrays from an "object" type check.
/*
Standard Javascript
*/
>> typeof ['River Tam', 'Mal Reynolds']; // Returns "object"
>> typeof { name: 'Kaylee Frye' }; // Returns "object"
>> Array.isArray(['River Tam', 'Mal Reynolds']); // Returns true
>> Array.isArray({ name: 'Kaylee Frye' }); // Returns false
/*
typecheck-extended
*/
>> TypeCheck(['River Tam', 'Mal Reynolds'], 'array'); // Returns true
>> TypeCheck({ name: 'Kaylee Frye' }, 'array'); // Throws error
>> TypeCheck({ name: 'Kaylee Frye' }, 'object'); // Returns true
>> TypeCheck(['River Tam', 'Mal Reynolds'], 'object'); // Throws errorExample Usage
Parameters
parameter: Any - The parameter to have its type validatedtype: String - Expected type of parameter. Limited to one of the Available Types listed above.required: Bool - Defaults totrue. (Optional).format: Array - List of validenums. (Optional).
Ex. Required String:
name must be received AND be string.
function SayHi(name) {
TypeCheck(name, 'string');
return (`Hi ${name}!`);
}Ex. Optional String:
name can be undefined or null
If name is received, it must be string.
function SayHi2(name) {
TypeCheck(name, 'string', false);
if (name) {
return (`Hi ${name}!`);
}
return ("Hi, I'm typecheck-extended. What's your name?");
}Ex. Required Enum:
uuid must be received AND be string.color must be received AND be red, green, or blue.
const availableColors = ['red', 'green', 'blue'];
function SaveColorValue(uuid, color) {
TypeCheck(uuid, 'string');
TypeCheck(color, 'enum', true, availableColors);
SaveToDb(uuid, color);
}