feat(validate-messages): add types

This commit is contained in:
Joren Broekema 2020-09-30 17:47:41 +02:00 committed by Thomas Allmer
parent 98fa7ad6b5
commit 30223d4c69
2 changed files with 41 additions and 3 deletions

View file

@ -0,0 +1,5 @@
---
'@lion/validate-messages': minor
---
Add types for validate-messages package.

View file

@ -19,6 +19,16 @@ import {
Pattern, Pattern,
} from '@lion/form-core'; } from '@lion/form-core';
/**
* @typedef {object} MessageData
* @property {*} [MessageData.modelValue]
* @property {string} [MessageData.fieldName]
* @property {*} [MessageData.formControl]
* @property {string} [MessageData.type]
* @property {Object.<string,?>} [MessageData.config]
* @property {string} [MessageData.name]
*/
let loaded = false; let loaded = false;
export function loadDefaultFeedbackMessages() { export function loadDefaultFeedbackMessages() {
@ -29,7 +39,7 @@ export function loadDefaultFeedbackMessages() {
const forMessagesToBeReady = () => const forMessagesToBeReady = () =>
localize.loadNamespace( localize.loadNamespace(
{ {
'lion-validate': locale => { 'lion-validate': /** @param {string} locale */ locale => {
switch (locale) { switch (locale) {
case 'bg-BG': case 'bg-BG':
return import('../translations/bg-BG.js'); return import('../translations/bg-BG.js');
@ -104,29 +114,52 @@ export function loadDefaultFeedbackMessages() {
} }
}, },
}, },
{ locale: localize.localize }, { locale: localize.locale },
); );
/**
* @param {MessageData} data
* @returns {Promise<string|Node>}
*/
const getLocalizedMessage = async data => { const getLocalizedMessage = async data => {
await forMessagesToBeReady(); await forMessagesToBeReady();
if (data) {
return localize.msg(`lion-validate:${data.type}.${data.name}`, data); return localize.msg(`lion-validate:${data.type}.${data.name}`, data);
}
return '';
}; };
/** @param {MessageData} data */
Required.getMessage = async data => getLocalizedMessage(data); Required.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
EqualsLength.getMessage = async data => getLocalizedMessage(data); EqualsLength.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MinLength.getMessage = async data => getLocalizedMessage(data); MinLength.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MaxLength.getMessage = async data => getLocalizedMessage(data); MaxLength.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MinMaxLength.getMessage = async data => getLocalizedMessage(data); MinMaxLength.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
Pattern.getMessage = async data => getLocalizedMessage(data); Pattern.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
IsEmail.getMessage = async data => getLocalizedMessage(data); IsEmail.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
IsNumber.getMessage = async data => getLocalizedMessage(data); IsNumber.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MinNumber.getMessage = async data => getLocalizedMessage(data); MinNumber.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MaxNumber.getMessage = async data => getLocalizedMessage(data); MaxNumber.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MinMaxNumber.getMessage = async data => getLocalizedMessage(data); MinMaxNumber.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
IsDate.getMessage = async data => getLocalizedMessage(data); IsDate.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MinDate.getMessage = async data => getLocalizedMessage(data); MinDate.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MaxDate.getMessage = async data => getLocalizedMessage(data); MaxDate.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
MinMaxDate.getMessage = async data => getLocalizedMessage(data); MinMaxDate.getMessage = async data => getLocalizedMessage(data);
/** @param {MessageData} data */
IsDateDisabled.getMessage = async data => getLocalizedMessage(data); IsDateDisabled.getMessage = async data => getLocalizedMessage(data);
DefaultSuccess.getMessage = async data => { DefaultSuccess.getMessage = async data => {