/** | |
* Normalize an identifier (as found in references, definitions). | |
* | |
* Collapses markdown whitespace, trim, and then lower- and uppercase. | |
* | |
* Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their | |
* lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different | |
* uppercase character (U+0398 (`Θ`)). | |
* So, to get a canonical form, we perform both lower- and uppercase. | |
* | |
* Using uppercase last makes sure keys will never interact with default | |
* prototypal values (such as `constructor`): nothing in the prototype of | |
* `Object` is uppercase. | |
* | |
* @param {string} value | |
* Identifier to normalize. | |
* @returns {string} | |
* Normalized identifier. | |
*/ | |
export function normalizeIdentifier(value: string): string | |