mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-05 11:31:31 +08:00
Update the @typescript-eslint - eslint-plugin and parser to v7.18.0 cia incremental patches. This is the last version before breaking changes need to start be applied to the infrastructure. Needed to update EsLint to v8.56.0 as required by the above major v7. Only one new error was uncovered in test file and fixed. No-Presubmit: true Bug: none Change-Id: I4e4fe265b82deeb49786c5bf3e154dac8fcfecbd Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6054130 Reviewed-by: Danil Somsikov <dsv@chromium.org> Commit-Queue: Nikolay Vitkov <nvitkov@chromium.org>
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
/**
|
|
* @fileoverview Utilities to operate on strings.
|
|
* @author Stephen Wade
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Requirements
|
|
//------------------------------------------------------------------------------
|
|
|
|
const Graphemer = require("graphemer").default;
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Helpers
|
|
//------------------------------------------------------------------------------
|
|
|
|
// eslint-disable-next-line no-control-regex -- intentionally including control characters
|
|
const ASCII_REGEX = /^[\u0000-\u007f]*$/u;
|
|
|
|
/** @type {Graphemer | undefined} */
|
|
let splitter;
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Public Interface
|
|
//------------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Converts the first letter of a string to uppercase.
|
|
* @param {string} string The string to operate on
|
|
* @returns {string} The converted string
|
|
*/
|
|
function upperCaseFirst(string) {
|
|
if (string.length <= 1) {
|
|
return string.toUpperCase();
|
|
}
|
|
return string[0].toUpperCase() + string.slice(1);
|
|
}
|
|
|
|
/**
|
|
* Counts graphemes in a given string.
|
|
* @param {string} value A string to count graphemes.
|
|
* @returns {number} The number of graphemes in `value`.
|
|
*/
|
|
function getGraphemeCount(value) {
|
|
if (ASCII_REGEX.test(value)) {
|
|
return value.length;
|
|
}
|
|
|
|
if (!splitter) {
|
|
splitter = new Graphemer();
|
|
}
|
|
|
|
return splitter.countGraphemes(value);
|
|
}
|
|
|
|
module.exports = {
|
|
upperCaseFirst,
|
|
getGraphemeCount
|
|
};
|