From 30223d4c69387ae79c9307948334fd03fe442538 Mon Sep 17 00:00:00 2001 From: Joren Broekema Date: Wed, 30 Sep 2020 17:47:41 +0200 Subject: [PATCH] feat(validate-messages): add types --- .changeset/nine-cats-search.md | 5 +++ .../src/loadDefaultFeedbackMessages.js | 39 +++++++++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 .changeset/nine-cats-search.md diff --git a/.changeset/nine-cats-search.md b/.changeset/nine-cats-search.md new file mode 100644 index 000000000..d15c64403 --- /dev/null +++ b/.changeset/nine-cats-search.md @@ -0,0 +1,5 @@ +--- +'@lion/validate-messages': minor +--- + +Add types for validate-messages package. diff --git a/packages/validate-messages/src/loadDefaultFeedbackMessages.js b/packages/validate-messages/src/loadDefaultFeedbackMessages.js index 5c618f3a0..df7d2e73e 100644 --- a/packages/validate-messages/src/loadDefaultFeedbackMessages.js +++ b/packages/validate-messages/src/loadDefaultFeedbackMessages.js @@ -19,6 +19,16 @@ import { Pattern, } from '@lion/form-core'; +/** + * @typedef {object} MessageData + * @property {*} [MessageData.modelValue] + * @property {string} [MessageData.fieldName] + * @property {*} [MessageData.formControl] + * @property {string} [MessageData.type] + * @property {Object.} [MessageData.config] + * @property {string} [MessageData.name] + */ + let loaded = false; export function loadDefaultFeedbackMessages() { @@ -29,7 +39,7 @@ export function loadDefaultFeedbackMessages() { const forMessagesToBeReady = () => localize.loadNamespace( { - 'lion-validate': locale => { + 'lion-validate': /** @param {string} locale */ locale => { switch (locale) { case 'bg-BG': return import('../translations/bg-BG.js'); @@ -104,29 +114,52 @@ export function loadDefaultFeedbackMessages() { } }, }, - { locale: localize.localize }, + { locale: localize.locale }, ); + /** + * @param {MessageData} data + * @returns {Promise} + */ const getLocalizedMessage = async data => { await forMessagesToBeReady(); - return localize.msg(`lion-validate:${data.type}.${data.name}`, data); + if (data) { + return localize.msg(`lion-validate:${data.type}.${data.name}`, data); + } + return ''; }; + /** @param {MessageData} data */ Required.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ EqualsLength.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MinLength.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MaxLength.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MinMaxLength.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ Pattern.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ IsEmail.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ IsNumber.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MinNumber.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MaxNumber.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MinMaxNumber.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ IsDate.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MinDate.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MaxDate.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ MinMaxDate.getMessage = async data => getLocalizedMessage(data); + /** @param {MessageData} data */ IsDateDisabled.getMessage = async data => getLocalizedMessage(data); DefaultSuccess.getMessage = async data => {