ramdacase
Version:
[](https://nodei.co/npm/ramdacase/)
59 lines (54 loc) • 2.02 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var R = require('ramda');
var tailString = R.tail;
var toArray = function toArray(s) {
return [s];
};
var reverseReduce = function reverseReduce(list, f) {
return function (init) {
return R.reduce(f, init, list);
};
};
var splitByAll = function splitByAll(delimiters) {
return R.pipe(toArray, reverseReduce(delimiters, function (words, delimiter) {
return R.chain(R.split(delimiter))(words);
}), R.reject(R.equals("")));
};
var toWords = /*#__PURE__*/splitByAll([" ", "\t", "\n", ",", ".", "_", "-"]);
var headString = R.head;
var capitalizeHead = /*#__PURE__*/R.pipe(headString, R.toUpper);
var uncapitalizeHead = /*#__PURE__*/R.pipe(headString, R.toLower);
var capitalize = function capitalize(s) {
return R.concat(capitalizeHead(s), tailString(s));
};
var uncapitalize = function uncapitalize(s) {
return R.concat(uncapitalizeHead(s), tailString(s));
};
var toCase = function toCase(delimiter) {
return R.pipe(toWords, R.join(delimiter));
};
var toKebab = /*#__PURE__*/toCase("-");
var toSnake = /*#__PURE__*/toCase("_");
var toDot = /*#__PURE__*/toCase(".");
var toSlash = /*#__PURE__*/toCase("/");
var toKebabUpper = /*#__PURE__*/R.pipe(toKebab, R.toUpper);
var toSnakeUpper = /*#__PURE__*/R.pipe(toSnake, R.toUpper);
var toPascal = /*#__PURE__*/R.pipe(toWords, /*#__PURE__*/R.map(capitalize), /*#__PURE__*/R.join(""));
var toCamel = /*#__PURE__*/R.pipe(toPascal, uncapitalize);
exports.capitalize = capitalize;
exports.capitalizeHead = capitalizeHead;
exports.splitByAll = splitByAll;
exports.toCamel = toCamel;
exports.toCase = toCase;
exports.toDot = toDot;
exports.toKebab = toKebab;
exports.toKebabUpper = toKebabUpper;
exports.toPascal = toPascal;
exports.toSlash = toSlash;
exports.toSnake = toSnake;
exports.toSnakeUpper = toSnakeUpper;
exports.toWords = toWords;
exports.uncapitalize = uncapitalize;
exports.uncapitalizeHead = uncapitalizeHead;
//# sourceMappingURL=ramdacase.cjs.development.js.map