MatthiasMargot/redux-communication

View on GitHub
src/is-fsa-compliant/is-fsa-compliant.js

Summary

Maintainability
A
0 mins
Test Coverage
/*
 * returns whether or not a given action is compliant with
 * the FSA specification
 *
 * https://github.com/redux-utilities/flux-standard-action
 * */

function isFsaCompliant ({
  type,
  payload,
  meta,
  error,
}) {
  const typeIsString = typeof type === 'string'

  const payloadIsMissingOrObject = !payload || payload instanceof Object

  const metaIsMissingOrObject = !meta || meta instanceof Object

  const errorIsMissingOrBoolean = error === undefined || typeof error === 'boolean'

  return (
    typeIsString
    && payloadIsMissingOrObject
    && metaIsMissingOrObject
    && errorIsMissingOrBoolean
  )
}

export default isFsaCompliant