UNPKG

web-components

Version:

Build and Test React Components in real time

515 lines (505 loc) 16.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _reactIntl = require('react-intl'); var _transformJoiTemplateString = require('../helpers/transformJoiTemplateString'); var _transformJoiTemplateString2 = _interopRequireDefault(_transformJoiTemplateString); var _stringifyI18nObject = require('../helpers/stringifyI18nObject'); var _stringifyI18nObject2 = _interopRequireDefault(_stringifyI18nObject); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // IMPORTANT // It is necessary to add placehoder {key} into the head of the message body // to avoid the auto prepend from Joi to the strigified message var I18N_MESSAGES = (0, _reactIntl.defineMessages)({ greeting: { id: 'app.greeting', defaultMessage: 'Hello, {name}!' }, 'any.unknown': { id: 'joi.any.unknown', defaultMessage: '{key} is not allowed' }, 'any.invalid': { id: 'joi.any.invalid', defaultMessage: '{key} contains an invalid value' }, 'any.empty': { id: 'joi.any.empty', defaultMessage: '{key} is not allowed to be empty' }, 'any.required': { id: 'joi.any.required', defaultMessage: '{key} is required' }, 'any.allowOnly': { id: 'joi.any.allowOnly', defaultMessage: '{key} must be one of {valids}' }, 'any.default': { id: 'joi.any.default', defaultMessage: '{key} threw an error when running default method' }, 'array.base': { id: 'joi.array.base', defaultMessage: '{key} must be an array' }, 'array.includes': { id: 'joi.array.includes', defaultMessage: '{key} at position {pos} does not match any of the allowed types' }, 'array.includesSingle': { id: 'joi.array.includesSingle', defaultMessage: 'single value of "{!key}" does not match any of the allowed types' }, 'array.includesOne': { id: 'joi.array.includesOne', defaultMessage: '{key} at position {pos} fails because {reason}' }, 'array.includesOneSingle': { id: 'joi.array.includesOneSingle', defaultMessage: 'single value of "{!key}" fails because {reason}' }, 'array.includesRequiredUnknowns': { id: 'joi.array.includesRequiredUnknowns', defaultMessage: '{key} does not contain {unknownMisses} required value(s)' }, 'array.includesRequiredKnowns': { id: 'joi.array.includesRequiredKnowns', defaultMessage: '{key} does not contain {knownMisses}' }, 'array.includesRequiredBoth': { id: 'joi.array.includesRequiredBoth', defaultMessage: '{key} does not contain {knownMisses} and {unknownMisses} other required value(s)' }, 'array.excludes': { id: 'joi.array.excludes', defaultMessage: '{key} at position {pos} contains an excluded value' }, 'array.excludesSingle': { id: 'joi.array.excludesSingle', defaultMessage: '{key} single value of "{!key}" contains an excluded value' }, 'array.min': { id: 'joi.array.min', defaultMessage: '{key} must contain at least {limit} items' }, 'array.max': { id: 'joi.array.max', defaultMessage: '{key} must contain less than or equal to {limit} items' }, 'array.length': { id: 'joi.array.length', defaultMessage: '{key} must contain {limit} items' }, 'array.ordered': { id: 'joi.array.ordered', defaultMessage: '{key} at position {pos} fails because {reason}' }, 'array.orderedLength': { id: 'joi.array.orderedLength', defaultMessage: '{key} at position {pos} fails because array must contain at most {limit} items' }, 'array.sparse': { id: 'joi.array.sparse', defaultMessage: '{key} must not be a sparse array' }, 'array.unique': { id: 'joi.array.unique', defaultMessage: '{key} position {pos} contains a duplicate value' }, 'boolean.base': { id: 'joi.boolean.base', defaultMessage: '{key} must be a boolean' }, 'binary.base': { id: 'joi.binary.base', defaultMessage: '{key} must be a buffer or a string' }, 'binary.min': { id: 'joi.binary.min', defaultMessage: '{key} must be at least {limit} bytes' }, 'binary.max': { id: 'joi.binary.max', defaultMessage: '{key} must be less than or equal to {limit} bytes' }, 'binary.length': { id: 'joi.binary.length', defaultMessage: '{key} must be {limit} bytes' }, 'date.base': { id: 'joi.date.base', defaultMessage: '{key} must be a number of milliseconds or valid date string' }, 'date.min': { id: 'joi.date.min', defaultMessage: '{key} must be larger than or equal to "{limit}"' }, 'date.max': { id: 'joi.date.max', defaultMessage: '{key} must be less than or equal to "{limit}"' }, 'date.isoDate': { id: 'joi.date.isoDate', defaultMessage: '{key} must be a valid ISO 8601 date' }, 'date.timestamp.javascript': { id: 'joi.date.timestamp.javascript', defaultMessage: '{key} must be a valid timestamp or number of milliseconds' }, 'date.timestamp.unix': { id: 'joi.date.timestamp.unix', defaultMessage: '{key} must be a valid timestamp or number of seconds' }, 'date.ref': { id: 'joi.date.ref', defaultMessage: '{key} references "{ref}" which is not a date' }, 'function.base': { id: 'joi.function.base', defaultMessage: '{key} must be a Function' }, 'function.arity': { id: 'joi.function.arity', defaultMessage: '{key} must have an arity of {n}' }, 'function.minArity': { id: 'joi.function.minArity', defaultMessage: '{key} must have an arity greater or equal to {n}' }, 'function.maxArity': { id: 'joi.function.maxArity', defaultMessage: '{key} must have an arity lesser or equal to {n}' }, 'object.base': { id: 'joi.object.base', defaultMessage: '{key} must be an object' }, 'object.child': { id: 'joi.object.child', defaultMessage: '{key} child "{!key}" fails because {reason}' }, 'object.min': { id: 'joi.object.min', defaultMessage: '{key} must have at least {limit} children' }, 'object.max': { id: 'joi.object.max', defaultMessage: '{key} must have less than or equal to {limit} children' }, 'object.length': { id: 'joi.object.length', defaultMessage: '{key} must have {limit} children' }, 'object.allowUnknown': { id: 'joi.object.allowunknown', defaultMessage: '{key} is not allowed' }, 'object.with': { id: 'joi.object.with', defaultMessage: '{key} missing required peer "{peer}"' }, 'object.without': { id: 'joi.object.without', defaultMessage: '{key} conflict with forbidden peer "{peer}"' }, 'object.missing': { id: 'joi.object.missing', defaultMessage: '{key} must contain at least one of {peers}' }, 'object.xor': { id: 'joi.object.xor', defaultMessage: '{key} contains a conflict between exclusive peers {peers}' }, 'object.or': { id: 'joi.object.or', defaultMessage: '{key} must contain at least one of {peers}' }, 'object.and': { id: 'joi.object.and', defaultMessage: '{key} contains {present} without its required peers {missing}' }, 'object.nand': { id: 'joi.object.nand', defaultMessage: '{key} !!"{main}" must not exist simultaneously with {peers}' }, 'object.assert': { id: 'joi.object.assert', defaultMessage: '{key} !!"{ref}" validation failed because "{ref}" failed to {message}' }, 'object.type': { id: 'joi.object.type', defaultMessage: '{key} must be an instance of "{type}"' }, 'object.rename.multiple': { id: 'joi.object.rename.multiple', defaultMessage: '{key} cannot rename child "{from}" because multiple renames are disabled and another key was already renamed to "{to}"' }, 'object.rename.override': { id: 'joi.object.rename.override', defaultMessage: '{key} cannot rename child "{from}" because override is disabled and target "{to}" exists' }, 'number.base': { id: 'joi.number.base', defaultMessage: '{key} must be a number' }, 'number.min': { id: 'joi.number.min', defaultMessage: '{key} must be larger than or equal to {limit}' }, 'number.max': { id: 'joi.number.max', defaultMessage: '{key} must be less than or equal to {limit}' }, 'number.less': { id: 'joi.number.less', defaultMessage: '{key} must be less than {limit}' }, 'number.greater': { id: 'joi.number.greater', defaultMessage: '{key} must be greater than {limit}' }, 'number.float': { id: 'joi.number.float', defaultMessage: '{key} must be a float or double' }, 'number.integer': { id: 'joi.number.integer', defaultMessage: '{key} must be an integer' }, 'number.negative': { id: 'joi.number.negative', defaultMessage: '{key} must be a negative number' }, 'number.positive': { id: 'joi.number.positive', defaultMessage: '{key} must be a positive number' }, 'number.precision': { id: 'joi.number.precision', defaultMessage: '{key} must have no more than {limit} decimal places' }, 'number.ref': { id: 'joi.number.ref', defaultMessage: '{key} references "{ref}" which is not a number' }, 'number.multiple': { id: 'joi.number.multiple', defaultMessage: '{key} must be a multiple of {multiple}' }, 'string.base': { id: 'joi.string.base', defaultMessage: '{key} must be a string' }, 'string.min': { id: 'joi.string.min', defaultMessage: '{key} length must be at least {limit} characters long' }, 'string.max': { id: 'joi.string.max', defaultMessage: '{key} length must be less than or equal to {limit} characters long' }, 'string.length': { id: 'joi.string.length', defaultMessage: '{key} length must be {limit} characters long' }, 'string.alphanum': { id: 'joi.string.alphanum', defaultMessage: '{key} must only contain alpha-numeric characters' }, 'string.token': { id: 'joi.string.token', defaultMessage: '{key} must only contain alpha-numeric and underscore characters' }, 'string.regex.base': { id: 'joi.string.regex.base', defaultMessage: '{key} fails to match the required pattern {pattern}' }, 'string.regex.name': { id: 'joi.string.regex.name', defaultMessage: '{key} fails to match the {name} pattern' }, 'string.email': { id: 'joi.string.email', defaultMessage: '{key} must be a valid email' }, 'string.uri': { id: 'joi.string.uri', defaultMessage: '{key} must be a valid uri' }, 'string.uriCustomScheme': { id: 'joi.string.uriCustomScheme', defaultMessage: '{key} must be a valid uri with a scheme matching the {scheme} pattern' }, 'string.isoDate': { id: 'joi.string.isoDate', defaultMessage: '{key} must be a valid ISO 8601 date' }, 'string.guid': { id: 'joi.string.guid', defaultMessage: '{key} must be a valid GUID' }, 'string.hex': { id: 'joi.string.hex', defaultMessage: '{key} must only contain hexadecimal characters' }, 'string.hostname': { id: 'joi.string.hostname', defaultMessage: '{key} must be a valid hostname' }, 'string.lowercase': { id: 'joi.string.lowercase', defaultMessage: '{key} must only contain lowercase characters' }, 'string.uppercase': { id: 'joi.string.uppercase', defaultMessage: '{key} must only contain uppercase characters' }, 'string.trim': { id: 'joi.string.trim', defaultMessage: '{key} must not have leading or trailing whitespace' }, 'string.creditCard': { id: 'joi.string.creditCard', defaultMessage: '{key} must be a credit card' }, 'string.ref': { id: 'joi.string.ref', defaultMessage: '{key} references "{ref}" which is not a number' }, 'string.ip': { id: 'joi.string.ip', defaultMessage: '{key} must be a valid ip address with a {cidr} CIDR' }, 'string.ipVersion': { id: 'joi.string.ipVersion', defaultMessage: '{key} must be a valid ip address of one of the following versions {version} with a {cidr} CIDR' } }); // transform template string format from react-intl to joi // e.g. {key} to {{key}} var i18nMessages = (0, _transformJoiTemplateString2.default)(I18N_MESSAGES); // IMPORTANT // since defineMessages must contain object that have only one signle level // the following object structure maintains a Joi format validation messages // that can be input to joi-validation-strategy exports.default = (0, _stringifyI18nObject2.default)({ language: { any: { unknown: i18nMessages['any.unknown'], invalid: i18nMessages['any.invalid'], empty: i18nMessages['any.empty'], required: i18nMessages['any.required'], allowOnly: i18nMessages['any.allowOnly'], default: i18nMessages['any.default'] }, array: { base: i18nMessages['array.base'], includes: i18nMessages['array.includes'], includesSingle: i18nMessages['array.includesSingle'], includesOne: i18nMessages['array.includesOne'], includesOneSingle: i18nMessages['array.includesOneSingle'], includesRequiredUnknowns: i18nMessages['array.includesRequiredUnknowns'], includesRequiredKnowns: i18nMessages['array.includesRequiredKnowns'], includesRequiredBoth: i18nMessages['array.includesRequiredBoth'], excludes: i18nMessages['array.excludes'], excludesSingle: i18nMessages['array.excludesSingle'], min: i18nMessages['array.min'], max: i18nMessages['array.max'], length: i18nMessages['array.length'], ordered: i18nMessages['array.ordered'], orderedLength: i18nMessages['array.orderedLength'], sparse: i18nMessages['array.sparse'], unique: i18nMessages['array.unique'] }, boolean: { base: i18nMessages['boolean.base'] }, binary: { base: i18nMessages['binary.base'], min: i18nMessages['binary.min'], max: i18nMessages['binary.max'], length: i18nMessages['binary.length'] }, date: { base: i18nMessages['date.base'], min: i18nMessages['date.min'], max: i18nMessages['date.max'], isoDate: i18nMessages['date.isoDate'], timestamp: { javascript: i18nMessages['date.timestamp.javascript'], unix: i18nMessages['date.timestamp.unix'] }, ref: i18nMessages['date.ref'] }, function: { base: i18nMessages['function.base'], arity: i18nMessages['function.arity'], minArity: i18nMessages['function.minArity'], maxArity: i18nMessages['function.maxArity'] }, object: { base: i18nMessages['object.base'], child: i18nMessages['object.child'], min: i18nMessages['object.min'], max: i18nMessages['object.max'], length: i18nMessages['object.length'], allowUnknown: i18nMessages['object.allowUnknown'], with: i18nMessages['object.with'], without: i18nMessages['object.without'], missing: i18nMessages['object.missing'], xor: i18nMessages['object.xor'], or: i18nMessages['object.or'], and: i18nMessages['object.and'], nand: i18nMessages['object.nand'], assert: i18nMessages['object.assert'], rename: { multiple: i18nMessages['object.rename.multiple'], override: i18nMessages['object.rename.override'] }, type: i18nMessages['object.type'] }, number: { base: i18nMessages['number.base'], min: i18nMessages['number.min'], max: i18nMessages['number.max'], less: i18nMessages['number.less'], greater: i18nMessages['number.greater'], float: i18nMessages['number.float'], integer: i18nMessages['number.integer'], negative: i18nMessages['number.negative'], positive: i18nMessages['number.positive'], precision: i18nMessages['number.precision'], ref: i18nMessages['number.ref'], multiple: i18nMessages['number.multiple'] }, string: { base: i18nMessages['string.base'], min: i18nMessages['string.min'], max: i18nMessages['string.max'], length: i18nMessages['string.length'], alphanum: i18nMessages['string.alphanum'], token: i18nMessages['string.token'], regex: { base: i18nMessages['string.regex.base'], name: i18nMessages['string.regex.name'] }, email: i18nMessages['string.email'], uri: i18nMessages['string.uri'], uriCustomScheme: i18nMessages['string.uriCustomScheme'], isoDate: i18nMessages['string.isoDate'], guid: i18nMessages['string.guid'], hex: i18nMessages['string.hex'], hostname: i18nMessages['string.hostname'], lowercase: i18nMessages['string.lowercase'], uppercase: i18nMessages['string.uppercase'], trim: i18nMessages['string.trim'], creditCard: i18nMessages['string.creditCard'], ref: i18nMessages['string.ref'], ip: i18nMessages['string.ip'], ipVersion: i18nMessages['string.ipVersion'] } } }); //# sourceMappingURL=i18nValidationMessages.js.map