You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
687 B
21 lines
687 B
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() |
|
) |
|
}
|
|
|