12 lines
413 B
JavaScript
Executable file
12 lines
413 B
JavaScript
Executable file
// warning: extremely hot code path.
|
|
// This has been meticulously optimized for use
|
|
// within npm install on large package trees.
|
|
// Do not edit without careful benchmarking.
|
|
const normalizeCache = Object.create(null)
|
|
const { hasOwnProperty } = Object.prototype
|
|
module.exports = s => {
|
|
if (!hasOwnProperty.call(normalizeCache, s)) {
|
|
normalizeCache[s] = s.normalize('NFKD')
|
|
}
|
|
return normalizeCache[s]
|
|
}
|