UNPKG

ramdacase

Version:

[![NPM](https://nodei.co/npm/ramdacase.png)](https://nodei.co/npm/ramdacase/)

41 lines (38 loc) 1.68 kB
import { pipe, reduce, reject, equals, toUpper, toLower, concat, join, map, tail, chain, split, head } from 'ramda'; var tailString = tail; var toArray = function toArray(s) { return [s]; }; var reverseReduce = function reverseReduce(list, f) { return function (init) { return reduce(f, init, list); }; }; var splitByAll = function splitByAll(delimiters) { return pipe(toArray, reverseReduce(delimiters, function (words, delimiter) { return chain(split(delimiter))(words); }), reject(equals(""))); }; var toWords = /*#__PURE__*/splitByAll([" ", "\t", "\n", ",", ".", "_", "-"]); var headString = head; var capitalizeHead = /*#__PURE__*/pipe(headString, toUpper); var uncapitalizeHead = /*#__PURE__*/pipe(headString, toLower); var capitalize = function capitalize(s) { return concat(capitalizeHead(s), tailString(s)); }; var uncapitalize = function uncapitalize(s) { return concat(uncapitalizeHead(s), tailString(s)); }; var toCase = function toCase(delimiter) { return pipe(toWords, join(delimiter)); }; var toKebab = /*#__PURE__*/toCase("-"); var toSnake = /*#__PURE__*/toCase("_"); var toDot = /*#__PURE__*/toCase("."); var toSlash = /*#__PURE__*/toCase("/"); var toKebabUpper = /*#__PURE__*/pipe(toKebab, toUpper); var toSnakeUpper = /*#__PURE__*/pipe(toSnake, toUpper); var toPascal = /*#__PURE__*/pipe(toWords, /*#__PURE__*/map(capitalize), /*#__PURE__*/join("")); var toCamel = /*#__PURE__*/pipe(toPascal, uncapitalize); export { capitalize, capitalizeHead, splitByAll, toCamel, toCase, toDot, toKebab, toKebabUpper, toPascal, toSlash, toSnake, toSnakeUpper, toWords, uncapitalize, uncapitalizeHead }; //# sourceMappingURL=ramdacase.esm.js.map