all files / couch/util/ assert-base.js

50% Statements 16/32
16.67% Branches 1/6
15.38% Functions 2/13
50% Lines 16/32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81            48×                                                                                                                      
import Ember from 'ember';
 
const {
  typeOf
} = Ember;
 
export default function(Error) {
 
  function assert(message, ok) {
    Iif(!ok) {
      let hash;
      if(typeOf(message) === 'object') {
        hash = message;
      } else {
        hash = { error: 'assertion', reason: message };
      }
      throw new Error(hash);
    }
  }
 
  function notBlank_(message, value) {
    assert(message, typeOf(value) === 'string' && value.trim().length > 0);
  }
 
  function notBlank(key, value) {
    notBlank_(`${key} must not be blank`, value);
  }
 
  function isString_(message, value) {
    assert(message, typeOf(value) === 'string');
  }
 
  function isString(key, value) {
    isString_(`${key} must be string`, value);
  }
 
  function isObject_(message, value) {
    assert(message, typeOf(value) === 'object');
  }
 
  function isObject(key, value) {
    isObject_(`${key} must be object`, value);
  }
 
  function isClass_(message, value) {
    assert(message, typeOf(value) === 'class');
  }
 
  function isClass(key, value) {
    isClass_(`${key} must be class`, value);
  }
 
  function isFunction_(message, value) {
    assert(message, typeOf(value) === 'function');
  }
 
  function isFunction(key, value) {
    isFunction_(`${key} must be function`, value);
  }
 
  function isOneOf(key, value, values) {
    assert(`${key} must be one of [${values.join(', ')}]`, values.indexOf(value) !== -1);
  }
 
  return {
    assert,
    notBlank_,
    notBlank,
    isString_,
    isString,
    isObject_,
    isObject,
    isClass_,
    isClass,
    isFunction_,
    isFunction,
    isOneOf
  };
}