@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
75 lines • 2.73 kB
TypeScript
import type { AllowedField } from "./vocab.types";
/**
* Erro de validação para um campo do vocabulário.
*
* Representa um problema encontrado ao validar um valor enviado para um campo
* permitido pela API. Contém o nome do campo (conforme AllowedField) e uma
* mensagem legível explicando o erro.
*
* @public
*/
export interface ValidationError {
field: AllowedField;
message: string;
}
/**
* Valida um único valor contra a configuração do campo.
*
* Aplica regras definidas em FIELD_CONFIGS (tipo, obrigatoriedade, tamanho,
* padrões regexp). Retorna um ValidationError quando a validação falha ou
* null quando o valor é válido.
*
* @param apiName Nome do campo exposto pela API (AllowedField).
* @param value Valor a ser validado (pode ser undefined/null).
* @returns ValidationError | null - erro de validação ou null se válido.
* @public
*/
export declare function validateFieldValue(apiName: AllowedField, value: unknown): ValidationError | null;
/**
* Valida um payload parcial (mapa apiName -> valor).
*
* Percorre as chaves do payload, assegura que cada campo é permitido e usa
* validateFieldValue para validar os valores. Retorna uma lista de erros (vazia
* quando não há problemas).
*
* @param payload Objeto contendo pares nomeDoCampo -> valor (parcial).
* @returns ValidationError[] - lista de erros encontrados (pode ser vazia).
* @public
*/
export declare function validatePayload(payload: Record<string, unknown>): ValidationError[];
/**
* Converte um payload da API para atributos compatíveis com Active Directory.
*
* Primeiro valida o payload usando validatePayload. Se houver erros, retorna
* { ok: false, errors }. Caso contrário, mapeia os nomes dos campos da API
* para os nomes de atributos do AD conforme AD_FIELD_MAPPING e retorna
* { ok: true, attrs }.
*
* @param payload Objeto contendo pares nomeDoCampo -> valor a serem convertidos.
* @returns { ok: true, attrs: Record<string, unknown> } em caso de sucesso ou
* { ok: false, errors: ValidationError[] } quando há erros de validação.
* @public
*/
export declare function toAdAttributes(payload: Record<string, unknown>): {
ok: boolean;
errors: ValidationError[];
attrs?: never;
} | {
ok: boolean;
attrs: Record<string, unknown>;
errors?: never;
};
/**
* Coleção padrão de utilitários para validar e converter vocabulário.
*
* Exporta as funções principais para uso em outros módulos.
*
* @public
*/
declare const _default: {
validateFieldValue: typeof validateFieldValue;
validatePayload: typeof validatePayload;
toAdAttributes: typeof toAdAttributes;
};
export default _default;
//# sourceMappingURL=vocab.utils.d.ts.map