autosave-backup-ring-buffer
복구용 스냅샷 링의 보관 계획을 세웁니다. 새 키에 쓰고 나중에 지울 키를 알려 줍니다. 시계가 거꾸로 가면 거부합니다.
어떤 문제를 푸나The problem
편집기는 마지막 N개의 자동 저장을 보관합니다. 흔한 실수는 새 스냅샷이 안전해지기 전에 가장 오래된 것을 지우거나 덮어쓰는 것입니다. 이 함수는 어느 새 키에 쓸지, 나중에 지울 키는 무엇인지만 계획으로 돌려주고 저장소 트랜잭션은 호출자에게 남깁니다.
이런 분께 맞습니다Who it is for
브라우저나 데스크톱 편집기에 자동 저장과 복구 기능을 넣는 개발자.
무엇을 하나What it does
- planBackup(entries, keep, now)는 key, entries(최신순), dropped를 돌려줍니다.
- 기본은 항상 새 키입니다. 링이 잠시 keep+1개를 가질 수 있습니다.
- inPlace: true는 가장 오래된 슬롯을 재사용하지만 제자리 덮어쓰기라 충돌 안전하지 않고, keep=1이면 유일한 스냅샷을 덮어씁니다.
- keep 범위, 중복 키, 유한하지 않은 시간, 가장 새 스냅샷보다 이른 시각은 오류입니다.
직접 돌려 본 출력Real output
저장소의 examples 폴더를 실행한 결과입니다.
$ node examples/quickstart.mjs
t=1000 write -> backup-0 dropped: [] index: backup-0
t=2000 write -> backup-1 dropped: [] index: backup-1, backup-0
t=3000 write -> backup-2 dropped: [] index: backup-2, backup-1, backup-0
t=4000 write -> backup-3 dropped: ["backup-0"] index: backup-3, backup-2, backup-1
t=5000 write -> backup-0 dropped: ["backup-1"] index: backup-0, backup-3, backup-2
clock went backwards -> clock moved backwards
알아둘 한계Limits
- 계획만 돌려줍니다. IndexedDB, 암호화, 파일 시스템 코드는 없습니다.
받아서 쓰기Get it
# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/autosave-backup-ring-buffer.git
# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/autosave-backup-ring-buffer.git ~/.claude/skills/backup-ring-plan
정보Info
- 분류Category
- 문서·데이터 라이브러리Document & data libraries
- 형태Type
- 라이브러리Library
- 라이선스License
- MIT
- 필요한 것Requires
- Node.js 22 이상
- 저장소Repository
- autosave-backup-ring-buffer
- 토픽Topics
backupautosaveretentionindexeddbjavascriptesmlocal-firstzero-dependencies
2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.