@sx3/ultra 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.d.mts +1 -1
- package/dist/client.d.mts +1 -1
- package/dist/client.mjs +1 -1
- package/dist/cors.d.mts +1 -1
- package/dist/cors.mjs +1 -1
- package/dist/{middleware-lLSX2mGh.d.mts → middleware-CxmfdaxU.d.mts} +1 -1
- package/dist/middleware.d.mts +1 -1
- package/dist/procedure.d.mts +1 -1
- package/dist/response-DiL4kmkY.mjs +1 -0
- package/dist/response.mjs +1 -1
- package/dist/rpc.d.mts +22 -1
- package/dist/session.d.mts +1 -1
- package/dist/ultra.d.mts +10 -10
- package/dist/ultra.mjs +1 -1
- package/package.json +1 -1
- package/dist/response-CnnOFeUL.mjs +0 -1
- package/dist/rpc-CL9QJLhe.d.mts +0 -23
package/dist/auth.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as Promisable } from "./types-DaFEaXF4.mjs";
|
|
2
2
|
import { t as BaseContext } from "./context-iXF4Voqe.mjs";
|
|
3
3
|
import "./http-AGiFONuJ.mjs";
|
|
4
|
-
import { t as Middleware } from "./middleware-
|
|
4
|
+
import { t as Middleware } from "./middleware-CxmfdaxU.mjs";
|
|
5
5
|
import { ProceduresMap, Ultra } from "./ultra.mjs";
|
|
6
6
|
import { SessionContext } from "./session.mjs";
|
|
7
7
|
|
package/dist/client.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./context-iXF4Voqe.mjs";
|
|
2
2
|
import "./http-AGiFONuJ.mjs";
|
|
3
|
-
import { i as Procedure } from "./middleware-
|
|
3
|
+
import { i as Procedure } from "./middleware-CxmfdaxU.mjs";
|
|
4
4
|
import { ProceduresMap, Ultra } from "./ultra.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/client.d.ts
|
package/dist/client.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(t,n=[]){return new Proxy(()=>{},{get(r,i){if(typeof i==`string`)return e(t,[...n,i])},apply(e,r,i){if(!n.length)throw Error(`Cannot call client root; select a procedure first`);let a=n.join(`/`),o=i[0],s=i[1];return t(a,o,s)}})}function t(...e){let t=new Headers;for(let n of e)n&&new Headers(n).forEach((e,n)=>t.set(n,e));return t}function n(n){return e(async(e,r,i)=>{let a={...n,...i},o=a?.timeout||1e4,s=new AbortController,c=a?.method||`POST`,l=`${a.baseUrl}/${e}`,u=t(n?.headers,a?.headers,i?.headers),d=null,f=setTimeout(()=>s.abort(`Timeout: ${o}`),o);switch(!0){case c===`GET`:{if(d=null,!r)break;if(typeof r!=`object`)throw Error(`GET requests params to be an object for query string generation`);let e=Object.entries(r).filter(([,e])=>e!=null).map(([e,t])=>[e,String(t)]),t=new URLSearchParams(e).toString();t&&(l+=`?${t}`);break}case r instanceof FormData:d=r;break;case typeof r==`string`:u.set(`Content-Type`,`text/plain`),d=r;break;default:u.set(`Content-Type`,`application/json`),d=JSON.stringify(r)}try{let e=await fetch(l,{method:c,...d&&{body:d},...a,signal:s.signal,headers:u});if(!e.ok)throw Error(
|
|
1
|
+
function e(t,n=[]){return new Proxy(()=>{},{get(r,i){if(typeof i==`string`)return e(t,[...n,i])},apply(e,r,i){if(!n.length)throw Error(`Cannot call client root; select a procedure first`);let a=n.join(`/`),o=i[0],s=i[1];return t(a,o,s)}})}function t(...e){let t=new Headers;for(let n of e)n&&new Headers(n).forEach((e,n)=>t.set(n,e));return t}function n(n){return e(async(e,r,i)=>{let a={...n,...i},o=a?.timeout||1e4,s=new AbortController,c=a?.method||`POST`,l=`${a.baseUrl}/${e}`,u=t(n?.headers,a?.headers,i?.headers),d=null,f=setTimeout(()=>s.abort(`Timeout: ${o}`),o);switch(!0){case c===`GET`:{if(d=null,!r)break;if(typeof r!=`object`)throw Error(`GET requests params to be an object for query string generation`);let e=Object.entries(r).filter(([,e])=>e!=null).map(([e,t])=>[e,String(t)]),t=new URLSearchParams(e).toString();t&&(l+=`?${t}`);break}case r instanceof FormData:d=r;break;case typeof r==`string`:u.set(`Content-Type`,`text/plain`),d=r;break;default:u.set(`Content-Type`,`application/json`),d=JSON.stringify(r)}try{let e=await fetch(l,{method:c,...d&&{body:d},...a,signal:s.signal,headers:u});if(!e.ok)throw Error(`${e.statusText} ${e.status}`);let t=e.headers.get(`Content-Type`)||``;switch(!0){case e.status===204:return null;case t.startsWith(`application/json`):return await e.json();case t.startsWith(`text/`):return await e.text();default:return await e.blob()}}catch(e){throw e.name===`AbortError`?Error(`Request aborted: ${e.message}`):e}finally{clearTimeout(f)}})}function r(t){let{timeout:n=1e4}=t,r=()=>Math.random().toString(36);return e((e,i,a)=>{let o=t.socket();if(!o||o.readyState!==WebSocket.OPEN)return Promise.reject(Error(`WebSocket is not open`));let{promise:s,resolve:c,reject:l}=Promise.withResolvers(),u=a?.timeout??n,d,f=r(),p=e=>{try{let t=JSON.parse(e.data);return t.id===f?(clearTimeout(d),o.removeEventListener(`message`,p),`error`in t?l(t.error):c(t.result)):void 0}catch(e){l(e)}};return o.addEventListener(`message`,p),d=setTimeout(()=>{o.removeEventListener(`message`,p),l(`Timeout: ${u}`)},u),o.send(JSON.stringify({id:f,method:e,params:i})),s})}function i(t){return e((e,n,r)=>{let i=t.pick(e,n,r),a=e.split(`/`).filter(Boolean),o=i;for(let e of a)o[e]&&(o=o[e]);return o(n,r)})}export{n as createHTTPClient,i as createSuperClient,r as createWebSocketClient};
|
package/dist/cors.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as BaseContext } from "./context-iXF4Voqe.mjs";
|
|
2
2
|
import "./http-AGiFONuJ.mjs";
|
|
3
|
-
import { t as Middleware } from "./middleware-
|
|
3
|
+
import { t as Middleware } from "./middleware-CxmfdaxU.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/cors.d.ts
|
|
6
6
|
interface CorsConfig {
|
package/dist/cors.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./response-
|
|
1
|
+
import{t as e}from"./response-DiL4kmkY.mjs";const t={"Access-Control-Allow-Methods":[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`].join(`, `),"Access-Control-Allow-Headers":[`Accept-Language`,`Accept`,`Content-Type`,`Content-Language`,`Range`].join(`, `),"Access-Control-Expose-Headers":[`Cache-Control`,`Content-Language`,`Content-Type`,`Expires`,`Last-Modified`,`Pragma`].join(`, `),"Access-Control-Max-Age":`3600`};function n(n){let r={...t,...n.methods?.length&&{"Access-Control-Allow-Methods":n.methods.join(`, `)},...n.allowedHeaders?.length&&{"Access-Control-Allow-Headers":n.allowedHeaders.join(`, `)},...n.exposedHeaders?.length&&{"Access-Control-Expose-Headers":n.exposedHeaders.join(`, `)},...n.credentials&&!n.origin.includes(`*`)&&{"Access-Control-Allow-Credentials":`true`},...n.maxAge&&{"Access-Control-Max-Age":n.maxAge.toString()}};return async t=>{if(!(`request`in t.context))return t.next();let i=t.context.request.headers.get(`Origin`);if(!i||!n.origin.includes(i))return t.next();if(t.context.request.method===`OPTIONS`)return new Response(null,{status:204,headers:{"Access-Control-Allow-Origin":i,...r}});let a;try{a=e(await t.next())}catch(t){a=e(t)}for(let e in a.headers.set(`Access-Control-Allow-Origin`,i),r)a.headers.set(e,r[e]);return a}}export{n as createCORSMiddleware};
|
|
@@ -48,6 +48,6 @@ declare class Procedure<I = unknown, O = unknown, C = unknown> {
|
|
|
48
48
|
interface MiddlewareOptions<I, O, C> extends ProcedureOptions<I, C> {
|
|
49
49
|
next: () => ReturnType<ProcedureHandler<I, O, C>>;
|
|
50
50
|
}
|
|
51
|
-
type Middleware<I, O, C> = (options: MiddlewareOptions<I, O, C>) =>
|
|
51
|
+
type Middleware<I, O, C> = (options: MiddlewareOptions<I, O, C>) => ReturnType<ProcedureHandler<I, O, C>>;
|
|
52
52
|
//#endregion
|
|
53
53
|
export { ProcedureHandler as a, Procedure as i, MiddlewareOptions as n, ProcedureOptions as o, HTTPOptions as r, Middleware as t };
|
package/dist/middleware.d.mts
CHANGED
package/dist/procedure.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import "./http-AGiFONuJ.mjs";
|
|
2
|
-
import { a as ProcedureHandler, i as Procedure, o as ProcedureOptions, r as HTTPOptions } from "./middleware-
|
|
2
|
+
import { a as ProcedureHandler, i as Procedure, o as ProcedureOptions, r as HTTPOptions } from "./middleware-CxmfdaxU.mjs";
|
|
3
3
|
export { HTTPOptions, Procedure, ProcedureHandler, ProcedureOptions };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./error-Dq1biCC8.mjs";function t(t){switch(!0){case t instanceof Response:return t;case t instanceof e:return t.toResponse();case t instanceof Error:return new Response(t.message,{status:500});case typeof t==`object`:return Response.json(t);case!t:return new Response(null,{status:204});default:return new Response(String(t))}}function n(t,n){let r;switch(!0){case n instanceof e:r={id:t,error:{code:n.status,message:n.message}};break;case n instanceof Error:r={id:t,error:{code:500,message:n.message}};break;case n instanceof Response:r={id:t,error:{code:n.status,message:n.statusText}};break;case typeof n==`object`||typeof n==`number`||typeof n==`boolean`:r={id:t,result:n};break;default:r={id:t,result:String(n)}}return JSON.stringify(r)}export{n,t};
|
package/dist/response.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./response-
|
|
1
|
+
import{n as e,t}from"./response-DiL4kmkY.mjs";export{t as toHTTPResponse,e as toRPCResponse};
|
package/dist/rpc.d.mts
CHANGED
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as JSONValue } from "./types-DaFEaXF4.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/rpc.d.ts
|
|
4
|
+
interface ErrorResult {
|
|
5
|
+
id: string;
|
|
6
|
+
error: {
|
|
7
|
+
code: number;
|
|
8
|
+
message: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
interface SuccessResult {
|
|
12
|
+
id: string;
|
|
13
|
+
result: JSONValue;
|
|
14
|
+
}
|
|
15
|
+
type Result = ErrorResult | SuccessResult;
|
|
16
|
+
interface Payload {
|
|
17
|
+
id: string;
|
|
18
|
+
method: string;
|
|
19
|
+
params?: JSONValue;
|
|
20
|
+
}
|
|
21
|
+
declare function isRPC(value: any): value is Payload;
|
|
22
|
+
//#endregion
|
|
2
23
|
export { ErrorResult, Payload, Result, SuccessResult, isRPC };
|
package/dist/session.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as JSONValue, o as Promisable, r as JSONObject, t as DeepReadonly } from "./types-DaFEaXF4.mjs";
|
|
2
2
|
import { d as WSContext, l as HTTPContext, t as BaseContext } from "./context-iXF4Voqe.mjs";
|
|
3
3
|
import "./http-AGiFONuJ.mjs";
|
|
4
|
-
import "./middleware-
|
|
4
|
+
import "./middleware-CxmfdaxU.mjs";
|
|
5
5
|
import { ProceduresMap, Ultra } from "./ultra.mjs";
|
|
6
6
|
import { BunRequest, CookieSameSite, RedisClient } from "bun";
|
|
7
7
|
|
package/dist/ultra.d.mts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { a as DeriveUpgradeValue, c as ExtractDeriveUpgradeData, o as DeriveValue, s as ExtractDerive, t as BaseContext, u as RebindSocketData } from "./context-iXF4Voqe.mjs";
|
|
2
2
|
import { n as BunRoutes } from "./http-AGiFONuJ.mjs";
|
|
3
3
|
import { c as StandardSchemaV1 } from "./validation-CkRfxQJ_.mjs";
|
|
4
|
-
import { a as ProcedureHandler, i as Procedure, t as Middleware } from "./middleware-
|
|
5
|
-
import { n as Payload } from "./rpc-CL9QJLhe.mjs";
|
|
4
|
+
import { a as ProcedureHandler, i as Procedure, t as Middleware } from "./middleware-CxmfdaxU.mjs";
|
|
6
5
|
import { BunRequest, ErrorLike, Server, ServerWebSocket } from "bun";
|
|
7
6
|
|
|
8
7
|
//#region src/ultra.d.ts
|
|
@@ -30,7 +29,6 @@ interface UltraOptions {
|
|
|
30
29
|
}
|
|
31
30
|
declare class Ultra<Procedures extends ProceduresMap = ProceduresMap, SocketData = unknown, Context extends BaseContext<SocketData> = BaseContext<SocketData>> {
|
|
32
31
|
protected readonly initializers: Map<ProcedureMapInitializer<any, Context>, Set<Middleware<any, any, Context>>>;
|
|
33
|
-
protected readonly handlers: Map<string, ProcedureHandler<any, any, Context>>;
|
|
34
32
|
protected readonly events: Map<keyof ServerEventMap<SocketData>, Set<ServerEventListener<SocketData, any>>>;
|
|
35
33
|
protected readonly middlewares: Set<Middleware<any, any, Context>>;
|
|
36
34
|
protected readonly derived: Set<DeriveValue<Context>>;
|
|
@@ -43,15 +41,17 @@ declare class Ultra<Procedures extends ProceduresMap = ProceduresMap, SocketData
|
|
|
43
41
|
routes<const P extends ProceduresMap>(initializer: ProcedureMapInitializer<P, Context>, middlewares?: Middleware<any, any, Context>[]): Ultra<Procedures & P, SocketData, Context>;
|
|
44
42
|
/** Register middleware or another Ultra instance */
|
|
45
43
|
use<const PluginProcedures extends ProceduresMap, const PluginSocketData, const PluginContext extends BaseContext<PluginSocketData>>(entity: Middleware<any, any, Context> | Ultra<PluginProcedures, PluginSocketData, PluginContext>): Ultra<Procedures & PluginProcedures, SocketData & PluginSocketData, RebindSocketData<Context, SocketData & PluginSocketData> & RebindSocketData<PluginContext, SocketData & PluginSocketData>>;
|
|
46
|
-
/** Extends
|
|
44
|
+
/** Extends context values for every request with provided values */
|
|
47
45
|
derive<const D extends DeriveValue<Context>>(derive: D): Ultra<Procedures, SocketData, Context & ExtractDerive<Context, D>>;
|
|
46
|
+
/** Extends socket data and return headers */
|
|
48
47
|
deriveUpgrade<const D extends DeriveUpgradeValue<Context>>(derive: D): Ultra<Procedures, SocketData & ExtractDeriveUpgradeData<Context, D>, RebindSocketData<Context, SocketData & ExtractDeriveUpgradeData<Context, D>>>;
|
|
48
|
+
/** Build procedures and start servers */
|
|
49
49
|
start(options?: StartOptions<SocketData>): Server<SocketData>;
|
|
50
|
+
/** Stop server */
|
|
50
51
|
stop(closeActiveConnections?: boolean): Promise<void>;
|
|
51
52
|
on<E extends keyof ServerEventMap<SocketData>>(event: E, listener: ServerEventListener<SocketData, E>): this;
|
|
52
53
|
off<E extends keyof ServerEventMap<SocketData>>(event: E, listener: ServerEventListener<SocketData, E>): this;
|
|
53
54
|
emit<E extends keyof ServerEventMap<SocketData>>(event: E, ...args: ServerEventMap<SocketData>[E]): this;
|
|
54
|
-
protected handleRPC(ws: ServerWebSocket<SocketData>, payload: Payload): Promise<void>;
|
|
55
55
|
/** Enrich context with derived values */
|
|
56
56
|
protected enrichContext(context: BaseContext<SocketData>): Promise<Context>;
|
|
57
57
|
/** Enrich upgrade options with derived values */
|
|
@@ -62,11 +62,11 @@ declare class Ultra<Procedures extends ProceduresMap = ProceduresMap, SocketData
|
|
|
62
62
|
/** Merge other Ultra instance with deduplication */
|
|
63
63
|
protected merge(module: Ultra<any, any, any>): void;
|
|
64
64
|
/** Wrap procedure handler with global middlewares */
|
|
65
|
-
protected wrapHandler(handler: ProcedureHandler<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
protected wrapHandler<I, O>(handler: ProcedureHandler<I, O, Context>, middlewares: Set<Middleware<I, O, Context>>): ProcedureHandler<I, any, Context>;
|
|
66
|
+
protected build(): {
|
|
67
|
+
handlers: Map<string, ProcedureHandler<any, any, Context>>;
|
|
68
|
+
routes: BunRoutes;
|
|
69
|
+
};
|
|
70
70
|
}
|
|
71
71
|
//#endregion
|
|
72
72
|
export { InputFactory, ProcedureMapInitializer, ProceduresMap, Ultra, UltraOptions };
|
package/dist/ultra.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./procedure-DMThMtgF.mjs";import{n as t,t as n}from"./response-
|
|
1
|
+
import{t as e}from"./procedure-DMThMtgF.mjs";import{n as t,t as n}from"./response-DiL4kmkY.mjs";import{t as r}from"./rpc-CAwkzxZe.mjs";import{serve as i}from"bun";var a=class{initializers=new Map;events=new Map;middlewares=new Set;derived=new Set;derivedUpgrade=new Set;options={http:{enableByDefault:!1}};httpEnabled=!1;server;constructor(e){e&&(this.options={...this.options,...e}),this.httpEnabled=this.options.http?.enableByDefault??!1}routes(e,t){let n=this.initializers.get(e);return n?t?.forEach(e=>n.add(e)):this.initializers.set(e,new Set(t)),this}use(e){return typeof e==`function`?(this.middlewares.add(e),this):(this.merge(e),this)}derive(e){return this.derived.add(e),this}deriveUpgrade(e){return this.derivedUpgrade.add(e),this}start(e){if(this.server)return console.warn(`Server is already running`),this.server;let{routes:n,handlers:a}=this.build(),o=this.wrapHandler(()=>new Response(`Not Found`,{status:404}),this.middlewares);return this.server=i({...this.httpEnabled&&{routes:{...n,"/ws":async(e,t)=>{if(this.emit(`http:request`,e,t),!this.derivedUpgrade.size)return t.upgrade(e)?void 0:new Response(`WebSocket upgrade failed`,{status:500});let n=this.derived.size?await this.enrichContext({server:t,request:e}):{server:t,request:e};if(!t.upgrade(e,await this.enrichUpgrade(n)))return new Response(`WebSocket upgrade failed`,{status:500})},"/*":async(e,t)=>(this.emit(`http:request`,e,t),o({input:null,context:this.derived.size?await this.enrichContext({server:t,request:e}):{server:t,request:e}}))}},websocket:{data:{},open:e=>{this.emit(`ws:open`,e)},close:(e,t,n)=>{this.emit(`ws:close`,e,t,n)},message:async(e,n)=>{if(this.emit(`ws:message`,e,n),typeof n!=`string`)return;let i=JSON.parse(n);if(!r(i))return;let o=a.get(i.method);if(!o){e.send(`{"id": "${i.id}", "error": {"code": 404, "message": "Not found"}}`);return}try{e.send(t(i.id,await o({input:i.params,context:this.derived.size?await this.enrichContext({server:this.server,ws:e}):{server:this.server,ws:e}})))}catch(n){this.emit(`error`,n),e.send(t(i.id,n))}}},error:e=>(this.emit(`unhandled:error`,e),console.error(`Unhandled server error:`,e),new Response(`Internal server error`,{status:500})),...e}),this.emit(`server:started`,this.server),this.server}async stop(e=!1){if(!this.server)return console.error(`Server is not running`);await this.server.stop(e),this.emit(`server:stopped`,this.server,e)}on(e,t){return this.events.has(e)||this.events.set(e,new Set),this.events.get(e).add(t),this}off(e,t){return this.events.get(e)?.delete(t),this}emit(e,...t){return this.events.get(e)?.forEach(e=>e(...t)),this}async enrichContext(e){for(let t of this.derived)Object.assign(e,typeof t==`function`?await t(e):t);return e}async enrichUpgrade(e){let t={data:{},headers:new Headers};for(let n of this.derivedUpgrade){let r=typeof n==`function`?await n(e):n;if(`data`in r&&Object.assign(t.data,r.data),`headers`in r)for(let[e,n]of Object.entries(r.headers))t.headers.set(e,n)}return t}merge(e){for(let[t,n]of e.initializers){let e=this.initializers.get(t);e?n.forEach(t=>e.add(t)):this.initializers.set(t,new Set(n))}e.derived.forEach(e=>this.derived.add(e)),e.derivedUpgrade.forEach(e=>this.derivedUpgrade.add(e)),e.middlewares.forEach(e=>this.middlewares.add(e)),e.events.forEach((e,t)=>{this.events.has(t)||this.events.set(t,new Set);let n=this.events.get(t);e.forEach(e=>n.add(e))})}wrapHandler(e,t){if(!t.size)return e;let n=Array.from(t),r=n.length;return async t=>{let i=0,a=()=>i===r?e(t):n[i++]({...t,next:a});return a()}}build(){let t=new Map,r={},i=t=>{let n=new e;return t&&n.input(t),this.options.http?.enableByDefault&&n.http(),n};for(let[a,o]of this.initializers){let s=a(i),c=[];for(let e in s)c.push({path:e,value:s[e]});for(;c.length;){let{path:i,value:a}=c.pop();if(a instanceof e){if(t.has(i))throw Error(`Procedure "${i}" already exists`);let e=a.metadata();!this.httpEnabled&&e.http?.enabled&&(this.httpEnabled=!0);let s=new Set([...this.middlewares,...o,...e.middlewares]),c=this.wrapHandler(a.compile(),s);if(t.set(i,c),!e.http?.enabled)continue;let l=`/${i}`,u=async(e,t)=>{this.emit(`http:request`,e,t);let r=e.body;if(r){if(e.method===`GET`){let t=e.url.indexOf(`?`);t!==-1&&t<e.url.length-1&&(r=Object.fromEntries(new URLSearchParams(e.url.slice(t+1)).entries()))}else if(e.headers.get(`Content-Length`)!==`0`){let t=e.headers.get(`Content-Type`);if(t)switch(!0){case t.startsWith(`application/json`):r=await e.json();break;case t.startsWith(`text`):r=await e.text();break;case t.startsWith(`multipart/form-data`):r=await e.formData();break;default:console.error(`Unsupported Content-Type for procedure ${i}: ${t}`);break}}}try{return n(await c({input:r,context:this.derived.size?await this.enrichContext({server:t,request:e}):{server:t,request:e}}))}catch(e){return this.emit(`error`,e),n(e)}};if(!e.http.method){r[l]=u;continue}r[l]||(r[l]={}),r[l][e.http.method]=u;continue}for(let[e,t]of Object.entries(a)){let n=i?`${i}/${e}`:e;c.push({path:n,value:t})}}}return{handlers:t,routes:r}}};export{a as Ultra};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./error-Dq1biCC8.mjs";function t(t){switch(!0){case t instanceof Response:return t;case t instanceof e:return t.toResponse();case t instanceof Error:return new Response(`Internal Server Error`,{status:500});case typeof t==`object`:return Response.json(t);case!t:return new Response(null,{status:204});default:return new Response(String(t))}}function n(t,n){let r;switch(!0){case n instanceof e:r={id:t,error:{code:n.status,message:n.message}};break;case n instanceof Error:r={id:t,error:{code:500,message:n.message}};break;case n instanceof Response:r={id:t,error:{code:n.status,message:n.statusText}};break;case typeof n==`object`||typeof n==`number`||typeof n==`boolean`:r={id:t,result:n};break;default:r={id:t,result:String(n)}}return JSON.stringify(r)}export{n,t};
|
package/dist/rpc-CL9QJLhe.d.mts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { a as JSONValue } from "./types-DaFEaXF4.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/rpc.d.ts
|
|
4
|
-
interface ErrorResult {
|
|
5
|
-
id: string;
|
|
6
|
-
error: {
|
|
7
|
-
code: number;
|
|
8
|
-
message: string;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
interface SuccessResult {
|
|
12
|
-
id: string;
|
|
13
|
-
result: JSONValue;
|
|
14
|
-
}
|
|
15
|
-
type Result = ErrorResult | SuccessResult;
|
|
16
|
-
interface Payload {
|
|
17
|
-
id: string;
|
|
18
|
-
method: string;
|
|
19
|
-
params?: JSONValue;
|
|
20
|
-
}
|
|
21
|
-
declare function isRPC(value: any): value is Payload;
|
|
22
|
-
//#endregion
|
|
23
|
-
export { isRPC as a, SuccessResult as i, Payload as n, Result as r, ErrorResult as t };
|