chenyc
2025-12-09 545c24c6a711d71b65f3d4e8122fee3837fb1edc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
"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("");
};