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-helper
Then 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/isset-helper@3.1/dist/isset.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/mcstreetguy/isset-helper@3.1/dist/isset.min.js"></script>
<script src="https://bundle.run/isset-helper@3.1/dist/isset.min.js"></script>
<script src="https://unpkg.com/isset-helper@3.1/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:
variable
is notnull
variable
is notundefined
- If
type
is a string,typeof variable
has to matchtype
, otherwisevariable
has to matchinstanceof type
- If
type
is"string"
, the length ofvariable
is greater than zero - If
type
is"array"
,variable
has to pass theArray.isArray()
check - If
type
is"integer"
,variable
has to pass theNumber.isInteger()
check - If
type
is"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
,0
and 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.