任务验证信件
此软件包提供了跨项目前端和后端使用的验证消息的集中列表. 它确保连贯的错误显示并简化维护,将所有验证信息保存在一个地方,而不改变开发库中的代码.
* 特性
- 集中验证信息 跨越所有特征
- 类型安全 使用 TypeScript 检索信件
- 特征名称常数 消除魔法字符串(v1.3.0+)
- 信件密钥常数 用于消除错误别名的魔法字符串(v1.3.1+)
- 动态参数替换 用于背景信息
- 受影响的田地跟踪 用于更好的前端 UX(v1.1.0+)
评估 纤维(v1.3.0+)
为了避免使用魔法字符串和改善类型安全,软件包现在输出 VALIDATION_FEATURES 常数 :
import { getValidationMessage, VALIDATION_FEATURES } from '@forwardslashns/taskit-validation-messages';
// ✅ Recommended: Use constants
const result = getValidationMessage(VALIDATION_FEATURES.CLIENT_CURRENT_ENTITY_STATUS, 'NAME_ALREADY_EXISTS', {
name: 'Client Name',
});
// ❌ Not recommended: Using string literals
const result = getValidationMessage('CLIENT_CURRENT_ENTITY_STATUS', 'NAME_ALREADY_EXISTS', { name: 'Client Name' });
可用的特性常数
VALIDATION_FEATURES.ACCOUNT_CATEGORY;
VALIDATION_FEATURES.ACCOUNT_ID;
VALIDATION_FEATURES.CLIENT_RECORD_ADDRESS;
VALIDATION_FEATURES.BUSINESS_ACTIVITY;
VALIDATION_FEATURES.CLIENT_RECORD_BANK_AND_CREDIT_CARD;
VALIDATION_FEATURES.CLIENT_RECORD_CONTACT;
VALIDATION_FEATURES.CLIENT_RECORD_COMISSION_DETAIL;
VALIDATION_FEATURES.CLIENT_CURRENT_ENTITY_STATUS;
VALIDATION_FEATURES.CLIENT_RECORD_ENTITY_TYPE_HISTORY;
VALIDATION_FEATURES.CLIENT_RECORD_FILING_STATUS_HISTORY;
VALIDATION_FEATURES.CLIENT_RECORD_ENTITY_STATE_HISTORY;
VALIDATION_FEATURES.CLIENT_RELATIONSHIP;
VALIDATION_FEATURES.FILING_CATEGORY;
VALIDATION_FEATURES.STATE;
VALIDATION_FEATURES.USER;
VALIDATION_FEATURES.ROLE_AND_PERMISSION;
VALIDATION_FEATURES.DATA_FILTER;
VALIDATION_FEATURES.USER_PREFERENCE;
VALIDATION_FEATURES.CLIENT_RECORD_OUTSIDE_PROVIDER;
评估 内容
该套件会曝光可以使用特定别名取回的验证消息. 这些讯息按照所属的特性编排,从而更容易管理和更新.
获取变量
这种机制允许通过传递其别名和任何需要的参数来检索和动态生成验证消息. 参数是可选的,按照每个验证消息本身内所定义的结构作为对象传递.
返回值(v1.1.0+)
getValidationMessage 现在返回 a ValidationMessageResult 对象 :
{
content: string; // The formatted validation message
affectedFields: string[]; // Array of field identifiers affected by this validation error
}
使用量
import { getValidationMessage, VALIDATION_FEATURES } from '@forwardslashns/taskit-validation-messages';
// ✅ Best practice: Use feature constants (v1.3.0+)
const result = getValidationMessage(VALIDATION_FEATURES.ACCOUNT_CATEGORY, 'NAME_ALREADY_EXISTS', { name: 'Marketing' });
// Also works: String literals (backward compatible)
const result2 = getValidationMessage('ACCOUNT_CATEGORY', 'NAME_ALREADY_EXISTS', {
name: 'Marketing',
});
console.log(result.content); // "Account category with the same name 'Marketing' already exists"
console.log(result.affectedFields); // ['name']
// In API responses
return reply.status(400).send({
message: result.content,
affectedFields: result.affectedFields,
});
从v1.0.x迁移
见 (原始内容存档于2017-09-25) (英语). Migaliation Guide.md 详细移民指示.
快速更新 :
// Old (v1.0.x)
const message = getValidationMessage('FEATURE', 'ERROR');
// New (v1.1.0+)
const { content, affectedFields } = getValidationMessage('FEATURE', 'ERROR');