{"version":3,"file":"strings.mjs","sources":["../../src/primitives/strings.ts"],"sourcesContent":["import _, { kebabCase } from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nconst nameToSlug = (name: string, options: slugify.Options = { separator: '-' }) =>\n  slugify(name, options);\n\nconst nameToCollectionName = (name: string) => slugify(name, { separator: '_' });\n\nconst toRegressedEnumValue = (value: string) =>\n  slugify(value, {\n    decamelize: false,\n    lowercase: false,\n    separator: '_',\n  });\n\nconst getCommonPath = (...paths: string[]) => {\n  const [segments, ...otherSegments] = paths.map((it) => _.split(it, '/'));\n  return _.join(\n    _.takeWhile(segments, (str, index) => otherSegments.every((it) => it[index] === str)),\n    '/'\n  );\n};\n\nconst isEqual = (a: unknown, b: unknown) => String(a) === String(b);\nconst isCamelCase = (value: string) => /^[a-z][a-zA-Z0-9]+$/.test(value);\nconst isKebabCase = (value: string) => /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);\nconst startsWithANumber = (value: string) => /^[0-9]/.test(value);\n\nconst joinBy = (joint: string, ...args: string[]) => {\n  return args.reduce((url, path, index) => {\n    if (args.length === 1) return path;\n    if (index === 0) return _.trimEnd(path, joint);\n    if (index === args.length - 1) return url + joint + _.trimStart(path, joint);\n    return url + joint + _.trim(path, joint);\n  }, '');\n};\n\nconst toKebabCase = (value: string) => kebabCase(value);\n\nexport {\n  nameToSlug,\n  nameToCollectionName,\n  getCommonPath,\n  isEqual,\n  isCamelCase,\n  isKebabCase,\n  toKebabCase,\n  toRegressedEnumValue,\n  startsWithANumber,\n  joinBy,\n};\n"],"names":["nameToSlug","name","options","separator","slugify","nameToCollectionName","toRegressedEnumValue","value","decamelize","lowercase","getCommonPath","paths","segments","otherSegments","map","it","_","split","join","takeWhile","str","index","every","isEqual","a","b","String","isCamelCase","test","isKebabCase","startsWithANumber","joinBy","joint","args","reduce","url","path","length","trimEnd","trimStart","trim","toKebabCase","kebabCase"],"mappings":";;;AAGA,MAAMA,UAAAA,GAAa,CAACC,IAAAA,EAAcC,OAAAA,GAA2B;IAAEC,SAAAA,EAAW;AAAI,CAAC,GAC7EC,QAAQH,IAAAA,EAAMC,OAAAA;AAEhB,MAAMG,oBAAAA,GAAuB,CAACJ,IAAAA,GAAiBG,OAAAA,CAAQH,IAAAA,EAAM;QAAEE,SAAAA,EAAW;AAAI,KAAA;AAE9E,MAAMG,oBAAAA,GAAuB,CAACC,KAAAA,GAC5BH,OAAAA,CAAQG,KAAAA,EAAO;QACbC,UAAAA,EAAY,KAAA;QACZC,SAAAA,EAAW,KAAA;QACXN,SAAAA,EAAW;AACb,KAAA;AAEF,MAAMO,aAAAA,GAAgB,CAAC,GAAGC,KAAAA,GAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAU,GAAGC,aAAAA,CAAc,GAAGF,KAAAA,CAAMG,GAAG,CAAC,CAACC,EAAAA,GAAOC,UAAAA,CAAEC,KAAK,CAACF,EAAAA,EAAI,GAAA,CAAA,CAAA;AACnE,IAAA,OAAOC,WAAEE,IAAI,CACXF,WAAEG,SAAS,CAACP,UAAU,CAACQ,GAAAA,EAAKC,QAAUR,aAAAA,CAAcS,KAAK,CAAC,CAACP,EAAAA,GAAOA,EAAE,CAACM,KAAAA,CAAM,KAAKD,GAAAA,CAAAA,CAAAA,EAChF,GAAA,CAAA;AAEJ;AAEA,MAAMG,UAAU,CAACC,CAAAA,EAAYC,CAAAA,GAAeC,MAAAA,CAAOF,OAAOE,MAAAA,CAAOD,CAAAA;AACjE,MAAME,WAAAA,GAAc,CAACpB,KAAAA,GAAkB,qBAAA,CAAsBqB,IAAI,CAACrB,KAAAA;AAClE,MAAMsB,WAAAA,GAAc,CAACtB,KAAAA,GAAkB,iCAAA,CAAkCqB,IAAI,CAACrB,KAAAA;AAC9E,MAAMuB,iBAAAA,GAAoB,CAACvB,KAAAA,GAAkB,QAAA,CAASqB,IAAI,CAACrB,KAAAA;AAE3D,MAAMwB,MAAAA,GAAS,CAACC,KAAAA,EAAe,GAAGC,IAAAA,GAAAA;AAChC,IAAA,OAAOA,IAAAA,CAAKC,MAAM,CAAC,CAACC,KAAKC,IAAAA,EAAMf,KAAAA,GAAAA;AAC7B,QAAA,IAAIY,IAAAA,CAAKI,MAAM,KAAK,CAAA,EAAG,OAAOD,IAAAA;AAC9B,QAAA,IAAIf,UAAU,CAAA,EAAG,OAAOL,UAAAA,CAAEsB,OAAO,CAACF,IAAAA,EAAMJ,KAAAA,CAAAA;QACxC,IAAIX,KAAAA,KAAUY,IAAAA,CAAKI,MAAM,GAAG,CAAA,EAAG,OAAOF,GAAAA,GAAMH,KAAAA,GAAQhB,UAAAA,CAAEuB,SAAS,CAACH,IAAAA,EAAMJ,KAAAA,CAAAA;AACtE,QAAA,OAAOG,GAAAA,GAAMH,KAAAA,GAAQhB,UAAAA,CAAEwB,IAAI,CAACJ,IAAAA,EAAMJ,KAAAA,CAAAA;IACpC,CAAA,EAAG,EAAA,CAAA;AACL;AAEA,MAAMS,WAAAA,GAAc,CAAClC,KAAAA,GAAkBmC,SAAAA,CAAUnC,KAAAA;;;;"}