UNPKG

5.88 kBJavaScriptView Raw
1export function memoize1(fn) {
2 const memoize1cache = new WeakMap();
3 return function memoized(a1) {
4 const cachedValue = memoize1cache.get(a1);
5 if (cachedValue === undefined) {
6 const newValue = fn(a1);
7 memoize1cache.set(a1, newValue);
8 return newValue;
9 }
10 return cachedValue;
11 };
12}
13export function memoize2(fn) {
14 const memoize2cache = new WeakMap();
15 return function memoized(a1, a2) {
16 let cache2 = memoize2cache.get(a1);
17 if (!cache2) {
18 cache2 = new WeakMap();
19 memoize2cache.set(a1, cache2);
20 const newValue = fn(a1, a2);
21 cache2.set(a2, newValue);
22 return newValue;
23 }
24 const cachedValue = cache2.get(a2);
25 if (cachedValue === undefined) {
26 const newValue = fn(a1, a2);
27 cache2.set(a2, newValue);
28 return newValue;
29 }
30 return cachedValue;
31 };
32}
33export function memoize3(fn) {
34 const memoize3Cache = new WeakMap();
35 return function memoized(a1, a2, a3) {
36 let cache2 = memoize3Cache.get(a1);
37 if (!cache2) {
38 cache2 = new WeakMap();
39 memoize3Cache.set(a1, cache2);
40 const cache3 = new WeakMap();
41 cache2.set(a2, cache3);
42 const newValue = fn(a1, a2, a3);
43 cache3.set(a3, newValue);
44 return newValue;
45 }
46 let cache3 = cache2.get(a2);
47 if (!cache3) {
48 cache3 = new WeakMap();
49 cache2.set(a2, cache3);
50 const newValue = fn(a1, a2, a3);
51 cache3.set(a3, newValue);
52 return newValue;
53 }
54 const cachedValue = cache3.get(a3);
55 if (cachedValue === undefined) {
56 const newValue = fn(a1, a2, a3);
57 cache3.set(a3, newValue);
58 return newValue;
59 }
60 return cachedValue;
61 };
62}
63export function memoize4(fn) {
64 const memoize4Cache = new WeakMap();
65 return function memoized(a1, a2, a3, a4) {
66 let cache2 = memoize4Cache.get(a1);
67 if (!cache2) {
68 cache2 = new WeakMap();
69 memoize4Cache.set(a1, cache2);
70 const cache3 = new WeakMap();
71 cache2.set(a2, cache3);
72 const cache4 = new WeakMap();
73 cache3.set(a3, cache4);
74 const newValue = fn(a1, a2, a3, a4);
75 cache4.set(a4, newValue);
76 return newValue;
77 }
78 let cache3 = cache2.get(a2);
79 if (!cache3) {
80 cache3 = new WeakMap();
81 cache2.set(a2, cache3);
82 const cache4 = new WeakMap();
83 cache3.set(a3, cache4);
84 const newValue = fn(a1, a2, a3, a4);
85 cache4.set(a4, newValue);
86 return newValue;
87 }
88 const cache4 = cache3.get(a3);
89 if (!cache4) {
90 const cache4 = new WeakMap();
91 cache3.set(a3, cache4);
92 const newValue = fn(a1, a2, a3, a4);
93 cache4.set(a4, newValue);
94 return newValue;
95 }
96 const cachedValue = cache4.get(a4);
97 if (cachedValue === undefined) {
98 const newValue = fn(a1, a2, a3, a4);
99 cache4.set(a4, newValue);
100 return newValue;
101 }
102 return cachedValue;
103 };
104}
105export function memoize5(fn) {
106 const memoize5Cache = new WeakMap();
107 return function memoized(a1, a2, a3, a4, a5) {
108 let cache2 = memoize5Cache.get(a1);
109 if (!cache2) {
110 cache2 = new WeakMap();
111 memoize5Cache.set(a1, cache2);
112 const cache3 = new WeakMap();
113 cache2.set(a2, cache3);
114 const cache4 = new WeakMap();
115 cache3.set(a3, cache4);
116 const cache5 = new WeakMap();
117 cache4.set(a4, cache5);
118 const newValue = fn(a1, a2, a3, a4, a5);
119 cache5.set(a5, newValue);
120 return newValue;
121 }
122 let cache3 = cache2.get(a2);
123 if (!cache3) {
124 cache3 = new WeakMap();
125 cache2.set(a2, cache3);
126 const cache4 = new WeakMap();
127 cache3.set(a3, cache4);
128 const cache5 = new WeakMap();
129 cache4.set(a4, cache5);
130 const newValue = fn(a1, a2, a3, a4, a5);
131 cache5.set(a5, newValue);
132 return newValue;
133 }
134 let cache4 = cache3.get(a3);
135 if (!cache4) {
136 cache4 = new WeakMap();
137 cache3.set(a3, cache4);
138 const cache5 = new WeakMap();
139 cache4.set(a4, cache5);
140 const newValue = fn(a1, a2, a3, a4, a5);
141 cache5.set(a5, newValue);
142 return newValue;
143 }
144 let cache5 = cache4.get(a4);
145 if (!cache5) {
146 cache5 = new WeakMap();
147 cache4.set(a4, cache5);
148 const newValue = fn(a1, a2, a3, a4, a5);
149 cache5.set(a5, newValue);
150 return newValue;
151 }
152 const cachedValue = cache5.get(a5);
153 if (cachedValue === undefined) {
154 const newValue = fn(a1, a2, a3, a4, a5);
155 cache5.set(a5, newValue);
156 return newValue;
157 }
158 return cachedValue;
159 };
160}
161const memoize2of4cache = new WeakMap();
162export function memoize2of4(fn) {
163 return function memoized(a1, a2, a3, a4) {
164 let cache2 = memoize2of4cache.get(a1);
165 if (!cache2) {
166 cache2 = new WeakMap();
167 memoize2of4cache.set(a1, cache2);
168 const newValue = fn(a1, a2, a3, a4);
169 cache2.set(a2, newValue);
170 return newValue;
171 }
172 const cachedValue = cache2.get(a2);
173 if (cachedValue === undefined) {
174 const newValue = fn(a1, a2, a3, a4);
175 cache2.set(a2, newValue);
176 return newValue;
177 }
178 return cachedValue;
179 };
180}