Skip to content

Commit 1236700

Browse files
authored
Merge pull request #39 from Bestra/bestra/graceful-private-mode
Make sure to access `sessionStorage` in a `try` block
2 parents e2d3656 + e240a4e commit 1236700

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/index.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,15 @@ type PersistOptions = {
1515
export function persistResumableFields(id: string, options?: PersistOptions): void {
1616
const selector = options?.selector ?? '.js-session-resumable'
1717
const keyPrefix = options?.keyPrefix ?? 'session-resume:'
18-
const storage = options?.storage ?? sessionStorage
18+
19+
let storage
20+
try {
21+
storage = options?.storage ?? sessionStorage
22+
} catch {
23+
// Ignore browser private mode error and return early
24+
return
25+
}
26+
1927
const key = `${keyPrefix}${id}`
2028
const resumables = []
2129

@@ -50,7 +58,15 @@ type RestoreOptions = {keyPrefix?: string; storage?: Pick<Storage, 'getItem' | '
5058

5159
export function restoreResumableFields(id: string, options?: RestoreOptions): void {
5260
const keyPrefix = options?.keyPrefix ?? 'session-resume:'
53-
const storage = options?.storage ?? sessionStorage
61+
62+
let storage
63+
try {
64+
storage = options?.storage ?? sessionStorage
65+
} catch {
66+
// Ignore browser private mode error and return early
67+
return
68+
}
69+
5470
const key = `${keyPrefix}${id}`
5571
let fields
5672

0 commit comments

Comments
 (0)