guardia-messenger/node_modules/graphql/jsutils/memoize3.js.flow
DESKTOP-TKLFCPRython f29f525c77 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 10:09:17 +09:00

40 lines
904 B
Plaintext

// @flow strict
/**
* Memoizes the provided three-argument function.
*/
export default function memoize3<
A1: { ... } | $ReadOnlyArray<mixed>,
A2: { ... } | $ReadOnlyArray<mixed>,
A3: { ... } | $ReadOnlyArray<mixed>,
R: mixed,
>(fn: (A1, A2, A3) => R): (A1, A2, A3) => R {
let cache0;
return function memoized(a1, a2, a3) {
if (!cache0) {
cache0 = new WeakMap();
}
let cache1 = cache0.get(a1);
let cache2;
if (cache1) {
cache2 = cache1.get(a2);
if (cache2) {
const cachedValue = cache2.get(a3);
if (cachedValue !== undefined) {
return cachedValue;
}
}
} else {
cache1 = new WeakMap();
cache0.set(a1, cache1);
}
if (!cache2) {
cache2 = new WeakMap();
cache1.set(a2, cache2);
}
const newValue = fn(a1, a2, a3);
cache2.set(a3, newValue);
return newValue;
};
}