@ehfuse/forma 3.3.0 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/src/core/FieldStore.d.ts +45 -0
- package/dist/esm/src/core/FieldStore.d.ts.map +1 -1
- package/dist/esm/src/core/FieldStore.js +165 -196
- package/dist/esm/src/core/FieldStore.js.map +1 -1
- package/dist/esm/src/hooks/useFormaState.d.ts.map +1 -1
- package/dist/esm/src/hooks/useFormaState.js +36 -11
- package/dist/esm/src/hooks/useFormaState.js.map +1 -1
- package/dist/esm/src/utils/deepEqual.d.ts +32 -0
- package/dist/esm/src/utils/deepEqual.d.ts.map +1 -0
- package/dist/esm/src/utils/deepEqual.js +102 -0
- package/dist/esm/src/utils/deepEqual.js.map +1 -0
- package/dist/esm/src/utils/dotNotation.d.ts.map +1 -1
- package/dist/esm/src/utils/dotNotation.js +3 -0
- package/dist/esm/src/utils/dotNotation.js.map +1 -1
- package/dist/esm/src/utils/persist.d.ts +15 -1
- package/dist/esm/src/utils/persist.d.ts.map +1 -1
- package/dist/esm/src/utils/persist.js +32 -2
- package/dist/esm/src/utils/persist.js.map +1 -1
- package/dist/src/core/FieldStore.d.ts +45 -0
- package/dist/src/core/FieldStore.d.ts.map +1 -1
- package/dist/src/core/FieldStore.js +165 -196
- package/dist/src/core/FieldStore.js.map +1 -1
- package/dist/src/hooks/useFormaState.d.ts.map +1 -1
- package/dist/src/hooks/useFormaState.js +36 -11
- package/dist/src/hooks/useFormaState.js.map +1 -1
- package/dist/src/utils/deepEqual.d.ts +32 -0
- package/dist/src/utils/deepEqual.d.ts.map +1 -0
- package/dist/src/utils/deepEqual.js +105 -0
- package/dist/src/utils/deepEqual.js.map +1 -0
- package/dist/src/utils/dotNotation.d.ts.map +1 -1
- package/dist/src/utils/dotNotation.js +3 -0
- package/dist/src/utils/dotNotation.js.map +1 -1
- package/dist/src/utils/persist.d.ts +15 -1
- package/dist/src/utils/persist.d.ts.map +1 -1
- package/dist/src/utils/persist.js +32 -2
- package/dist/src/utils/persist.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormaState.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFormaState.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFormaState.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import { useRef, useCallback, useMemo, useEffect, useSyncExternalStore, useContext, } from "react";
|
|
11
11
|
import { FieldStore } from "../core/FieldStore";
|
|
12
12
|
import { devWarn, mergeActions } from "../utils";
|
|
13
|
+
import { isBrowser } from "../utils/environment";
|
|
13
14
|
import { loadPersistedData, savePersistedData, clearPersistedData, hasPersistedData, normalizePersistConfig, debounce, } from "../utils/persist";
|
|
14
15
|
import { GlobalFormaContext } from "../contexts/GlobalFormaContext";
|
|
15
16
|
/**
|
|
@@ -137,24 +138,48 @@ export function useFormaState(initialValues = {}, options = {}) {
|
|
|
137
138
|
}, [store]); // store 의존성 추가
|
|
138
139
|
// Persist: 디바운스된 저장 함수 생성 | Create debounced save function
|
|
139
140
|
const debouncedSaveRef = useRef(null);
|
|
141
|
+
// Persist: 디바운스 저장 + 구독 + 이탈/언마운트 시 flush
|
|
142
|
+
// Persist: debounced save + subscription + flush on unmount/page-hide
|
|
143
|
+
// 하나의 effect 로 묶어 debounce 함수 생성과 flush 시점을 동일한 라이프사이클에 둔다.
|
|
144
|
+
// 이렇게 하면 언마운트나 탭 종료 직전의 마지막 변경이 debounce 대기 중에 유실되지 않는다.
|
|
145
|
+
// Keeping creation and flush in one effect ensures the last change isn't lost
|
|
146
|
+
// while still pending in the debounce window on unmount or tab close.
|
|
140
147
|
useEffect(() => {
|
|
141
|
-
if (!persistConfig)
|
|
148
|
+
if (!persistConfig) {
|
|
149
|
+
debouncedSaveRef.current = null;
|
|
142
150
|
return;
|
|
151
|
+
}
|
|
143
152
|
const debounceTime = persistConfig.debounce ?? 300;
|
|
144
|
-
|
|
153
|
+
const debouncedSave = debounce((values) => {
|
|
145
154
|
savePersistedData(persistConfig, values, storagePrefix);
|
|
146
155
|
}, debounceTime);
|
|
147
|
-
|
|
148
|
-
// Persist: 값 변경 시 저장 | Save on value change
|
|
149
|
-
useEffect(() => {
|
|
150
|
-
if (!persistConfig || !debouncedSaveRef.current)
|
|
151
|
-
return;
|
|
156
|
+
debouncedSaveRef.current = debouncedSave;
|
|
152
157
|
const unsubscribe = store.subscribeGlobal(() => {
|
|
153
|
-
|
|
154
|
-
debouncedSaveRef.current?.(currentValues);
|
|
158
|
+
debouncedSave(store.getValues());
|
|
155
159
|
});
|
|
156
|
-
|
|
157
|
-
|
|
160
|
+
// 페이지 이탈/백그라운드 전환 시 대기 중인 저장을 즉시 실행
|
|
161
|
+
// Flush pending save when the page is hidden or being unloaded.
|
|
162
|
+
// visibilitychange(hidden) + pagehide 가 beforeunload 보다 신뢰도가 높다(특히 모바일).
|
|
163
|
+
const flush = () => debouncedSave.flush();
|
|
164
|
+
const handleVisibility = () => {
|
|
165
|
+
if (document.visibilityState === "hidden")
|
|
166
|
+
flush();
|
|
167
|
+
};
|
|
168
|
+
if (isBrowser()) {
|
|
169
|
+
document.addEventListener("visibilitychange", handleVisibility);
|
|
170
|
+
window.addEventListener("pagehide", flush);
|
|
171
|
+
}
|
|
172
|
+
return () => {
|
|
173
|
+
unsubscribe();
|
|
174
|
+
if (isBrowser()) {
|
|
175
|
+
document.removeEventListener("visibilitychange", handleVisibility);
|
|
176
|
+
window.removeEventListener("pagehide", flush);
|
|
177
|
+
}
|
|
178
|
+
// 언마운트 시 대기 중인 마지막 저장을 즉시 반영 (손실 방지)
|
|
179
|
+
// Flush the pending save on unmount so the last change is persisted.
|
|
180
|
+
debouncedSave.flush();
|
|
181
|
+
};
|
|
182
|
+
}, [store, persistConfig, storagePrefix]);
|
|
158
183
|
// Persist: clearPersisted 함수 | clearPersisted function
|
|
159
184
|
const clearPersisted = useCallback(() => {
|
|
160
185
|
if (persistConfig) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormaState.js","sourceRoot":"","sources":["../../../../src/hooks/useFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACH,MAAM,EACN,WAAW,EACX,OAAO,EACP,SAAS,EACT,oBAAoB,EACpB,UAAU,GACb,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAEH,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,
|
|
1
|
+
{"version":3,"file":"useFormaState.js","sourceRoot":"","sources":["../../../../src/hooks/useFormaState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* deepEqual.ts
|
|
3
|
+
*
|
|
4
|
+
* Forma - 값 동등 비교 유틸 | Value deep-equality utility
|
|
5
|
+
*
|
|
6
|
+
* 기존 `JSON.stringify(a) === JSON.stringify(b)` 비교를 대체한다.
|
|
7
|
+
* Replaces the previous `JSON.stringify(a) === JSON.stringify(b)` comparison.
|
|
8
|
+
*
|
|
9
|
+
* 설계 원칙 | Design principles:
|
|
10
|
+
* - stringify 동작 보존 | Preserve stringify behavior:
|
|
11
|
+
* · 값이 undefined / function / symbol 인 키는 "없는 키"로 취급
|
|
12
|
+
* (keys whose value is undefined/function/symbol are treated as absent)
|
|
13
|
+
* - 개선 | Improvements:
|
|
14
|
+
* · 키 순서 무시 (stringify 는 순서 민감) | key order ignored
|
|
15
|
+
* · Date 는 시간값으로 비교 | Date compared by time value
|
|
16
|
+
* · 순환참조 안전 (stringify 는 throw) | cyclic-safe (stringify throws)
|
|
17
|
+
* · NaN === NaN (Object.is 의미) | NaN equals NaN
|
|
18
|
+
* - 성능 | Performance:
|
|
19
|
+
* · a === b 또는 Object.is 면 즉시 true | identity fast-path
|
|
20
|
+
*
|
|
21
|
+
* @license MIT License
|
|
22
|
+
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* 두 값이 깊은 의미에서 동일한지 비교한다. | Compare two values for deep equality.
|
|
26
|
+
*
|
|
27
|
+
* @param a 비교 대상 A | Value A
|
|
28
|
+
* @param b 비교 대상 B | Value B
|
|
29
|
+
* @returns 동일하면 true | true if deeply equal
|
|
30
|
+
*/
|
|
31
|
+
export declare function deepEqual(a: any, b: any): boolean;
|
|
32
|
+
//# sourceMappingURL=deepEqual.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepEqual.d.ts","sourceRoot":"","sources":["../../../../src/utils/deepEqual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAmBH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAEjD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* deepEqual.ts
|
|
3
|
+
*
|
|
4
|
+
* Forma - 값 동등 비교 유틸 | Value deep-equality utility
|
|
5
|
+
*
|
|
6
|
+
* 기존 `JSON.stringify(a) === JSON.stringify(b)` 비교를 대체한다.
|
|
7
|
+
* Replaces the previous `JSON.stringify(a) === JSON.stringify(b)` comparison.
|
|
8
|
+
*
|
|
9
|
+
* 설계 원칙 | Design principles:
|
|
10
|
+
* - stringify 동작 보존 | Preserve stringify behavior:
|
|
11
|
+
* · 값이 undefined / function / symbol 인 키는 "없는 키"로 취급
|
|
12
|
+
* (keys whose value is undefined/function/symbol are treated as absent)
|
|
13
|
+
* - 개선 | Improvements:
|
|
14
|
+
* · 키 순서 무시 (stringify 는 순서 민감) | key order ignored
|
|
15
|
+
* · Date 는 시간값으로 비교 | Date compared by time value
|
|
16
|
+
* · 순환참조 안전 (stringify 는 throw) | cyclic-safe (stringify throws)
|
|
17
|
+
* · NaN === NaN (Object.is 의미) | NaN equals NaN
|
|
18
|
+
* - 성능 | Performance:
|
|
19
|
+
* · a === b 또는 Object.is 면 즉시 true | identity fast-path
|
|
20
|
+
*
|
|
21
|
+
* @license MIT License
|
|
22
|
+
* @copyright 2025 KIM YOUNG JIN (ehfuse@gmail.com)
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* 객체에서 "실재하는" 키만 추린다. | Collect keys whose value is meaningful.
|
|
26
|
+
* stringify 가 직렬화에서 제외하는 값(undefined/function/symbol)을 가진 키는 제외.
|
|
27
|
+
* Excludes keys whose value would be dropped by JSON.stringify.
|
|
28
|
+
*/
|
|
29
|
+
function meaningfulKeys(obj) {
|
|
30
|
+
const keys = [];
|
|
31
|
+
for (const key in obj) {
|
|
32
|
+
if (!Object.prototype.hasOwnProperty.call(obj, key))
|
|
33
|
+
continue;
|
|
34
|
+
const v = obj[key];
|
|
35
|
+
const t = typeof v;
|
|
36
|
+
if (v === undefined || t === "function" || t === "symbol")
|
|
37
|
+
continue;
|
|
38
|
+
keys.push(key);
|
|
39
|
+
}
|
|
40
|
+
return keys;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 두 값이 깊은 의미에서 동일한지 비교한다. | Compare two values for deep equality.
|
|
44
|
+
*
|
|
45
|
+
* @param a 비교 대상 A | Value A
|
|
46
|
+
* @param b 비교 대상 B | Value B
|
|
47
|
+
* @returns 동일하면 true | true if deeply equal
|
|
48
|
+
*/
|
|
49
|
+
export function deepEqual(a, b) {
|
|
50
|
+
return deepEqualInner(a, b, new WeakMap());
|
|
51
|
+
}
|
|
52
|
+
function deepEqualInner(a, b, seen) {
|
|
53
|
+
// 1. identity / NaN | Object.is 로 +0/-0, NaN 까지 처리
|
|
54
|
+
if (Object.is(a, b))
|
|
55
|
+
return true;
|
|
56
|
+
// 2. 한쪽만 객체이거나 null 이면 다름 | one is non-object/null → not equal
|
|
57
|
+
if (a === null ||
|
|
58
|
+
b === null ||
|
|
59
|
+
typeof a !== "object" ||
|
|
60
|
+
typeof b !== "object") {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// 3. Date | compare by time
|
|
64
|
+
const aIsDate = a instanceof Date;
|
|
65
|
+
const bIsDate = b instanceof Date;
|
|
66
|
+
if (aIsDate || bIsDate) {
|
|
67
|
+
return aIsDate && bIsDate && a.getTime() === b.getTime();
|
|
68
|
+
}
|
|
69
|
+
// 4. 배열 | arrays
|
|
70
|
+
const aIsArr = Array.isArray(a);
|
|
71
|
+
const bIsArr = Array.isArray(b);
|
|
72
|
+
if (aIsArr !== bIsArr)
|
|
73
|
+
return false;
|
|
74
|
+
// 5. 순환참조 가드 | cyclic guard
|
|
75
|
+
// 이미 (a -> b) 매핑을 본 적이 있으면 동일 경로로 간주
|
|
76
|
+
const prev = seen.get(a);
|
|
77
|
+
if (prev === b)
|
|
78
|
+
return true;
|
|
79
|
+
seen.set(a, b);
|
|
80
|
+
if (aIsArr) {
|
|
81
|
+
if (a.length !== b.length)
|
|
82
|
+
return false;
|
|
83
|
+
for (let i = 0; i < a.length; i++) {
|
|
84
|
+
if (!deepEqualInner(a[i], b[i], seen))
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
// 6. plain object — stringify 의미를 보존하기 위해 meaningfulKeys 사용
|
|
90
|
+
const aKeys = meaningfulKeys(a);
|
|
91
|
+
const bKeys = meaningfulKeys(b);
|
|
92
|
+
if (aKeys.length !== bKeys.length)
|
|
93
|
+
return false;
|
|
94
|
+
for (const key of aKeys) {
|
|
95
|
+
if (!Object.prototype.hasOwnProperty.call(b, key))
|
|
96
|
+
return false;
|
|
97
|
+
if (!deepEqualInner(a[key], b[key], seen))
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=deepEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../../src/utils/deepEqual.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotNotation.d.ts","sourceRoot":"","sources":["../../../../src/utils/dotNotation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAQH;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"dotNotation.d.ts","sourceRoot":"","sources":["../../../../src/utils/dotNotation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAQH;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAqC1D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CA4CtE"}
|
|
@@ -44,6 +44,9 @@ const FORBIDDEN_KEYS = new Set(["__proto__", "prototype", "constructor"]);
|
|
|
44
44
|
* ```
|
|
45
45
|
*/
|
|
46
46
|
export function getNestedValue(obj, path) {
|
|
47
|
+
if (obj === null || obj === undefined) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
47
50
|
if (!path.includes(".")) {
|
|
48
51
|
if (FORBIDDEN_KEYS.has(path)) {
|
|
49
52
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotNotation.js","sourceRoot":"","sources":["../../../../src/utils/dotNotation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dotNotation.js","sourceRoot":"","sources":["../../../../src/utils/dotNotation.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,8 +60,22 @@ export declare function clearPersistedData(config: PersistConfig, storagePrefix?
|
|
|
60
60
|
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
61
61
|
*/
|
|
62
62
|
export declare function hasPersistedData(config: PersistConfig, storagePrefix?: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* flush/cancel 가능한 디바운스 함수 타입 | Debounced function with flush/cancel
|
|
65
|
+
*/
|
|
66
|
+
export interface DebouncedFunction<T extends (...args: any[]) => any> {
|
|
67
|
+
(...args: Parameters<T>): void;
|
|
68
|
+
/** 대기 중인 호출을 즉시 실행 | Immediately invoke the pending call (if any) */
|
|
69
|
+
flush: () => void;
|
|
70
|
+
/** 대기 중인 호출을 취소 | Cancel the pending call */
|
|
71
|
+
cancel: () => void;
|
|
72
|
+
}
|
|
63
73
|
/**
|
|
64
74
|
* 디바운스 유틸리티 | Debounce utility
|
|
75
|
+
*
|
|
76
|
+
* flush(): 대기 중인 마지막 호출을 즉시 실행 (언마운트/페이지 이탈 시 저장 손실 방지용)
|
|
77
|
+
* flush(): immediately runs the pending call — used to avoid losing the last save on unmount/page unload
|
|
78
|
+
* cancel(): 대기 중인 호출을 취소 | cancel pending call
|
|
65
79
|
*/
|
|
66
|
-
export declare function debounce<T extends (...args: any[]) => any>(fn: T, delay: number):
|
|
80
|
+
export declare function debounce<T extends (...args: any[]) => any>(fn: T, delay: number): DebouncedFunction<T>;
|
|
67
81
|
//# sourceMappingURL=persist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../../../src/utils/persist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,cAAc,CAAC;AAYpD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAK5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7E;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAiBnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,CAAC,EACT,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CA4BT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAcT;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAYT;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../../../src/utils/persist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,cAAc,CAAC;AAYpD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAK5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7E;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAiBnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,CAAC,EACT,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CA4BT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAcT;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAYT;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAChE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,qEAAqE;IACrE,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACtD,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACd,iBAAiB,CAAC,CAAC,CAAC,CAyCtB"}
|
|
@@ -138,17 +138,47 @@ export function hasPersistedData(config, storagePrefix) {
|
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
140
|
* 디바운스 유틸리티 | Debounce utility
|
|
141
|
+
*
|
|
142
|
+
* flush(): 대기 중인 마지막 호출을 즉시 실행 (언마운트/페이지 이탈 시 저장 손실 방지용)
|
|
143
|
+
* flush(): immediately runs the pending call — used to avoid losing the last save on unmount/page unload
|
|
144
|
+
* cancel(): 대기 중인 호출을 취소 | cancel pending call
|
|
141
145
|
*/
|
|
142
146
|
export function debounce(fn, delay) {
|
|
143
147
|
let timeoutId = null;
|
|
144
|
-
|
|
148
|
+
// 대기 중인 마지막 인자 보관 (flush 시 사용) | Keep last pending args for flush
|
|
149
|
+
let pendingArgs = null;
|
|
150
|
+
const debounced = (...args) => {
|
|
151
|
+
pendingArgs = args;
|
|
145
152
|
if (timeoutId) {
|
|
146
153
|
clearTimeout(timeoutId);
|
|
147
154
|
}
|
|
148
155
|
timeoutId = setTimeout(() => {
|
|
149
|
-
fn(...args);
|
|
150
156
|
timeoutId = null;
|
|
157
|
+
const callArgs = pendingArgs;
|
|
158
|
+
pendingArgs = null;
|
|
159
|
+
if (callArgs) {
|
|
160
|
+
fn(...callArgs);
|
|
161
|
+
}
|
|
151
162
|
}, delay);
|
|
152
163
|
};
|
|
164
|
+
debounced.flush = () => {
|
|
165
|
+
if (timeoutId) {
|
|
166
|
+
clearTimeout(timeoutId);
|
|
167
|
+
timeoutId = null;
|
|
168
|
+
}
|
|
169
|
+
if (pendingArgs) {
|
|
170
|
+
const callArgs = pendingArgs;
|
|
171
|
+
pendingArgs = null;
|
|
172
|
+
fn(...callArgs);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
debounced.cancel = () => {
|
|
176
|
+
if (timeoutId) {
|
|
177
|
+
clearTimeout(timeoutId);
|
|
178
|
+
timeoutId = null;
|
|
179
|
+
}
|
|
180
|
+
pendingArgs = null;
|
|
181
|
+
};
|
|
182
|
+
return debounced;
|
|
153
183
|
}
|
|
154
184
|
//# sourceMappingURL=persist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../src/utils/persist.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../src/utils/persist.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,51 @@ export declare class FieldStore<T extends Record<string, any>> {
|
|
|
47
47
|
private watchers;
|
|
48
48
|
constructor(initialValues: T);
|
|
49
49
|
private areValuesEqual;
|
|
50
|
+
/**
|
|
51
|
+
* 특정 필드 변경에 의해 깨어나야 할 dot-notation 구독자들을 수집한다.
|
|
52
|
+
* Collect dot-notation subscribers that must be notified for a given field change.
|
|
53
|
+
*
|
|
54
|
+
* setValue(즉시 알림)와 setValueWithoutNotify(배치 수집)가 동일한 매칭 규칙을
|
|
55
|
+
* 공유하도록 단일 진실 원천(single source of truth)으로 추출한 함수.
|
|
56
|
+
* Extracted as a single source of truth so setValue (immediate) and
|
|
57
|
+
* setValueWithoutNotify (batched) share the exact same matching rules,
|
|
58
|
+
* eliminating single-vs-batch notification divergence.
|
|
59
|
+
*
|
|
60
|
+
* @param changedPath 실제로 변경된 경로 / The path that actually changed
|
|
61
|
+
* - dot 경로 set: 전체 경로 (예: "a.b.c") / full dot path for nested set
|
|
62
|
+
* - 일반 필드 set: 루트 필드명 (예: "user") / root field name for plain set
|
|
63
|
+
* @param rootFieldStr 루트 필드명 / Root field name (changedPath 의 첫 세그먼트)
|
|
64
|
+
* @param oldValue 변경 전 값 / Previous value
|
|
65
|
+
* - dot 경로: 루트 필드의 이전 값 / previous root value
|
|
66
|
+
* - 일반 필드: 필드의 이전 값 / previous field value
|
|
67
|
+
* @param newValue 변경 후 값 / New value (대응되는 범위)
|
|
68
|
+
* @returns 깨워야 할 listener 집합 / Set of listeners to notify
|
|
69
|
+
*/
|
|
70
|
+
private collectAffectedDotListeners;
|
|
71
|
+
/**
|
|
72
|
+
* 점 없는 루트 필드(fieldStr)가 통째로 교체될 때, 그 하위를 구독한
|
|
73
|
+
* dot-notation 구독자들 중 깨어나야 할 listener 들을 수집한다.
|
|
74
|
+
* Collect dot-notation subscribers to notify when a plain root field
|
|
75
|
+
* (fieldStr) is replaced as a whole.
|
|
76
|
+
*
|
|
77
|
+
* setValue(즉시) / setValueWithoutNotify(배치) 가 동일한 매칭 규칙을 공유하도록
|
|
78
|
+
* 단일 진실 원천으로 추출. 분기 규칙은 기존 구현과 byte 단위로 동일.
|
|
79
|
+
* Extracted as a single source of truth so setValue (immediate) and
|
|
80
|
+
* setValueWithoutNotify (batched) share identical matching rules.
|
|
81
|
+
* Branch logic is byte-for-byte identical to the previous inline implementations.
|
|
82
|
+
*
|
|
83
|
+
* 주의: "값이 실제로 변경되었는가" 게이트는 각 호출부에 남겨둔다.
|
|
84
|
+
* - setValue: field.value !== value (참조 비교)
|
|
85
|
+
* - setValueWithoutNotify: deepEqual 깊은 비교
|
|
86
|
+
* Note: the "did the value actually change" gate stays at each call site
|
|
87
|
+
* (reference compare for setValue, deep compare for setValueWithoutNotify).
|
|
88
|
+
*
|
|
89
|
+
* @param fieldStr 교체된 루트 필드명 / Replaced root field name
|
|
90
|
+
* @param oldValue 필드의 이전 값 / Previous field value
|
|
91
|
+
* @param value 필드의 새 값 / New field value
|
|
92
|
+
* @returns 깨워야 할 listener 집합 / Set of listeners to notify
|
|
93
|
+
*/
|
|
94
|
+
private collectAffectedPlainFieldListeners;
|
|
50
95
|
private updateDirtyForField;
|
|
51
96
|
/**
|
|
52
97
|
* 특정 필드 값 가져오기 / Get specific field value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldStore.d.ts","sourceRoot":"","sources":["../../../src/core/FieldStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"FieldStore.d.ts","sourceRoot":"","sources":["../../../src/core/FieldStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH;;;;;;GAMG;AACH;;GAEG;AACH,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,CAAC;AAE1D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACjD,OAAO,CAAC,MAAM,CACA;IACd,OAAO,CAAC,oBAAoB,CAA2C;IACvE,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAA8C;gBAElD,aAAa,EAAE,CAAC;IAY5B,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,2BAA2B;IA2DnC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,kCAAkC;IAiF1C,OAAO,CAAC,mBAAmB;IAmB3B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG;IA+B1C;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI;IAuD3D;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI;IAOpC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG;IA6HhD;;;OAGG;IACH,SAAS,IAAI,CAAC;IAUd;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IA4C/B;;;OAGG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IA2BpC;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,kBAAkB;IAoB1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU/B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAyC/B;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAYzD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA2CnC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IA4B5C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyF7B;;OAEG;IACH,KAAK;IAyFL;;;;;;OAMG;IACH,KAAK,CACD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAClC,MAAM,IAAI;IAuBb;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA4EtB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,OAAO;CAMV"}
|