UNPKG

nerve-sdk-js

Version:
36 lines (31 loc) 1.08 kB
'use strict'; // var errors = require('../errors'); var _ = require('lodash'); module.exports = { checkState: function (condition, message) { if (!condition) { throw new errors.InvalidState(message); } }, checkArgument: function (condition, argumentName, message, docsPath) { if (!condition) { throw new errors.InvalidArgument(argumentName, message, docsPath); } }, checkArgumentType: function (argument, type, argumentName) { argumentName = argumentName || '(unknown name)'; if (_.isString(type)) { if (type === 'Buffer') { var buffer = require('buffer'); // './buffer' fails on cordova & RN if (!buffer.Buffer.isBuffer(argument)) { throw new errors.InvalidArgumentType(argument, type, argumentName); } } else if (typeof argument !== type) { throw new errors.InvalidArgumentType(argument, type, argumentName); } } else { if (!(argument instanceof type)) { throw new errors.InvalidArgumentType(argument, type.name, argumentName); } } } };