blob: 0d9d7c0e18d7f83b3832a1d84b41feda7f1b6dc5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
'use strict'
var values = require('../character/values.js')
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()
)
}
module.exports = normalizeIdentifier
|