seroval-plugins
Version:
Stringify JS values
2 lines (1 loc) • 8.98 kB
JavaScript
import{createPlugin as R}from"seroval";var P=R({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return{type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}}),N=P;import{createPlugin as h}from"seroval";function p(e){return{detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var E=h({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(p(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(p(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(p(e))}}},serialize(e,r){return"new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),F=E;import{createPlugin as D}from"seroval";var I=D({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return{name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return{name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return"new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),B=I;import{createPlugin as C}from"seroval";function u(e){return{bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var L=C({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return{type:r.parse(e.type),options:r.parse(u(e))}},async async(e,r){return{type:await r.parse(e.type),options:await r.parse(u(e))}},stream(e,r){return{type:r.parse(e.type),options:r.parse(u(e))}}},serialize(e,r){return"new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),O=L;import{createPlugin as U}from"seroval";var q=U({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return{name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return"new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),d=q;import{createPlugin as y}from"seroval";function f(e){let r=[];return e.forEach((s,a)=>{r.push([a,s])}),r}var n={},H=y({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===n},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createEffectfulFunction(["e","f","i","s","t"],"f=new FormData;for(i=0,s=e.length;i<s;i++)f.append((t=e[i])[0],t[1]);return f")},deserialize(){return n}}),M=y({tag:"seroval-plugins/web/FormData",extends:[d,H],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return{factory:r.parse(n),entries:r.parse(f(e))}},async async(e,r){return{factory:await r.parse(n),entries:await r.parse(f(e))}},stream(e,r){return{factory:r.parse(n),entries:r.parse(f(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){let s=new FormData,a=r.deserialize(e.entries);for(let t=0,b=a.length;t<b;t++){let c=a[t];s.append(c[0],c[1])}return s}}),A=M;import{createPlugin as T}from"seroval";function m(e){let r=[];return e.forEach((s,a)=>{r.push([a,s])}),r}var _=T({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return r.parse(m(e))},async async(e,r){return await r.parse(m(e))},stream(e,r){return r.parse(m(e))}},serialize(e,r){return"new Headers("+r.serialize(e)+")"},deserialize(e,r){return new Headers(r.deserialize(e))}}),i=_;import{createPlugin as k}from"seroval";var j=k({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return{data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return{data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return"new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}}),Y=j;import{createPlugin as w,createStream as v}from"seroval";var o={},V=w({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===o},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createFunction(["d"],"new ReadableStream({start:"+r.createEffectfulFunction(["c"],"d.on({next:"+r.createEffectfulFunction(["v"],"c.enqueue(v)")+",throw:"+r.createEffectfulFunction(["v"],"c.error(v)")+",return:"+r.createEffectfulFunction([],"c.close()")+"})")+"})")},deserialize(){return o}});function g(e){let r=v(),s=e.getReader();async function a(){try{let t=await s.read();t.done?r.return(t.value):(r.next(t.value),await a())}catch(t){r.throw(t)}}return a().catch(()=>{}),r}var G=w({tag:"seroval/plugins/web/ReadableStream",extends:[V],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return{factory:r.parse(o),stream:r.parse(v())}},async async(e,r){return{factory:await r.parse(o),stream:await r.parse(g(e))}},stream(e,r){return{factory:r.parse(o),stream:r.parse(g(e))}}},serialize(e,r){return"("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let s=r.deserialize(e.stream);return new ReadableStream({start(a){s.on({next(t){a.enqueue(t)},throw(t){a.error(t)},return(){a.close()}})}})}}),l=G;import{createPlugin as J}from"seroval";function z(e,r){return{body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var K=J({tag:"seroval-plugins/web/Request",extends:[l,i],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return{url:await r.parse(e.url),options:await r.parse(z(e,e.body?await e.clone().arrayBuffer():null))}},stream(e,r){return{url:r.parse(e.url),options:r.parse(z(e,e.clone().body))}}},serialize(e,r){return"new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),Q=K;import{createPlugin as W}from"seroval";function S(e){return{headers:e.headers,status:e.status,statusText:e.statusText}}var X=W({tag:"seroval-plugins/web/Response",extends:[l,i],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return{body:await r.parse(e.body?await e.clone().arrayBuffer():null),options:await r.parse(S(e))}},stream(e,r){return{body:r.parse(e.clone().body),options:r.parse(S(e))}}},serialize(e,r){return"new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),Z=X;import{createPlugin as $}from"seroval";var x=$({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return r.parse(e.toString())},async async(e,r){return await r.parse(e.toString())},stream(e,r){return r.parse(e.toString())}},serialize(e,r){return"new URLSearchParams("+r.serialize(e)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e))}}),ee=x;import{createPlugin as re}from"seroval";var ae=re({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return r.parse(e.href)},async async(e,r){return await r.parse(e.href)},stream(e,r){return r.parse(e.href)}},serialize(e,r){return"new URL("+r.serialize(e)+")"},deserialize(e,r){return new URL(r.deserialize(e))}}),te=ae;export{N as BlobPlugin,F as CustomEventPlugin,B as DOMExceptionPlugin,O as EventPlugin,d as FilePlugin,A as FormDataPlugin,i as HeadersPlugin,Y as ImageDataPlugin,l as ReadableStreamPlugin,Q as RequestPlugin,Z as ResponsePlugin,te as URLPlugin,ee as URLSearchParamsPlugin};