{"version":3,"file":"string.cjs","sources":["../../../src/interfaces/primitive/string.ts"],"sourcesContent":["/**\n * A branded type representing a string that is guaranteed to be non-empty (length > 0).\n * This type allows distinguishing non-empty strings from regular strings at compile time.\n */\nexport type NonEmptyString = string & { readonly __brand: unique symbol };\n\n/**\n * Checks if a value is a non-empty string.\n * @param value - The value to check\n * @returns True if the value is a string with length > 0, false otherwise\n */\nexport const isNonEmptyString = (\n  value: string | null | undefined,\n): value is NonEmptyString => {\n  return value != null && value.length > 0;\n};\n\n/**\n * Converts a string to NonEmptyString type.\n * @param value - The string to convert\n * @returns The string as NonEmptyString type\n * @throws Error if the value is null, undefined, or empty string\n */\nexport const toNonEmptyString = (value: string): NonEmptyString => {\n  // throw Error if the value is null, undefined or empty\n  if (!isNonEmptyString(value))\n    throw new Error(`Expected a non-empty string, but received: ${value}`);\n  return value;\n};\n\n/**\n * Converts a string to NonEmptyString type or returns undefined.\n * @param value - The string to convert\n * @returns The string as NonEmptyString type, or undefined if the value is null, undefined, or empty\n */\nexport const toNonEmptyStringOrUndefined = (\n  value: string | null | undefined,\n): NonEmptyString | undefined => {\n  // return undefined if the value is null, undefined or empty\n  if (!isNonEmptyString(value)) return undefined;\n  return value;\n};\n\n/**\n * A branded type representing a string that is guaranteed to be non-blank.\n * A non-blank string contains at least one non-whitespace character.\n * This type allows distinguishing non-blank strings from regular strings at compile time.\n */\nexport type NonBlankString = string & { readonly __brand: unique symbol };\n\n/**\n * Checks if a value is a non-blank string.\n * A non-blank string is a string that contains at least one non-whitespace character.\n * @param value - The value to check\n * @returns True if the value is a string with trimmed length > 0, false otherwise\n */\nexport const isNonBlankString = (\n  value: string | null | undefined,\n): value is NonBlankString => {\n  return value != null && value.trim().length > 0;\n};\n\n/**\n * Converts a string to NonBlankString type.\n * @param value - The string to convert\n * @returns The string as NonBlankString type\n * @throws Error if the value is null, undefined, empty string, or contains only whitespace characters\n */\nexport const toNonBlankString = (value: string): NonBlankString => {\n  // throw Error if the value is null, undefined or empty\n  if (!isNonBlankString(value))\n    throw new Error(`Expected a non-blank string, but received: ${value}`);\n  return value;\n};\n\n/**\n * Converts a string to NonBlankString type or returns undefined.\n * @param value - The string to convert\n * @returns The string as NonBlankString type, or undefined if the value is null, undefined, empty, or contains only whitespace characters\n */\nexport const toNonBlankStringOrUndefined = (\n  value: string | null | undefined,\n): NonBlankString | undefined => {\n  // return undefined if the value is null, undefined or blank (empty or whitespace only)\n  if (!isNonBlankString(value)) return undefined;\n  return value;\n};\n"],"names":["isNonEmptyString","value","toNonEmptyString","toNonEmptyStringOrUndefined","isNonBlankString","toNonBlankString","toNonBlankStringOrUndefined"],"mappings":"gFAWa,MAAAA,EACXC,GAEOA,GAAS,MAAQA,EAAM,OAAS,EAS5BC,EAAoBD,GAAkC,CAE7D,GAAA,CAACD,EAAiBC,CAAK,EACzB,MAAM,IAAI,MAAM,8CAA8CA,CAAK,EAAE,EAChE,OAAAA,CACT,EAOaE,EACXF,GAC+B,CAE/B,GAAKD,EAAiBC,CAAK,EACpB,OAAAA,CACT,EAeaG,EACXH,GAEOA,GAAS,MAAQA,EAAM,OAAO,OAAS,EASnCI,EAAoBJ,GAAkC,CAE7D,GAAA,CAACG,EAAiBH,CAAK,EACzB,MAAM,IAAI,MAAM,8CAA8CA,CAAK,EAAE,EAChE,OAAAA,CACT,EAOaK,EACXL,GAC+B,CAE/B,GAAKG,EAAiBH,CAAK,EACpB,OAAAA,CACT"}