Get rid of weak typing and improve your assertions: A tiny helper method for Javascript
Since checking variable types and existence always has been painful in Javascript, validation assertions normally are exhausting to write. This module solves this definitely.
| IE | Edge | Firefox | Chrome | Safari | Opera | Node.js |
|---|---|---|---|---|---|---|
| 9+ | 12+ | 4+ | 5+ | 5+ | 11.5+ | all |
Install the library through your preferred package manager:
$ npm install --save isset-helper
# or
$ yarn add isset-helperThen you can require the module as usual:
const isset = require('isset-helper');Include one of the following script tags in your pages head:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/isset.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/mcstreetguy/[email protected]/dist/isset.min.js"></script>
<script src="https://bundle.run/[email protected]/dist/isset.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/isset.min.js"></script>The library registers the isset function automatically on the window object.
isset(variable, type);variable can be anything, it's value is going to be checked.
type can be a string, object constructor or even be omitted.
The algorithm follows the subsequent rules:
variableis notnullvariableis notundefined- If
typeis a string,typeof variablehas to matchtype, otherwisevariablehas to matchinstanceof type - If
typeis"string", the length ofvariableis greater than zero - If
typeis"array",variablehas to pass theArray.isArray()check - If
typeis"integer",variablehas to pass theNumber.isInteger()check - If
typeis"float"or"double", the inverse of rule 6 applies (Number.isInteger()has to returnfalse)
Please notice:
- The algorithm doesn't check for the exact value (apart from the empty string case mentioned above), thus
false,0and other "falsy" values will also be considered valid.
If, contrary to expectations, you find an error in the function, please report it to the Issues page. Feel free to make changes to a fork yourself and propose a detailed pull request when finished.
This library is licensed under the MIT License. You may find a copy of the license at the root of the project source.