Download Fore_End/cpcn2/node_modules/joi/lib/messages.js from zxy0307/JavaWeb: direct link, hf CLI and curl.
- Browser
- Download file 4.31 kB
-
https://huggingface.co/zxy0307/JavaWeb/resolve/main/Fore_End/cpcn2/node_modules/joi/lib/messages.js
- Command line
-
hf download hf://zxy0307/JavaWeb/Fore_End/cpcn2/node_modules/joi/lib/messages.js
-
curl -L -o messages.js https://huggingface.co/zxy0307/JavaWeb/resolve/main/Fore_End/cpcn2/node_modules/joi/lib/messages.js
4.31 kB
| ; | |
| const Assert = require('@hapi/hoek/lib/assert'); | |
| const Clone = require('@hapi/hoek/lib/clone'); | |
| const Template = require('./template'); | |
| const internals = {}; | |
| exports.compile = function (messages, target) { | |
| // Single value string ('plain error message', 'template {error} message') | |
| if (typeof messages === 'string') { | |
| Assert(!target, 'Cannot set single message string'); | |
| return new Template(messages); | |
| } | |
| // Single value template | |
| if (Template.isTemplate(messages)) { | |
| Assert(!target, 'Cannot set single message template'); | |
| return messages; | |
| } | |
| // By error code { 'number.min': <string | template> } | |
| Assert(typeof messages === 'object' && !Array.isArray(messages), 'Invalid message options'); | |
| target = target ? Clone(target) : {}; | |
| for (let code in messages) { | |
| const message = messages[code]; | |
| if (code === 'root' || | |
| Template.isTemplate(message)) { | |
| target[code] = message; | |
| continue; | |
| } | |
| if (typeof message === 'string') { | |
| target[code] = new Template(message); | |
| continue; | |
| } | |
| // By language { english: { 'number.min': <string | template> } } | |
| Assert(typeof message === 'object' && !Array.isArray(message), 'Invalid message for', code); | |
| const language = code; | |
| target[language] = target[language] || {}; | |
| for (code in message) { | |
| const localized = message[code]; | |
| if (code === 'root' || | |
| Template.isTemplate(localized)) { | |
| target[language][code] = localized; | |
| continue; | |
| } | |
| Assert(typeof localized === 'string', 'Invalid message for', code, 'in', language); | |
| target[language][code] = new Template(localized); | |
| } | |
| } | |
| return target; | |
| }; | |
| exports.decompile = function (messages) { | |
| // By error code { 'number.min': <string | template> } | |
| const target = {}; | |
| for (let code in messages) { | |
| const message = messages[code]; | |
| if (code === 'root') { | |
| target.root = message; | |
| continue; | |
| } | |
| if (Template.isTemplate(message)) { | |
| target[code] = message.describe({ compact: true }); | |
| continue; | |
| } | |
| // By language { english: { 'number.min': <string | template> } } | |
| const language = code; | |
| target[language] = {}; | |
| for (code in message) { | |
| const localized = message[code]; | |
| if (code === 'root') { | |
| target[language].root = localized; | |
| continue; | |
| } | |
| target[language][code] = localized.describe({ compact: true }); | |
| } | |
| } | |
| return target; | |
| }; | |
| exports.merge = function (base, extended) { | |
| if (!base) { | |
| return exports.compile(extended); | |
| } | |
| if (!extended) { | |
| return base; | |
| } | |
| // Single value string | |
| if (typeof extended === 'string') { | |
| return new Template(extended); | |
| } | |
| // Single value template | |
| if (Template.isTemplate(extended)) { | |
| return extended; | |
| } | |
| // By error code { 'number.min': <string | template> } | |
| const target = Clone(base); | |
| for (let code in extended) { | |
| const message = extended[code]; | |
| if (code === 'root' || | |
| Template.isTemplate(message)) { | |
| target[code] = message; | |
| continue; | |
| } | |
| if (typeof message === 'string') { | |
| target[code] = new Template(message); | |
| continue; | |
| } | |
| // By language { english: { 'number.min': <string | template> } } | |
| Assert(typeof message === 'object' && !Array.isArray(message), 'Invalid message for', code); | |
| const language = code; | |
| target[language] = target[language] || {}; | |
| for (code in message) { | |
| const localized = message[code]; | |
| if (code === 'root' || | |
| Template.isTemplate(localized)) { | |
| target[language][code] = localized; | |
| continue; | |
| } | |
| Assert(typeof localized === 'string', 'Invalid message for', code, 'in', language); | |
| target[language][code] = new Template(localized); | |
| } | |
| } | |
| return target; | |
| }; | |