UNPKG

@mantine/form

Version:

Mantine form management library

1 lines 1.61 kB
{"version":3,"file":"has-length.mjs","names":[],"sources":["../../../src/validators/has-length/has-length.ts"],"sourcesContent":["import type { SyncReactNode } from '../types';\n\ninterface HasLengthOptions {\n max?: number;\n min?: number;\n}\n\ntype HasLengthPayload = HasLengthOptions | number;\n\nfunction isLengthValid(payload: HasLengthPayload, value: any) {\n if (typeof payload === 'number') {\n return value.length === payload;\n }\n\n const { max, min } = payload;\n let valid = true;\n\n if (typeof max === 'number' && value.length > max) {\n valid = false;\n }\n\n if (typeof min === 'number' && value.length < min) {\n valid = false;\n }\n\n return valid;\n}\n\nexport function hasLength(payload: HasLengthPayload, error?: SyncReactNode) {\n const _error = error || true;\n\n return (value: unknown): SyncReactNode => {\n if (typeof value === 'string') {\n return isLengthValid(payload, value.trim()) ? null : _error;\n }\n\n if (typeof value === 'object' && value !== null && 'length' in value) {\n return isLengthValid(payload, value) ? null : _error;\n }\n\n return _error;\n };\n}\n"],"mappings":";;AASA,SAAS,cAAc,SAA2B,OAAY;CAC5D,IAAI,OAAO,YAAY,UACrB,OAAO,MAAM,WAAW;CAG1B,MAAM,EAAE,KAAK,QAAQ;CACrB,IAAI,QAAQ;CAEZ,IAAI,OAAO,QAAQ,YAAY,MAAM,SAAS,KAC5C,QAAQ;CAGV,IAAI,OAAO,QAAQ,YAAY,MAAM,SAAS,KAC5C,QAAQ;CAGV,OAAO;AACT;AAEA,SAAgB,UAAU,SAA2B,OAAuB;CAC1E,MAAM,SAAS,SAAS;CAExB,QAAQ,UAAkC;EACxC,IAAI,OAAO,UAAU,UACnB,OAAO,cAAc,SAAS,MAAM,KAAK,CAAC,IAAI,OAAO;EAGvD,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,YAAY,OAC7D,OAAO,cAAc,SAAS,KAAK,IAAI,OAAO;EAGhD,OAAO;CACT;AACF"}