source: node_modules/victory-vendor/lib-vendor/internmap/src/index.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.8 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.InternSet = exports.InternMap = void 0;
7class InternMap extends Map {
8 constructor(entries, key = keyof) {
9 super();
10 Object.defineProperties(this, {
11 _intern: {
12 value: new Map()
13 },
14 _key: {
15 value: key
16 }
17 });
18 if (entries != null) for (const [key, value] of entries) this.set(key, value);
19 }
20 get(key) {
21 return super.get(intern_get(this, key));
22 }
23 has(key) {
24 return super.has(intern_get(this, key));
25 }
26 set(key, value) {
27 return super.set(intern_set(this, key), value);
28 }
29 delete(key) {
30 return super.delete(intern_delete(this, key));
31 }
32}
33exports.InternMap = InternMap;
34class InternSet extends Set {
35 constructor(values, key = keyof) {
36 super();
37 Object.defineProperties(this, {
38 _intern: {
39 value: new Map()
40 },
41 _key: {
42 value: key
43 }
44 });
45 if (values != null) for (const value of values) this.add(value);
46 }
47 has(value) {
48 return super.has(intern_get(this, value));
49 }
50 add(value) {
51 return super.add(intern_set(this, value));
52 }
53 delete(value) {
54 return super.delete(intern_delete(this, value));
55 }
56}
57exports.InternSet = InternSet;
58function intern_get({
59 _intern,
60 _key
61}, value) {
62 const key = _key(value);
63 return _intern.has(key) ? _intern.get(key) : value;
64}
65function intern_set({
66 _intern,
67 _key
68}, value) {
69 const key = _key(value);
70 if (_intern.has(key)) return _intern.get(key);
71 _intern.set(key, value);
72 return value;
73}
74function intern_delete({
75 _intern,
76 _key
77}, value) {
78 const key = _key(value);
79 if (_intern.has(key)) {
80 value = _intern.get(key);
81 _intern.delete(key);
82 }
83 return value;
84}
85function keyof(value) {
86 return value !== null && typeof value === "object" ? value.valueOf() : value;
87}
Note: See TracBrowser for help on using the repository browser.