UNPKG

@silexlabs/grapesjs-storage-rate-limit

Version:

GrapesJs plugin to make sure the user does not save the website more often than desired

3 lines 1.68 kB
/*! @silexlabs/grapesjs-storage-rate-limit - 1.3.0 */ !function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define([],t):'object'==typeof exports?exports["@silexlabs/grapesjs-storage-rate-limit"]=t():e["@silexlabs/grapesjs-storage-rate-limit"]=t()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(e,'__esModule',{value:!0})}},t={};e.r(t),e.d(t,{default:()=>r});const r=function(e){const t={time:1e3,...arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}},r=e.StorageManager.getCurrentStorage(),o=e.StorageManager.getCurrentOptions();e.StorageManager.setCurrent('rate-limit');let a=!1,n=!1,i=null;window.addEventListener('beforeunload',(e=>{n&&(e.preventDefault(),e.returnValue='')}));const s=async(t,a)=>{g();try{a&&(e.trigger('storage:start',t),e.trigger('storage:start:store',t)),await r.store(t,o),a&&(e.trigger('storage:end'),e.trigger('storage:end:store',t),e.trigger('storage:store',t))}catch(t){if(!a)throw t;e.trigger('storage:error',t),e.trigger('storage:error:store',t),e.trigger('storage:end')}},g=()=>{a=!0,setTimeout((async()=>{if(n){n=!1;const e=i;i=null,await s(e,!0)}else a=!1}),t.time)};e.Storage.add('rate-limit',{async store(e){a?(n=!0,i=e):await s(e,!1)},load:async e=>r.load(o)})};return t})())); //# sourceMappingURL=index.js.map