aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/tar/dist/commonjs/normalize-unicode.js
diff options
context:
space:
mode:
authorpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
committerpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
commit55a4f1fc869e41aca748c63d3018f0448b1606e0 (patch)
treed132d1d01772b6d53faee3e63c534dea5706b78a /node_modules/tar/dist/commonjs/normalize-unicode.js
downloadcrud-55a4f1fc869e41aca748c63d3018f0448b1606e0.tar.gz
first commit
Diffstat (limited to 'node_modules/tar/dist/commonjs/normalize-unicode.js')
-rw-r--r--node_modules/tar/dist/commonjs/normalize-unicode.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/node_modules/tar/dist/commonjs/normalize-unicode.js b/node_modules/tar/dist/commonjs/normalize-unicode.js
new file mode 100644
index 0000000..5b0eaec
--- /dev/null
+++ b/node_modules/tar/dist/commonjs/normalize-unicode.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.normalizeUnicode = void 0;
+// 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);
+// Limit the size of this. Very low-sophistication LRU cache
+const MAX = 10000;
+const cache = new Set();
+const normalizeUnicode = (s) => {
+ if (!cache.has(s)) {
+ // shake out identical accents and ligatures
+ normalizeCache[s] = s
+ .normalize('NFD')
+ .toLocaleLowerCase('en')
+ .toLocaleUpperCase('en');
+ }
+ else {
+ cache.delete(s);
+ }
+ cache.add(s);
+ const ret = normalizeCache[s];
+ let i = cache.size - MAX;
+ // only prune when we're 10% over the max
+ if (i > MAX / 10) {
+ for (const s of cache) {
+ cache.delete(s);
+ delete normalizeCache[s];
+ if (--i <= 0)
+ break;
+ }
+ }
+ return ret;
+};
+exports.normalizeUnicode = normalizeUnicode;
+//# sourceMappingURL=normalize-unicode.js.map \ No newline at end of file