File size: 1,133 Bytes
c59bca4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import re

with open("App.tsx", "r") as f:
    content = f.read()

safe_set_code = """
// Safely set localStorage by catching quota errors and pruning older data
const safeSetItem = (key: string, value: any, pruneFn?: (data: any) => any) => {
    try {
        localStorage.setItem(key, JSON.stringify(value));
    } catch (e) {
        console.warn(`Quota exceeded for ${key}. Pruning and retrying...`);
        if (pruneFn) {
            try {
                const pruned = pruneFn(value);
                localStorage.setItem(key, JSON.stringify(pruned));
                console.log(`Successfully pruned and saved ${key}.`);
            } catch (pruneErr) {
                console.error(`Failed to save ${key} even after pruning:`, pruneErr);
                if (key === STORAGE_KEYS.SESSIONS_CACHE) localStorage.removeItem(key);
            }
        } else {
            if (key === STORAGE_KEYS.SESSIONS_CACHE) localStorage.removeItem(key);
        }
    }
};

const App: React.FC = () => {
"""

content = content.replace("const App: React.FC = () => {", safe_set_code)

with open("App.tsx", "w") as f:
    f.write(content)