MCPcopy Create free account
hub / github.com/webpack/css-loader / preserveCamelCase

Function preserveCamelCase

src/utils.js:57–93  ·  view source on GitHub ↗
(string)

Source from the content-addressed store, hash-verified

55 /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;
56
57const preserveCamelCase = (string) => {
58 let result = string;
59 let isLastCharLower = false;
60 let isLastCharUpper = false;
61 let isLastLastCharUpper = false;
62
63 for (let i = 0; i < result.length; i++) {
64 const character = result[i];
65
66 if (isLastCharLower && /[\p{Lu}]/u.test(character)) {
67 result = `${result.slice(0, i)}-${result.slice(i)}`;
68 isLastCharLower = false;
69 isLastLastCharUpper = isLastCharUpper;
70 isLastCharUpper = true;
71 i += 1;
72 } else if (
73 isLastCharUpper &&
74 isLastLastCharUpper &&
75 /[\p{Ll}]/u.test(character)
76 ) {
77 result = `${result.slice(0, i - 1)}-${result.slice(i - 1)}`;
78 isLastLastCharUpper = isLastCharUpper;
79 isLastCharUpper = false;
80 isLastCharLower = true;
81 } else {
82 isLastCharLower =
83 character.toLowerCase() === character &&
84 character.toUpperCase() !== character;
85 isLastLastCharUpper = isLastCharUpper;
86 isLastCharUpper =
87 character.toUpperCase() === character &&
88 character.toLowerCase() !== character;
89 }
90 }
91
92 return result;
93};
94
95function camelCase(input) {
96 let result = input.trim();

Callers 1

camelCaseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…