Blame view

天文台pc/tianwentai-ui/node_modules/tar/dist/commonjs/normalize-unicode.js 1.13 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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