mirror of
https://github.com/github/codeql-action.git
synced 2025-12-31 03:30:14 +08:00
Co-authored-by: Andrew Eisenberg <aeisenberg@github.com> Co-authored-by: Henry Mercer <henrymercer@github.com>
36 lines
988 B
JavaScript
36 lines
988 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.lowerCamelCase = void 0;
|
|
/**
|
|
* Converts snake_case to lowerCamelCase.
|
|
*
|
|
* Should behave like protoc:
|
|
* https://github.com/protocolbuffers/protobuf/blob/e8ae137c96444ea313485ed1118c5e43b2099cf1/src/google/protobuf/compiler/java/java_helpers.cc#L118
|
|
*/
|
|
function lowerCamelCase(snakeCase) {
|
|
let capNext = false;
|
|
const sb = [];
|
|
for (let i = 0; i < snakeCase.length; i++) {
|
|
let next = snakeCase.charAt(i);
|
|
if (next == '_') {
|
|
capNext = true;
|
|
}
|
|
else if (/\d/.test(next)) {
|
|
sb.push(next);
|
|
capNext = true;
|
|
}
|
|
else if (capNext) {
|
|
sb.push(next.toUpperCase());
|
|
capNext = false;
|
|
}
|
|
else if (i == 0) {
|
|
sb.push(next.toLowerCase());
|
|
}
|
|
else {
|
|
sb.push(next);
|
|
}
|
|
}
|
|
return sb.join('');
|
|
}
|
|
exports.lowerCamelCase = lowerCamelCase;
|