MCPcopy
hub / github.com/KilledByAPixel/LittleJS / readSaveData

Function readSaveData

src/engineUtilities.js:196–214  ·  view source on GitHub ↗

Read save data from local storage * @param {string} saveName - unique name for the game/save * @param {Object} [defaultSaveData] - default values for save * @return {Object} * @memberof Utilities

(saveName, defaultSaveData)

Source from the content-addressed store, hash-verified

194 * @return {Object}
195 * @memberof Utilities */
196function readSaveData(saveName, defaultSaveData)
197{
198 ASSERT(isStringLike(saveName), 'loadData requires saveName string');
199
200 // tolerate localStorage being unavailable (iOS private mode, sandboxed
201 // iframes) and corrupt JSON in stored data
202 let loadedData = {};
203 try
204 {
205 const data = localStorage[saveName];
206 if (data)
207 {
208 try { loadedData = JSON.parse(data); }
209 catch { LOG('readSaveData: corrupt JSON for', saveName, '— using defaults'); }
210 }
211 }
212 catch { LOG('readSaveData: localStorage unavailable — using defaults'); }
213 return { ...defaultSaveData, ...loadedData };
214}
215
216/** Write save data to local storage
217 * @param {string} saveName - unique name for the game/save

Callers

nothing calls this directly

Calls 3

isStringLikeFunction · 0.85
ASSERTFunction · 0.70
LOGFunction · 0.70

Tested by

no test coverage detected