Urara-Blog/node_modules/.pnpm-store/v3/files/aa/c7819b0cf7850f5203c5fa73dbd4efb0f254373f2d1ca8022c1dec8c19e6ee4b353f485e24b9a4ea209a4f3977f3829a825e6192baf9e79d811b140bf95fdf
2022-08-14 01:14:53 +08:00

25 lines
776 B
Text

import {values} from 'micromark-util-symbol/values.js'
/**
* Normalize an identifier (such as used in definitions).
*
* @param {string} value
* @returns {string}
*/
export 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 method is uppercase.
.toLowerCase()
.toUpperCase()
)
}