@samlevy/string-helpers
Version:
Basic string helper functions
1 lines • 5.55 kB
Source Map (JSON)
{"version":3,"file":"string-helpers.cjs","sources":["../src/lcfirst.ts","../src/ucfirst.ts","../src/normalize.ts","../src/studly.ts","../src/camel.ts","../src/headline.ts","../src/random.ts","../src/regex/sanitize.ts","../src/regex/index.ts","../src/regex/path.ts","../src/snake.ts","../src/squish.ts","../src/index.ts"],"sourcesContent":["export default (str: string): string => str.charAt(0).toLowerCase() + str.slice(1);\n","export default (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\n","import ucfirst from \"./ucfirst\";\n\nexport default (str: string): string =>\n str.replace(\n /* match words as: aAAAA, Aaaaa, aaaaa, or AAAAA, then convert them to Aaaaa */\n /((?<=^|[^a-z])[a-z][A-Z]{2,}|(?<=^|[^A-Z])[A-Z][a-z]{2,}|(?<=^|[^a-zA-Z])[a-z]+|(?<=^|[^a-zA-Z])[A-Z]+)/g,\n (word) => ucfirst(word.toLowerCase()),\n );\n","import normalize from \"./normalize\";\n\n/**\n * Convert a string to StudlyCase\n *\n * @param str\n */\nexport default (str: string): string =>\n str\n .split(/[^a-z0-9]/gi)\n .map(normalize)\n .join(\"\");\n","import lcfirst from \"./lcfirst\";\nimport studly from \"./studly\";\n\n/**\n * Convert a string to camelCase\n *\n * @param str\n */\nexport default (str: string): string => lcfirst(studly(str));\n","import studly from \"./studly\";\n\n/**\n * Converts a string to Headline Case\n *\n * @param str\n */\nexport default (str: string): string =>\n studly(str)\n .replaceAll(/(?<=^|[a-z])([A-Z0-9])/g, \" $1\")\n .replaceAll(/(?<=^|[0-9])([A-Za-z])/g, \" $1\")\n .trim();\n","/**\n * Generates a random string of the given length\n *\n * @param length\n */\nexport default (length = 16): string =>\n Array.from(crypto.getRandomValues(new Uint8Array(Math.max(1, length))), (v) => v.toString(36))\n .join(\"\")\n .substring(0, Math.max(1, length));\n","/**\n * Escapes regular expression characters in a string.\n *\n * @param str\n */\nexport default (str: string): string => str.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n","import path from \"./path\";\nimport sanitize from \"./sanitize\";\nexport { sanitize, path };\nexport default {\n sanitize,\n path,\n};\n","import sanitize from \"./sanitize\";\n\n/**\n * Converts a path string with wildcards (e.g. `*.example.com`) to a regular expression.\n *\n * @param str\n * @param start\n * @param end\n */\nexport default (str: string, start = \"^\", end = \"$\"): RegExp => {\n let head = start;\n let tail = end;\n let body = str ?? \"\";\n\n if (body.startsWith(\"*.\")) {\n head = `${start}[a-zA-Z0-9-_]+`;\n body = body.slice(1);\n }\n\n if (body.endsWith(\".*\")) {\n tail = `[a-zA-Z0-9-_.]+${end}`;\n body = body.slice(0, -1);\n }\n\n body = body.split(\".*.\").map(sanitize).join(\".[a-zA-Z0-9-_]+.\");\n\n return new RegExp(`${head}${body}${tail}`);\n};\n","import studly from \"./studly\";\n\n/**\n * Converts a string to Headline Case\n *\n * @param str\n */\nexport default (str: string): string =>\n studly(str)\n .replaceAll(/(?<=[a-z])([A-Z0-9])/g, \"_$1\")\n .replaceAll(/(?<=[0-9])([A-Za-z])/g, \"_$1\")\n .toLowerCase();\n","export default (str: string): string => str.replaceAll(/\\s+/g, \" \").trim();\n","import camel from \"./camel\";\nimport headline from \"./headline\";\nimport lcfirst from \"./lcfirst\";\nimport normalize from \"./normalize\";\nimport random from \"./random\";\nimport regex from \"./regex\";\nimport snake from \"./snake\";\nimport squish from \"./squish\";\nimport studly from \"./studly\";\nimport ucfirst from \"./ucfirst\";\n\nexport { camel, headline, lcfirst, normalize, random, regex, snake, squish, studly, ucfirst };\n\nexport default {\n camel,\n headline,\n lcfirst,\n normalize,\n random,\n regex,\n snake,\n squish,\n studly,\n ucfirst,\n};\n"],"names":["lcfirst","str","charAt","toLowerCase","slice","ucfirst","toUpperCase","normalize","replace","word","split","map","join","camel","studly","headline","replaceAll","trim","random","length","Array","from","crypto","getRandomValues","Uint8Array","Math","max","v","toString","substring","sanitize","regex","path","start","end","head","tail","body","startsWith","endsWith","RegExp","snake","squish","index"],"mappings":"AAAA,IAAeA,EAAA,SAACC,GAAwB,OAAAA,EAAIC,OAAO,GAAGC,cAAgBF,EAAIG,MAAM,EAAE,ECAnEC,EAAA,SAACJ,GAAwB,OAAAA,EAAIC,OAAO,GAAGI,cAAgBL,EAAIG,MAAM,EAAE,ECElFG,EAAA,SAAgBN,GACd,OAAAA,EAAIO,QAEF,2GACA,SAACC,GAAS,OAAAJ,EAAQI,EAAKN,cAAc,EACtC,aCAaF,GACd,OAAAA,EACGS,MAAM,eACNC,IAAIJ,GACJK,KAAK,GAAG,ECHbC,WAAgBZ,UAAwBD,EAAQc,EAAOb,GAAK,ECD5Dc,EAAA,SAAgBd,GACd,OAAAa,EAAOb,GACJe,WAAW,0BAA2B,OACtCA,WAAW,0BAA2B,OACtCC,MAAM,ECNXC,EAAA,SAAgBC,GACd,YADcA,IAAAA,IAAAA,EAAS,IACvBC,MAAMC,KAAKC,OAAOC,gBAAgB,IAAIC,WAAWC,KAAKC,IAAI,EAAGP,KAAW,SAACQ,GAAM,OAAAA,EAAEC,SAAS,GAAG,GAC1FhB,KAAK,IACLiB,UAAU,EAAGJ,KAAKC,IAAI,EAAGP,GAAQ,ECHtCW,EAAe,SAAC7B,GAAW,OAAaA,EAAIO,QAAQ,sBAAuB,OAAO,ECFnEuB,EAAA,CACbD,SAAAA,EACAE,KCIF,SAAgB/B,EAAagC,EAAaC,QAAR,IAALD,IAAAA,EAAQ,UAAQ,IAAHC,IAAAA,EAAM,KAC9C,IAAIC,EAAOF,EACPG,EAAOF,EACPG,EAAU,MAAHpC,EAAAA,EAAO,GAclB,OAZIoC,EAAKC,WAAW,QAClBH,EAAUF,mBACVI,EAAOA,EAAKjC,MAAM,IAGhBiC,EAAKE,SAAS,QAChBH,EAAyBF,kBAAAA,EACzBG,EAAOA,EAAKjC,MAAM,GAAI,IAGxBiC,EAAOA,EAAK3B,MAAM,OAAOC,IAAImB,GAAUlB,KAAK,oBAErC,IAAI4B,OAAUL,GAAAA,EAAOE,EAAOD,EACpC,GCpBDK,EAAA,SAAgBxC,GACd,OAAAa,EAAOb,GACJe,WAAW,wBAAyB,OACpCA,WAAW,wBAAyB,OACpCb,aAAa,ECXlBuC,EAAA,SAAgBzC,GAAwB,OAAAA,EAAIe,WAAW,OAAQ,KAAKC,MAAM,ECa1E0B,EAAe,CACb9B,MAAAA,EACAE,SAAAA,EACAf,QAAAA,EACAO,UAAAA,EACAW,OAAAA,EACAa,MAAAA,EACAU,MAAAA,EACAC,OAAAA,EACA5B,OAAAA,EACAT,QAAAA"}