{"version":3,"file":"string.cjs","sources":["../../../src/text/string.ts"],"sourcesContent":["import { camelCase } from 'lodash';\n\nconst specialChars = ['(', '[', '{', '}', ']', ')', '\\\\', '|', '*', '+', '-', '.', '?', '<', '>', '#', '&', '^', '$'];\nconst specialMatcher = '([\\\\' + specialChars.join('\\\\') + '])';\nconst specialCharEscape = new RegExp(specialMatcher, 'g');\nconst specialCharUnescape = new RegExp('(\\\\\\\\)' + specialMatcher, 'g');\n\nexport function escapeStringForRegex(value: string) {\n  if (!value) {\n    return value;\n  }\n\n  return value.replace(specialCharEscape, '\\\\$1');\n}\n\nexport function unEscapeStringFromRegex(value: string) {\n  if (!value) {\n    return value;\n  }\n\n  return value.replace(specialCharUnescape, '$2');\n}\n\nexport function stringStartsAsRegEx(str: string): boolean {\n  if (!str) {\n    return false;\n  }\n\n  return str[0] === '/';\n}\n\nexport function stringToJsRegex(str: string): RegExp {\n  if (!stringStartsAsRegEx(str)) {\n    return new RegExp(`^${str}$`);\n  }\n\n  const match = str.match(new RegExp('^/(.*?)/(g?i?m?y?s?)$'));\n\n  if (!match) {\n    throw new Error(`'${str}' is not a valid regular expression.`);\n  }\n\n  return new RegExp(match[1], match[2]);\n}\n\nexport function stringToMs(str: string): number {\n  if (!str) {\n    return 0;\n  }\n\n  const nr = parseInt(str, 10);\n  const unit = str.slice(String(nr).length);\n  const s = 1000;\n  const m = s * 60;\n  const h = m * 60;\n  const d = h * 24;\n\n  switch (unit) {\n    case 's':\n      return nr * s;\n    case 'm':\n      return nr * m;\n    case 'h':\n      return nr * h;\n    case 'd':\n      return nr * d;\n    default:\n      if (!unit) {\n        return isNaN(nr) ? 0 : nr;\n      }\n      throw new Error('Not supported unit: ' + unit);\n  }\n}\n\nexport function toNumberString(value: number | undefined | null): string {\n  if (value !== null && value !== undefined && Number.isFinite(value)) {\n    return value.toString();\n  }\n  return '';\n}\n\nexport function toIntegerOrUndefined(value: string): number | undefined {\n  if (!value) {\n    return undefined;\n  }\n  const v = parseInt(value, 10);\n  return isNaN(v) ? undefined : v;\n}\n\nexport function toFloatOrUndefined(value: string): number | undefined {\n  if (!value) {\n    return undefined;\n  }\n  const v = parseFloat(value);\n  return isNaN(v) ? undefined : v;\n}\n\nexport function toPascalCase(string: string) {\n  const str = camelCase(string);\n  return str.charAt(0).toUpperCase() + str.substring(1);\n}\n\nexport function escapeRegex(value: string): string {\n  return value.replace(/[\\\\^$*+?.()|[\\]{}\\/]/g, '\\\\$&');\n}\n"],"names":["camelCase"],"mappings":";;;;;;;AAEA,MAAM,YAAA,GAAe,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,IAAA,EAAM,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;AACpH,MAAM,cAAA,GAAiB,MAAA,GAAS,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA;AAC1D,MAAM,iBAAA,GAAoB,IAAI,MAAA,CAAO,cAAA,EAAgB,GAAG,CAAA;AACxD,MAAM,mBAAA,GAAsB,IAAI,MAAA,CAAO,QAAA,GAAW,gBAAgB,GAAG,CAAA;AAE9D,SAAS,qBAAqB,KAAA,EAAe;AAClD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,iBAAA,EAAmB,MAAM,CAAA;AAChD;AAEO,SAAS,wBAAwB,KAAA,EAAe;AACrD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,mBAAA,EAAqB,IAAI,CAAA;AAChD;AAEO,SAAS,oBAAoB,GAAA,EAAsB;AACxD,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,GAAA,CAAI,CAAC,CAAA,KAAM,GAAA;AACpB;AAEO,SAAS,gBAAgB,GAAA,EAAqB;AACnD,EAAA,IAAI,CAAC,mBAAA,CAAoB,GAAG,CAAA,EAAG;AAC7B,IAAA,OAAO,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,CAAA;AAAA,EAC9B;AAEA,EAAA,MAAM,QAAQ,GAAA,CAAI,KAAA,CAAM,IAAI,MAAA,CAAO,uBAAuB,CAAC,CAAA;AAE3D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,CAAA,EAAI,GAAG,CAAA,oCAAA,CAAsC,CAAA;AAAA,EAC/D;AAEA,EAAA,OAAO,IAAI,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,EAAG,KAAA,CAAM,CAAC,CAAC,CAAA;AACtC;AAEO,SAAS,WAAW,GAAA,EAAqB;AAC9C,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,GAAA,EAAK,EAAE,CAAA;AAC3B,EAAA,MAAM,OAAO,GAAA,CAAI,KAAA,CAAM,MAAA,CAAO,EAAE,EAAE,MAAM,CAAA;AACxC,EAAA,MAAM,CAAA,GAAI,GAAA;AACV,EAAA,MAAM,IAAI,CAAA,GAAI,EAAA;AACd,EAAA,MAAM,IAAI,CAAA,GAAI,EAAA;AACd,EAAA,MAAM,IAAI,CAAA,GAAI,EAAA;AAEd,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,GAAA;AACH,MAAA,OAAO,EAAA,GAAK,CAAA;AAAA,IACd,KAAK,GAAA;AACH,MAAA,OAAO,EAAA,GAAK,CAAA;AAAA,IACd,KAAK,GAAA;AACH,MAAA,OAAO,EAAA,GAAK,CAAA;AAAA,IACd,KAAK,GAAA;AACH,MAAA,OAAO,EAAA,GAAK,CAAA;AAAA,IACd;AACE,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,OAAO,KAAA,CAAM,EAAE,CAAA,GAAI,CAAA,GAAI,EAAA;AAAA,MACzB;AACA,MAAA,MAAM,IAAI,KAAA,CAAM,sBAAA,GAAyB,IAAI,CAAA;AAAA;AAEnD;AAEO,SAAS,eAAe,KAAA,EAA0C;AACvE,EAAA,IAAI,UAAU,IAAA,IAAQ,KAAA,KAAU,UAAa,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AACnE,IAAA,OAAO,MAAM,QAAA,EAAS;AAAA,EACxB;AACA,EAAA,OAAO,EAAA;AACT;AAEO,SAAS,qBAAqB,KAAA,EAAmC;AACtE,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,KAAA,CAAA;AAAA,EACT;AACA,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA;AAC5B,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAI,KAAA,CAAA,GAAY,CAAA;AAChC;AAEO,SAAS,mBAAmB,KAAA,EAAmC;AACpE,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,KAAA,CAAA;AAAA,EACT;AACA,EAAA,MAAM,CAAA,GAAI,WAAW,KAAK,CAAA;AAC1B,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAI,KAAA,CAAA,GAAY,CAAA;AAChC;AAEO,SAAS,aAAa,MAAA,EAAgB;AAC3C,EAAA,MAAM,GAAA,GAAMA,iBAAU,MAAM,CAAA;AAC5B,EAAA,OAAO,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,UAAU,CAAC,CAAA;AACtD;AAEO,SAAS,YAAY,KAAA,EAAuB;AACjD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,uBAAA,EAAyB,MAAM,CAAA;AACtD;;;;;;;;;;;;;"}