bguard
Version:
**bguard** is a powerful, flexible, and type-safe validation library for TypeScript. It allows developers to define validation schemas for their data structures and ensures that data conforms to the expected types and constraints.
1 lines • 1.62 kB
Source Map (JSON)
{"version":3,"sources":["../src/asserts/string/contains.ts"],"sourcesContent":["import type { ExceptionContext, RequiredValidation } from '../../core';\nimport { setToDefaultLocale } from '../../translationMap';\n\nconst containsErrorMessage = 'The received value does not contain the required substring';\nconst containsErrorKey = 's:contains';\n\n/**\n * @description Asserts that a string value contains a specified substring.\n * @param {string} substring The substring that must be present in the string value.\n * @returns {RequiredValidation} A validation function that takes a received string and an exception context.\n * @throws {ValidationError} if the received value does not contain the required substring.\n * @example\n * const schema = string().custom(contains('foo'));\n * parseOrFail(schema, 'foobar'); // Valid\n * parseOrFail(schema, 'bar'); // Throws an error: 'The received value does not contain the required substring'\n *\n * @translation Error Translation Key = 's:contains'\n */\nexport const contains =\n (substring: string): RequiredValidation =>\n (received: string, ctx: ExceptionContext) => {\n if (!received.includes(substring)) {\n ctx.addIssue(`contains '${substring}'`, received, containsErrorKey);\n }\n };\n\ncontains.key = containsErrorKey;\ncontains.message = containsErrorMessage;\nsetToDefaultLocale(contains);\n"],"mappings":";;;;;AAGA,IAAM,uBAAuB;AAC7B,IAAM,mBAAmB;AAclB,IAAM,WACX,CAAC,cACD,CAAC,UAAkB,QAA0B;AAC3C,MAAI,CAAC,SAAS,SAAS,SAAS,GAAG;AACjC,QAAI,SAAS,aAAa,SAAS,KAAK,UAAU,gBAAgB;AAAA,EACpE;AACF;AAEF,SAAS,MAAM;AACf,SAAS,UAAU;AACnB,mBAAmB,QAAQ;","names":[]}