Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
The easy-peasy zero-dependency JavaScript type checker that asks, "What typa input is that?" Minified packaged version is 2 entire KB.
Notice: Breaking changes in v0.3.0. New bundler, plus nll
is now nil
and noru
is now nullish
.
yarn add typa || npm install typa
yarn test
import is from 'typa' || const is = require('typa')
const hello = 'Hello!'
const goodbye = ['Goodbye!', 'Adios!', 'Au revoir!']
if (is.str(hello)) console.log(hello)
// => 'Hello!'
if (is.str(goodbye)) console.log(hello)
// => no result
Ternary operator that checks if the supplied value matches the specified type, then returns the first callback function (or value) if true or the second callback function (or value) if false.
.typa($type, $value, $fn1, $fn2)
const isStr = () => console.log('I am a string')
const aintStr = () => console.log('I am not a string')
is.typa('str', 'Am I a string?', isStr, aintStr)
// => 'I am a string'
is.typa('str', ['Am', 'I', 'a', 'string', '?'], isStr, aintStr)
// => 'I am not a string'
Returns a string or an array of strings matching the type of the supplied value.
.what($value)
is.what('This is a string')
// => 'string'
is.what(['This', 'is', 'an', 'array'])
// => ['array', 'object']
const isArray = is.arr(['text', 12])
// => true
.bad($value) — Null, undefined, empty, or an error
let isBad = is.bad(null)
// => true
isBad = is.bad(undefined)
// => true
isBad = is.bad({})
// => true
isBad = is.bad(new Error('This is an error'))
// => true
let isBool = is.bool(true)
// => true
isBool = is.bool(false)
// => true
const isDate = is.date(new Date())
// => true
.empty($value) — Empty string, array, or object
let isEmpty = is.empty('')
// => true
isEmpty = is.empty([])
// => true
isEmpty = is.empty({})
// => true
const isErr = is.err(new Error('This is an error.'))
// => true
const isFn = is.fn(() => {
console.log('Hi!')
})
// => true
const isInt = is.int(12)
// => true
.json($value, $type ['str'|'obj']) — Serialized JSON object
const isJson = is.json('{"key": "value"}')
const isJson = is.json({ key: 'value' }, 'obj')
// => true
const isNil = is.nil(null)
// => true
.nullish($value) — Null or Undefined
let isNullish = is.nullish(null)
// => true
isNullish = is.nullish(undefined)
// => true
const isNum = is.num(28.2)
// => true
const isObj = is.obj({ key: 'value' })
// => true
const myPromise = new Promise((resolve, reject) => {
try {
console.log('I make a promise to you')
resolve()
} catch (err) {
reject(err)
}
})
const isProm = is.prom(myPromise)
// => true
.regex($value) — Regular Expression
const isRegex = is.regex(new Regex(/\W/))
// => true
const isStr = is.str('text')
// => true
const isSym = is.sym(Symbol(42))
// => true
const isUndef = is.undef(undefined)
// => true
👤 Daniel Sieradski hello@self.agency
Most of the checks comprising this library were pilfered from this blog post by Webbjocke.
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
FAQs
Super-simple, zero-dependency JavaScript type checker utility.
The npm package typa receives a total of 51 weekly downloads. As such, typa popularity was classified as not popular.
We found that typa demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.