UNPKG

@tantainnovative/ndpr-toolkit

Version:

Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023

1 lines 2.91 kB
'use strict';var chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js');function M(e){return e.response?e.response.status>=500:true}function $(e){return new Promise(s=>setTimeout(s,e))}function O(e){return e?typeof e=="function"?e():e:{}}function q(e,s={}){var w,k,g;let{headers:a,credentials:d="same-origin",loadMethod:u="GET",saveMethod:c="POST",unwrap:A,retry:p,onError:h,onSuccess:l,fetchInit:x}=s,T=(w=p==null?void 0:p.attempts)!=null?w:0,C=(k=p==null?void 0:p.baseDelayMs)!=null?k:250,E=(g=p==null?void 0:p.shouldRetry)!=null?g:M,y=h!=null?h:(t=>{if(t.method==="load")return;let o=t.method==="save"?"save to":"delete from";if(t.response){console.warn(`[ndpr-toolkit] Failed to ${o} ${t.endpoint}: ${t.response.status}`);try{let r=typeof t.response.clone=="function"?t.response.clone():null;r&&typeof r.text=="function"&&r.text().then(i=>{let n=i.length>256?`${i.slice(0,256)}\u2026`:i;n.trim()&&console.warn(`[ndpr-toolkit] ${o} ${t.endpoint} response body: ${n}`);}).catch(()=>{});}catch(r){}}else console.warn(`[ndpr-toolkit] Failed to ${o} ${t.endpoint}`);});function v(t,o,r){return chunkRFPLZDIO_js.d(this,null,function*(){for(let i=0;i<=T;i++){let n,S;try{n=yield fetch(e,chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},x),o),{headers:chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},O(a)),o.headers),credentials:d}));}catch(b){S=b;}if(n&&n.ok)return {ok:true,response:n};let R={method:t,endpoint:e,error:S,response:n,status:n==null?void 0:n.status,payload:r,attempt:i};if(i===T||!E(R))return y(R),{ok:false};yield $(C*Math.pow(2,i));}return {ok:false}})}return {load(){return chunkRFPLZDIO_js.d(this,null,function*(){let t=yield v("load",{method:u,headers:{}});if(!t.ok)return null;try{let o=yield t.response.json(),r=A?A(o):o;return l&&l({method:"load",endpoint:e,response:t.response,data:r!=null?r:void 0}),r}catch(o){return y({method:"load",endpoint:e,error:o,response:t.response,status:t.response.status,attempt:T}),null}})},save(t){return chunkRFPLZDIO_js.d(this,null,function*(){let o=yield v("save",{method:c,headers:{"Content-Type":"application/json"},body:JSON.stringify(t)},t);o.ok&&l&&l({method:"save",endpoint:e,response:o.response,payload:t});})},remove(){return chunkRFPLZDIO_js.d(this,null,function*(){let t=yield v("remove",{method:"DELETE",headers:{}});t.ok&&l&&l({method:"remove",endpoint:e,response:t.response});})}}}function F(e){let s=e!=null?e:null;return {load(){return s},save(a){s=a;},remove(){s=null;}}}function H(e,...s){return {load(){return e.load()},save(a){let d=e.save(a),u=()=>{for(let c of s)try{c.save(a);}catch(A){console.warn("[ndpr-toolkit] Secondary adapter save failed:",A);}};if(d instanceof Promise)return d.then(()=>u());u();},remove(){let a=e.remove(),d=()=>{for(let u of s)try{u.remove();}catch(c){console.warn("[ndpr-toolkit] Secondary adapter remove failed:",c);}};if(a instanceof Promise)return a.then(()=>d());d();}}}exports.a=q;exports.b=F;exports.c=H;