@eluvio/elv-js-helpers
Version:
A collection of Javascript helper functions used by several Eluvio libraries.
37 lines (34 loc) • 1.54 kB
JavaScript
const _objBadKey = require('../Validation/objBadKey')
/**
* Returns a function to be [called](https://github.com/sylvainpolletvillard/ObjectModel/blob/9e890fc5ed5ad98e477a2144f1a925d740687ee3/src/object-model.js#L164)
* by [ObjectModel](http://objectmodel.js.org/) to construct an error message for a key that failed to validate against specified Model
*
* @function
* @private
* @category ModelAssertion
* @sig Model -> ((Boolean, String) -> String)
* @param {Model} keyModel - The Model to check keys against
* @returns {Function} Constructs an error message for failed key
* @example
*
* 'use strict'
* const _objBadKeyErrMsg = require('@eluvio/elv-js-helpers/ModelAssertion/_objBadKeyErrMsg')
*
* const defBasicModel = require('@eluvio/elv-js-helpers/ModelFactory/defBasicModel')
* const NonBlankStrModel = require('@eluvio/elv-js-helpers/Model/NonBlankStrModel')
* const passesModelCheck = require('@eluvio/elv-js-helpers/Boolean/passesModelCheck')
*
* const NoBlankKeysObjModel = defBasicModel('NoBlankKeysObj', Object).extend()
* .assert(
* passesModelCheck(NonBlankStrModel),
* _objBadKeyErrMsg(NonBlankStrModel)
* )
*
* NoBlankKeysObjModel({' ': 3}) //=> EXCEPTION: 'invalid property name " " (is not a valid NonBlankString)'
*
*/
const _objBadKeyErrMsg = keyModel =>
// eslint-disable-next-line no-unused-vars
(result, value) => `invalid property name "${_objBadKey(keyModel, value)}" (is not a valid ${keyModel.name})`
module.exports = _objBadKeyErrMsg