This package has been deprecated

Author message:

INFO: '@smockle/safe' is no longer maintained.

@smockle/safe

3.0.2 • Public • Published

npm Build Status Build status codecov Known Vulnerabilities Greenkeeper badge

safe

Verifies argument types.

Installation

Run npm install --save @smockle/safe to add safe to your project.

Usage

safe can be called within a function to verify argument types:

const safe = require('./lib/safe').safe

function toUpperAndNotEmpty (xs, x) {
  const unsafe = safe([
    { name: 'xs', type: 'array' },
    { name: 'x', type: 'string' }
  ], arguments)
  if (unsafe) throw unsafe
  return xs.concat(x ? x.toUpperCase() : [])
}

const a = [ 'aaa', 222, '', 'ccc', '' ]
a.reduce(toUpperAndNotEmpty, [])
// Throws TypeError('x must be a string')

const b = [ 'aaa', 'bbb', '', 'ccc', '' ]
b.reduce(toUpperAndNotEmpty, [])
// [ 'AAA', 'BBB', 'CCC' ]

safe also includes a wrapper that accepts functions as a callback:

const safe = require('./lib/wrapper').safe

const toUpperAndNotEmpty = safe([
  { name: 'xs', type: 'array' },
  { name: 'x', type: 'string' }
])(
  function (xs, x) {
    return xs.concat(x ? x.toUpperCase() : [])
  }
)

const a = [ 'aaa', 222, '', 'ccc', '' ]
a.reduce(toUpperAndNotEmpty, [])
// Throws TypeError('x must be a string')

const b = [ 'aaa', 'bbb', '', 'ccc', '' ]
b.reduce(toUpperAndNotEmpty, [])
// [ 'AAA', 'BBB', 'CCC' ]

API Reference

safe.IDENTITY : Object.<string, string>

Dictionary of type classes.

Kind: static constant of safe

safe.identifyTypeClass(type) ⇒ string | null

Select type class matching the provided parameter.

Kind: static method of safe
Returns: string | null - Type class.

Param Type Description
type string String representation of a primitive or instantiable type.

safe.isSafe(type, value) ⇒ Boolean

Whether value is of provided type.

Kind: static method of safe
Returns: Boolean - Value is of provided type.

Param Type Description
type string String representation of a primitive or instantiable type.
value * Value to check.

safe.safe(types, value) ⇒ TypeError

Create TypeError when an argument doesn’t match provided type.

Kind: static method of safe
Returns: TypeError - Argument doesn’t match provided type.

Param Type Description
types Array.<Object.<string, string>> List of parameter names and types.
value * List of values to check.

ERROR, Cannot find module.

instantiable.instantiables : Object.<string, (function()|Object|number)>

Dictionary of instantiable names to instantiable types.

Kind: static constant of instantiable

instantiable.instantiableKeys : Array.<string>

List of instantiable types.

Kind: static constant of instantiable

instantiable.isInstantiable(type) ⇒ Boolean

Whether parameter represents an instantiable type.

Kind: static method of instantiable
Returns: Boolean - Parameter represents an instantiable type.

Param Type Description
type string String representation of an instantiable type.

instantiable.instanceOf(type, value) ⇒ Boolean

Whether value is of provided instantiable type.

Kind: static method of instantiable
Returns: Boolean - Value is of provided instantiable type.

Param Type Description
type string String representation of a instantiable type.
value * Value to check.

Testing

safe includes several unit tests. After cloning the safe repo locally, run npm install in the project folder to install dependencies. Run npm test to execute the tests.

Dependents (0)

Package Sidebar

Install

npm i @smockle/safe

Weekly Downloads

7

Version

3.0.2

License

ISC

Last publish

Collaborators

  • smockle