feat: test saturation localstorage

on test en amont du chargement des gamutables si le localstorage n'est
pas saturé, pour ca, on essaye d'ecrire une string de 100 * "gamutable"
Si c'est Ok, on supprime cette entrée Sinon, on vidange tout le
localstorage
This commit is contained in:
Christophe 2025-02-11 18:35:46 +01:00
parent 739c0797f8
commit fe653417c0
4 changed files with 19 additions and 3 deletions

View file

@ -1,6 +1,6 @@
{ {
"gamutable.js": { "gamutable.js": {
"file": "assets/gamutable-CAcZWA31.js", "file": "assets/gamutable-Cq_WjPEr.js",
"name": "gamutable", "name": "gamutable",
"src": "gamutable.js", "src": "gamutable.js",
"isEntry": true "isEntry": true

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
<paquet <paquet
prefix="gamutable" prefix="gamutable"
categorie="outil" categorie="outil"
version="5.5.0" version="5.6.0"
etat="test" etat="test"
compatibilite="[3.3.0;4.*]" compatibilite="[3.3.0;4.*]"
logo="prive/themes/spip/images/gamutable-xx.svg" logo="prive/themes/spip/images/gamutable-xx.svg"

View file

@ -12,6 +12,22 @@ const components = {
GamuTable, GamuTable,
}; };
//
// test si le localstorage n'est pas saturé, sinon, on le vidange entierement
//
try {
const repeat = function (str, x) { return new Array(x + 1).join(str); };
const too_big = repeat("gamutable ", 100); // each JS character is 2 bytes
localStorage.setItem("test_gamutable", too_big);
localStorage.removeItem("test_gamutable")
} catch (e) {
console.log(e.code);
if (e.code === 22 || e.code === 1024) {
console.error('On fait le ménage de tout le localstorage');
localStorage.clear();
}
}
gamutable(); gamutable();
function gamutable() { function gamutable() {
let i = 1; let i = 1;