@octetstream/invariant

Declarative errors throwing for Node.js

Usage no npm install needed!

<script type="module">
  import octetstreamInvariant from 'https://cdn.skypack.dev/@octetstream/invariant';
</script>

README

@octetstream/invariant

Declarative errors throwing for Node.js

dependencies Status devDependencies Status Build Status Code Coverage

API

invariant(predicate, error) -> {void}

  • boolean predicate – a result of some condition. Error will threw if predicate is true.
  • object error – some error object

invatiant(predicate, message[, ...format]) -> {void}

  • boolean predicate – a result of some condition. Error will threw if predicate is true.
  • string message – an error message
  • any format – see more about the format in a sprintf-js documentation

invariant(predicate, Error, message[, ...format]) -> {void}

  • boolean predicate – a result of some condition. Error will threw if predicate is true.
  • Function Error – custom error class that will be used as an error constructor
  • string message – an error message
  • any format – see more about the format in a sprintf-js documentation

invariant.reject(predicate, message[, ...format]) -> {Promise<void>}

Do the same things as invariant, but returns Promise that will be rejected when predicate is true. This function have same API as invariant.

Example

  import invariant from "@octetstream/invariant"

  // some of your code...

  // Will threw a TypeError if "value" is not a string
  invariant(typeof value !== "string", TypeError, "The value should be a string, but given type is: %s", typeof value)

  invariant(typeof value !== "string", "The value should be a string, but given type is: %s", typeof value)

  invariant(typeof value !== "string", new TypeError(`The value should be a string, but given type is: ${typeof value}`))

  // Will return rejected Promise instead of throw error synchronously
  invariant.reject(typeof value !== "string", TypeError, "The value should be a string, but given type is: %s", typeof value)
    .catch(err => console.error(err))