restate / v1.0.0

API 레퍼런스

@kkwaenggwari/restate 1.0의 모든 export와 인자, 반환값, 동작.

이 페이지에서Export스토어 메서드저장 스토어 메서드persistedRestate 옵션상태 필드restateManager와 scope.manager저장소 어댑터 인터페이스

Export

웹과 React Native 모두 @kkwaenggwari/restate에서 가져옵니다.

Export반환용도
restate(initial, updater | options?)스토어 훅공유 메모리 스토어를 만듭니다.
persistedRestate(initial, options)저장 스토어 훅저장소로 복원하고 저장하는 스토어를 만듭니다.
useRestateScope(factory?)factory 결과 또는 scope컴포넌트가 스토어를 소유하고, 언마운트 뒤 파괴합니다.
createRestateScope()RestateScopeReact 밖에서 스토어를 소유합니다. 끝나면 destroy()를 부르세요.
shallow(left, right)boolean선택값을 한 단계 깊이로 비교합니다.
batch(callback)콜백의 결과여러 변경 뒤 구독자에게 한 번 알립니다.
restateManagerRestateManager시작 데이터를 기다리고 전역 스토어에 일괄 작업을 실행합니다.
createIndexedDBStorage(options?)RestateStorage데이터베이스나 store 이름을 정한 IndexedDB 어댑터를 만듭니다.
createMMKVStorage(options?)RestateStorage직접 만든 인스턴스나 설정으로 MMKV 어댑터를 만듭니다.

스토어 메서드

스토어는 훅으로 호출하는 함수이며 아래 메서드를 가집니다.

멤버설명
useStore()값 전체를 반환하고 변경마다 다시 렌더합니다.
useStore(selector, isEqual?)선택값을 반환하고, isEqual(기본 Object.is)이 변화를 알릴 때 다시 렌더합니다.
get()구독하지 않고 현재 값을 읽습니다.
set(value | updater)값을 바꾸거나 이전 값으로 계산합니다. destroy() 뒤에는 무시됩니다.
reset()선언한 초기값으로 되돌리고 그 값을 반환합니다.
subscribe(listener)변경마다 listener(value, previous, event)를 부르고 구독 해제 함수를 반환합니다.
subscribeSelector(selector, listener, isEqual?)선택값이 바뀔 때만 listener를 부릅니다.
on(type, listener)change, reset, save, error 같은 이벤트를 듣습니다.
start() / stop() / isRunning()updater를 직접 제어합니다.
destroy() / isDestroyed()리스너와 updater를 해제합니다. 이후 구독은 STORE_DESTROYED를 던집니다.
getInitial() / getServerSnapshot() / getError()초기값, 서버 스냅샷, 마지막 리스너 오류.
id / kind고유 id, memory 또는 persistent.

저장 스토어 메서드

persistedRestate는 아래 멤버가 더해진 스토어를 반환합니다.

멤버설명
ready자동 불러오기가 끝나면 실패하더라도 이행되는 Promise. status()를 확인하세요.
save()현재 값을 쓰고, 실제로 쓴 값으로 이행됩니다.
restore()저장된 값을 메모리로 읽어 옵니다.
hasSaved()저장된 기록이 있는지 알려 줍니다.
clearStorage()저장된 기록을 지웁니다. 메모리는 그대로입니다.
resetAndClearStorage()메모리를 초기값으로 되돌리고 저장된 기록을 지웁니다.
initialize()예를 들어 실패한 기록을 고친 뒤 다시 불러옵니다.
status()고정된 상태 스냅샷. 필드가 바뀌기 전까지 같은 객체입니다.
useStatus(selector?, isEqual?)상태나 선택한 부분이 바뀔 때 다시 렌더하는 훅.
key / storageKey / storage논리 키, namespace가 붙은 키, 사용 중인 어댑터.

persistedRestate 옵션

key만 필수이고 나머지는 선택입니다.

옵션기본값의미
key필수기록의 논리 키.
namespace"@kkwaenggwari/restate"저장 키의 접두어. 빈 문자열이면 붙이지 않습니다.
storageIndexedDB / MMKV플랫폼 기본값 대신 쓸 어댑터.
autoSavefalsetrue는 변경마다, { delayMs }는 변경이 멈춘 뒤 저장합니다.
version / migrate1 / 없음기록 버전과 이전 기록을 올리는 방법.
validate없음저장 전과 복원·마이그레이션 뒤에 값을 검사합니다.
serializerJSON직접 만든 serialize, deserialize 함수.
operationTimeoutMs30000저장소 작업 하나의 시간 제한.
maxPendingOperations256실행 중인 작업을 포함해 기다릴 수 있는 작업 수.
maxStorageCharacters5242880UTF-16 코드 단위로 센 인코딩 값의 최대 길이.
updater / managed / serverSnapshot / onError—restate 옵션과 같습니다.

상태 필드

status()와 useStatus()는 아래 필드를 반환합니다.

필드의미
ready자동 불러오기가 끝났습니다.
dirty메모리가 마지막으로 불러오거나 저장하거나 복원한 값과 다릅니다.
operation지금 실행 중인 저장소 작업, 없으면 null.
pending실행 중인 작업을 포함해 아직 끝나지 않은 저장소 작업 수.
blocked중단되거나 시간 초과된 어댑터 호출이 아직 끝나지 않았습니다.
available저장소를 쓸 수 있는지 여부.
error / observerError마지막 저장소 오류, 마지막 상태 리스너 오류.
lastSavedAt / lastRestoredAt마지막 성공 시각(epoch 밀리초), 없으면 null.

restateManager와 scope.manager

각 manager는 자신에게 등록된 저장 스토어를 추적합니다.

멤버설명
ready접근한 시점에 등록된 스토어를 기다립니다. BULK_OPERATION_FAILED로 거부될 수 있습니다.
saveAll(options?) / restoreAll(options?)모든 스토어를 저장하거나 복원합니다. { concurrency }로 병렬 작업을 제한합니다.
clearStorageAll() / resetAll() / resetAllAndClearStorage()기록을 지우거나, 메모리를 되돌리거나, 둘 다 합니다.
list() / get(idOrKey) / size()등록된 스토어를 살펴봅니다.
subscribe(listener) / status()manager 이벤트와 리스너 오류를 관찰합니다.
destroyAll()등록된 모든 스토어를 파괴합니다.

저장소 어댑터 인터페이스

아래 메서드를 가진 객체를 storage로 넘기세요. 모든 메서드는 값이나 Promise를 반환할 수 있습니다.

메서드설명
getItem(key, context?)저장된 문자열이나 null을 반환합니다.
setItem(key, value, context?)문자열을 저장합니다.
removeItem(key, context?)기록을 지웁니다.
isAvailable?()저장소를 쓸 수 있는지 동기적으로 알려 줍니다.
clear?() / close?()선택적인 비우기와 정리.
coordinationKey?같은 실제 저장소를 감싸는 어댑터들이 공유하는 객체.

문서 검색

모든 가이드의 제목·설명·본문을 검색합니다.