309 lines
6.1 KiB
Markdown
309 lines
6.1 KiB
Markdown
|
<!-- Please do not edit this file. Edit the `blah` field in the `package.json` instead. If in doubt, open an issue. -->
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
[![typpy](http://i.imgur.com/FkoAc5n.png)](#)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
# typpy
|
||
|
|
||
|
[![Support me on Patreon][badge_patreon]][patreon] [![Buy me a book][badge_amazon]][amazon] [![PayPal][badge_paypal_donate]][paypal-donations] [![Ask me anything](https://img.shields.io/badge/ask%20me-anything-1abc9c.svg)](https://github.com/IonicaBizau/ama) [![Travis](https://img.shields.io/travis/IonicaBizau/typpy.svg)](https://travis-ci.org/IonicaBizau/typpy/) [![Version](https://img.shields.io/npm/v/typpy.svg)](https://www.npmjs.com/package/typpy) [![Downloads](https://img.shields.io/npm/dt/typpy.svg)](https://www.npmjs.com/package/typpy) [![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/johnnyb?utm_source=github&utm_medium=button&utm_term=johnnyb&utm_campaign=github)
|
||
|
|
||
|
<a href="https://www.buymeacoffee.com/H96WwChMy" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png" alt="Buy Me A Coffee"></a>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
> A better typeof for JavaScript.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :cloud: Installation
|
||
|
|
||
|
```sh
|
||
|
# Using npm
|
||
|
npm install --save typpy
|
||
|
|
||
|
# Using yarn
|
||
|
yarn add typpy
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :clipboard: Example
|
||
|
|
||
|
|
||
|
|
||
|
```js
|
||
|
// Dependencies
|
||
|
var Typpy = require("typpy");
|
||
|
|
||
|
console.log(Typpy(0));
|
||
|
// => "number"
|
||
|
|
||
|
console.log(Typpy("", String));
|
||
|
// => true
|
||
|
|
||
|
console.log(Typpy.is(null, "null"));
|
||
|
// => true
|
||
|
|
||
|
console.log(Typpy.get([]));
|
||
|
// => Array
|
||
|
|
||
|
console.log(Typpy({}, true));
|
||
|
// => false
|
||
|
|
||
|
console.log(Typpy({}, Object));
|
||
|
// => true
|
||
|
|
||
|
console.log(Typpy.get({}));
|
||
|
// => Object
|
||
|
|
||
|
console.log(Typpy.get(42, true));
|
||
|
// => "number"
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :question: Get Help
|
||
|
|
||
|
There are few ways to get help:
|
||
|
|
||
|
|
||
|
|
||
|
1. Please [post questions on Stack Overflow](https://stackoverflow.com/questions/ask). You can open issues with questions, as long you add a link to your Stack Overflow question.
|
||
|
2. For bug reports and feature requests, open issues. :bug:
|
||
|
3. For direct and quick help, you can [use Codementor](https://www.codementor.io/johnnyb). :rocket:
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :memo: Documentation
|
||
|
|
||
|
|
||
|
### `Typpy(input, target)`
|
||
|
Gets the type of the input value or compares it
|
||
|
with a provided type.
|
||
|
|
||
|
Usage:
|
||
|
|
||
|
```js
|
||
|
Typpy({}) // => "object"
|
||
|
Typpy(42, Number); // => true
|
||
|
Typpy.get([], "array"); => true
|
||
|
```
|
||
|
|
||
|
#### Params
|
||
|
|
||
|
- **Anything** `input`: The input value.
|
||
|
- **Constructor|String** `target`: The target type. It could be a string (e.g. `"array"`) or a
|
||
|
constructor (e.g. `Array`).
|
||
|
|
||
|
#### Return
|
||
|
- **String|Boolean** It returns `true` if the input has the provided type `target` (if was provided),
|
||
|
`false` if the input type does *not* have the provided type
|
||
|
`target` or the stringified type of the input (always lowercase).
|
||
|
|
||
|
### `Typpy.is(input, target)`
|
||
|
Checks if the input value has a specified type.
|
||
|
|
||
|
#### Params
|
||
|
|
||
|
- **Anything** `input`: The input value.
|
||
|
- **Constructor|String** `target`: The target type. It could be a string (e.g. `"array"`) or a
|
||
|
constructor (e.g. `Array`).
|
||
|
|
||
|
#### Return
|
||
|
- **Boolean** `true`, if the input has the same type with the target or `false` otherwise.
|
||
|
|
||
|
### `Typpy.get(input, str)`
|
||
|
Gets the type of the input value. This is used internally.
|
||
|
|
||
|
#### Params
|
||
|
|
||
|
- **Anything** `input`: The input value.
|
||
|
- **Boolean** `str`: A flag to indicate if the return value should be a string or not.
|
||
|
|
||
|
#### Return
|
||
|
- **Constructor|String** The input value constructor (if any) or the stringified type (always lowercase).
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :yum: How to contribute
|
||
|
Have an idea? Found a bug? See [how to contribute][contributing].
|
||
|
|
||
|
|
||
|
## :sparkling_heart: Support my projects
|
||
|
I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously,
|
||
|
this takes time. You can integrate and use these projects in your applications *for free*! You can even change the source code and redistribute (even resell it).
|
||
|
|
||
|
However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:
|
||
|
|
||
|
|
||
|
- Starring and sharing the projects you like :rocket:
|
||
|
- [![Buy me a book][badge_amazon]][amazon]—I love books! I will remember you after years if you buy me one. :grin: :book:
|
||
|
- [![PayPal][badge_paypal]][paypal-donations]—You can make one-time donations via PayPal. I'll probably buy a ~~coffee~~ tea. :tea:
|
||
|
- [![Support me on Patreon][badge_patreon]][patreon]—Set up a recurring monthly donation and you will get interesting news about what I'm doing (things that I don't share with everyone).
|
||
|
- **Bitcoin**—You can send me bitcoins at this address (or scanning the code below): `1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6`
|
||
|
|
||
|
![](https://i.imgur.com/z6OQI95.png)
|
||
|
|
||
|
|
||
|
Thanks! :heart:
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :dizzy: Where is this library used?
|
||
|
If you are using this library in one of your projects, add it in this list. :sparkles:
|
||
|
|
||
|
- `ul`
|
||
|
- `scrape-it`
|
||
|
- `err`
|
||
|
- `bug-killer`
|
||
|
- `tilda`
|
||
|
- `deffy`
|
||
|
- `couleurs`
|
||
|
- `auto-parse`
|
||
|
- `barbe`
|
||
|
- `elm-select`
|
||
|
- `exec-limiter`
|
||
|
- `color-it`
|
||
|
- `diable`
|
||
|
- `write-file-p`
|
||
|
- `obj-flatten`
|
||
|
- `cli-gh-cal`
|
||
|
- `cute-logger`
|
||
|
- `bloggify-ajs-renderer`
|
||
|
- `page-changed`
|
||
|
- `transformer`
|
||
|
- `bloggify-flexible-router`
|
||
|
- `bloggify-renderer-ajs`
|
||
|
- `git-stats`
|
||
|
- `engine-parser`
|
||
|
- `engine-builder`
|
||
|
- `enny`
|
||
|
- `engine-flow-types`
|
||
|
- `gh-repos`
|
||
|
- `ghcal`
|
||
|
- `ghosty`
|
||
|
- `asyncer.js`
|
||
|
- `babel-it`
|
||
|
- `blah`
|
||
|
- `cli-circle`
|
||
|
- `validify`
|
||
|
- `limit-it`
|
||
|
- `obj2env`
|
||
|
- `lynn-touch`
|
||
|
- `scrape-it-plus`
|
||
|
- `@slikts/scrape-it`
|
||
|
- `dom-repeater`
|
||
|
- `animato`
|
||
|
- `git-stats-importer`
|
||
|
- `regarde`
|
||
|
- `flattenize`
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## :scroll: License
|
||
|
|
||
|
[MIT][license] © [Ionică Bizău][website]
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
[license]: /LICENSE
|
||
|
[website]: https://ionicabizau.net
|
||
|
[contributing]: /CONTRIBUTING.md
|
||
|
[docs]: /DOCUMENTATION.md
|
||
|
[badge_patreon]: https://ionicabizau.github.io/badges/patreon.svg
|
||
|
[badge_amazon]: https://ionicabizau.github.io/badges/amazon.svg
|
||
|
[badge_paypal]: https://ionicabizau.github.io/badges/paypal.svg
|
||
|
[badge_paypal_donate]: https://ionicabizau.github.io/badges/paypal_donate.svg
|
||
|
[patreon]: https://www.patreon.com/ionicabizau
|
||
|
[amazon]: http://amzn.eu/hRo9sIZ
|
||
|
[paypal-donations]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RVXDDLKKLQRJW
|