node/tools/eslint/node_modules/micromark/lib/util/normalize-identifier.mjs
Michaël Zasso 2eff28fb7a
tools: move ESLint to tools/eslint
Greatly simplify how ESLint and its plugins are installed.

PR-URL: https://github.com/nodejs/node/pull/53413
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2024-06-19 19:54:08 +00:00

22 lines
687 B
JavaScript

export default normalizeIdentifier
import values from '../character/values.mjs'
function normalizeIdentifier(value) {
return (
value
// Collapse Markdown whitespace.
.replace(/[\t\n\r ]+/g, values.space)
// Trim.
.replace(/^ | $/g, '')
// Some characters are considered “uppercase”, but if their lowercase
// counterpart is uppercased will result in a different uppercase
// character.
// Hence, to get that form, we perform both lower- and uppercase.
// Upper case makes sure keys will not interact with default prototypal
// methods: no object method is uppercase.
.toLowerCase()
.toUpperCase()
)
}