tachyon-rs 0.2.15 → 0.2.17

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/index.js CHANGED
@@ -1 +1 @@
1
- import{TachyonRawServer as M}from"@tachyon-rs/server";class i{method;path;body;_headers;constructor(d){this.method=d.method,this.path=d.path,this.body=d.body,this._headers=new Map(d.headers.map((t)=>[t.name.toLowerCase(),t.value]))}header(d){return this._headers.get(d.toLowerCase())}get headers(){return this._headers}}class m{status;body;headers=[];_contentType="json";constructor(d,t){this.status=d;this.body=t}header(d,t){return this.headers.push({name:d,value:t}),this}text(){return this._contentType="text",this}json(){return{status:this.status,body:this.body,contentType:this._contentType,headers:this.headers.length>0?this.headers:void 0}}}class b{routes;plugins=[];config;constructor(d){this.routes=new Map,this.config=d??{}}use(d){return this.plugins.push(d),this}transformToResponse(d){if(typeof d==="string")return()=>new m(200,d).text();else if(typeof d==="function")return d;else{let t=JSON.stringify(d);return()=>new m(200,t)}}get(d,t){return this.routes.set("GET@"+d,this.transformToResponse(t)),this}post(d,t){return this.routes.set("POST@"+d,this.transformToResponse(t)),this}put(d,t){return this.routes.set("PUT@"+d,this.transformToResponse(t)),this}delete(d,t){return this.routes.set("DELETE@"+d,this.transformToResponse(t)),this}listen(d){new M({bindAddr:"0.0.0.0:"+d,workers:this.config.workers??4,security:this.config.security??"basic",compressionThreshold:this.config.compressionThreshold}).start((C)=>{let f=new i(C);for(let y of this.plugins){let g=y.pre?.(f);if(g)return g.json()}let _=this.routes.get(f.method+"@"+f.path),x=_?_(f):new m(404,"Not Found");for(let y of this.plugins){let g=y.pos?.(f,x);if(g)x=g}return x.json()})}}export{m as TachyonResponse,i as TachyonRequest,b as Tachyon};
1
+ import{TachyonRawServer as O}from"@tachyon-rs/server";class f{method;path;body;_headers;constructor(d){this.method=d.method,this.path=d.path,this.body=d.body,this._headers=new Map(d.headers.map((m)=>[m.name.toLowerCase(),m.value]))}header(d){return this._headers.get(d.toLowerCase())}get headers(){return this._headers}}function C(d){if(d===null||d===void 0)return{value:"null",valueType:"null"};switch(typeof d){case"string":return{value:d};case"number":return{value:String(d),valueType:"number"};case"boolean":return{value:String(d),valueType:"bool"};case"object":if(Array.isArray(d))return{valueType:"array",children:d.map((m)=>C(m))};return{valueType:"object",children:Object.entries(d).map(([m,M])=>({key:m,...C(M)}))};default:return{value:String(d)}}}class b{status;body;headers=[];_contentType="json";constructor(d,m){this.status=d;this.body=m}header(d,m){return this.headers.push({name:d,value:m}),this}text(){return this._contentType="text",this}convertToRustJson(){if(typeof this.body!=="object"||this.body===null)return;if(Array.isArray(this.body))return{array:this.body.map((d)=>C(d))};return{json:Object.entries(this.body).map(([d,m])=>({key:d,...C(m)}))}}toRaw(){let d=this.convertToRustJson();return{status:this.status,body:typeof this.body==="string"?this.body:void 0,contentType:typeof this.body==="string"?"text":this._contentType,headers:this.headers.length>0?this.headers:void 0,json:d?.json,array:d?.array}}}class L{routes;plugins=[];config;constructor(d){this.routes=new Map,this.config=d??{}}use(d){return this.plugins.push(d),this}transformToResponse(d){return typeof d==="function"?d:()=>new b(200,d)}get(d,m){return this.routes.set("GET@"+d,this.transformToResponse(m)),this}post(d,m){return this.routes.set("POST@"+d,this.transformToResponse(m)),this}put(d,m){return this.routes.set("PUT@"+d,this.transformToResponse(m)),this}delete(d,m){return this.routes.set("DELETE@"+d,this.transformToResponse(m)),this}listen(d){new O({bindAddr:"0.0.0.0:"+d,workers:this.config.workers??4,security:this.config.security??"basic",compressionThreshold:this.config.compressionThreshold}).start((M)=>{let x=new f(M);for(let y of this.plugins){let _=y.pre?.(x);if(_)return _.toRaw()}let H=this.routes.get(x.method+"@"+x.path),i=H?H(x):new b(404,"Not Found");for(let y of this.plugins){let _=y.pos?.(x,i);if(_)i=_}return i.toRaw()})}}export{b as TachyonResponse,f as TachyonRequest,L as Tachyon};
@@ -1,20 +1,29 @@
1
+ interface RustJsonField {
2
+ key?: string;
3
+ value?: string;
4
+ valueType?: string;
5
+ children?: RustJsonField[];
6
+ }
1
7
  declare class TachyonResponse {
2
8
  status: number;
3
- body: string;
9
+ body: string | Record<string, unknown> | Array<Record<string, unknown>>;
4
10
  private headers;
5
11
  private _contentType;
6
- constructor(status: number, body: string);
12
+ constructor(status: number, body: string | Record<string, unknown> | Array<Record<string, unknown>>);
7
13
  header(name: string, value: string): this;
8
14
  /** Set response content type to plain text. */
9
15
  text(): this;
10
- json(): {
16
+ private convertToRustJson;
17
+ toRaw(): {
11
18
  status: number;
12
- body: string;
19
+ body: string | undefined;
13
20
  contentType: "json" | "text";
14
21
  headers: {
15
22
  name: string;
16
23
  value: string;
17
24
  }[] | undefined;
25
+ json: RustJsonField[] | undefined;
26
+ array: RustJsonField[] | undefined;
18
27
  };
19
28
  }
20
29
  export { TachyonResponse };
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAAA,cAAM,eAAe;IAIA,MAAM,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM;IAHtD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,YAAY,CAA0B;gBAE3B,MAAM,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM;IAEtD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKlC,+CAA+C;IAC/C,IAAI;IAKJ,IAAI;;;;;kBAhBqB,MAAM;mBAAS,MAAM;;;CAwB/C;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAC3B;AA+BD,cAAM,eAAe;IAIA,MAAM,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAHjH,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,YAAY,CAA0B;gBAE3B,MAAM,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKlC,+CAA+C;IAC/C,IAAI;IAKJ,OAAO,CAAC,iBAAiB;IAiBzB,KAAK;;;;;kBAjCoB,MAAM;mBAAS,MAAM;;;;;CA6C/C;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"tachyon.d.ts","sourceRoot":"","sources":["../src/tachyon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,6GAA6G;IAC7G,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,GAAG,IAAI,CAAA;AAE3E;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,eAAe,GAAG,IAAI,CAAA;AAElG,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB,CAAA;AAED,cAAM,OAAO;IAEX,OAAO,CAAC,MAAM,CAAwD;IACtE,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,CAAC,EAAE,aAAa;IAK3B,GAAG,CAAC,MAAM,EAAE,MAAM;IAKzB,OAAO,CAAC,mBAAmB;IAYpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKzG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK1G,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKzG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK5G,MAAM,CAAC,IAAI,EAAE,MAAM;CAiC3B;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"tachyon.d.ts","sourceRoot":"","sources":["../src/tachyon.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,6GAA6G;IAC7G,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,GAAG,IAAI,CAAA;AAE3E;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,eAAe,GAAG,IAAI,CAAA;AAElG,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB,CAAA;AAED,cAAM,OAAO;IAEX,OAAO,CAAC,MAAM,CAAwD;IACtE,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,CAAC,EAAE,aAAa;IAK3B,GAAG,CAAC,MAAM,EAAE,MAAM;IAKzB,OAAO,CAAC,mBAAmB;IAIpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKzG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK1G,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKzG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,KAAK,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK5G,MAAM,CAAC,IAAI,EAAE,MAAM;CAiC3B;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
package/package.json CHANGED
@@ -17,11 +17,11 @@
17
17
  "build": "bun build src/index.ts --outdir dist --format esm --minify --external @tachyon-rs/server && tsc"
18
18
  },
19
19
  "dependencies": {
20
- "@tachyon-rs/server": "0.2.15"
20
+ "@tachyon-rs/server": "0.2.17"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/bun": "latest",
24
24
  "typescript": "^5"
25
25
  },
26
- "version": "0.2.15"
26
+ "version": "0.2.17"
27
27
  }