UNPKG

@eluvio/elv-js-helpers

Version:

A collection of Javascript helper functions used by several Eluvio libraries.

48 lines (43 loc) 1.32 kB
'use strict' const StringModel = require('./StringModel') const passesModelCheck = require('../Boolean/passesModelCheck') const assertAfterCheck = require('../ModelAssertion/assertAfterCheck') /** * An [ObjectModel](http://objectmodel.js.org/) which validates that an input is: * * * A [Javascript String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) * * Is not zero length * * Does not consist solely of whitespace * * If input passes validations, will return the input * * Throws an exception if passed in an invalid value. * * @class * @category Model * @sig * -> String | THROW * @param {*} - The input to validate * @returns {String} The validated input * @example * * 'use strict' * const NonBlankStrModel = require('@eluvio/elv-js-helpers/Model/NonBlankStrModel') * * NonBlankStrModel('foo') //=> 'foo' * * NonBlankStrModel(' ') //=> EXCEPTION: 'Value must not be a blank string (got: " ")' * * NonBlankStrModel(42) //=> EXCEPTION: 'expecting String, got Number 42' * */ const NonBlankStrModel = StringModel .extend() .assert( ...assertAfterCheck( passesModelCheck(StringModel), s => s.trim().length > 0, 'must not be a blank string' ) ) .as('NonBlankString') module.exports = NonBlankStrModel