ramdacase
Version:
[](https://nodei.co/npm/ramdacase/)
41 lines (38 loc) • 1.68 kB
JavaScript
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