timepiece/node_modules/ext/string_/camel-to-hyphen.js

50 lines
819 B
JavaScript
Raw Normal View History

2024-05-14 14:54:12 +00:00
"use strict";
var ensureString = require("type/string/ensure")
, objHasOwnProperty = Object.prototype.hasOwnProperty;
var capitalLetters = {
A: true,
B: true,
C: true,
D: true,
E: true,
F: true,
G: true,
H: true,
I: true,
J: true,
K: true,
L: true,
M: true,
N: true,
O: true,
P: true,
Q: true,
R: true,
S: true,
T: true,
U: true,
V: true,
W: true,
X: true,
Y: true,
Z: true
};
module.exports = function () {
var input = ensureString(this);
if (!input) return input;
var outputLetters = [];
for (var index = 0, letter; (letter = input[index]); ++index) {
if (objHasOwnProperty.call(capitalLetters, letter)) {
if (index) outputLetters.push("-");
outputLetters.push(letter.toLowerCase());
} else {
outputLetters.push(letter);
}
}
return outputLetters.join("");
};