File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,3 +7,5 @@ This package lets you parse payload coming from http requests ( + multipart). Fu
77## parseSimpleBody and parseFormDataBody
88
99(sorry, docs are now incomplete. Look into <a href =" ./index.d.ts " >TS declaration file</a > for more)
10+
11+ (and also importing "@ublitzjs/payload /ws" gives you 2 special high-performant cross-platform functions for easier handling of websocket messages)
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ var { EventEmitter } = require("tseep");
33var { tooLargeBody } = require ( "@ublitzjs/core" ) ;
44var busboy = require ( "busboy" ) ;
55var { nanoid } = require ( "nanoid" ) ;
6- var { createWriteStream, WriteStream } = require ( "node:fs" ) ;
6+ var { createWriteStream} = require ( "node:fs" ) ;
77var { Buffer } = require ( "node:buffer" ) ;
88var { promises : fs } = require ( "node:fs" ) ;
99var wroteToDiskFileEvent = Symbol ( ) ,
Original file line number Diff line number Diff line change 1+ var encoder = new TextEncoder ( ) , decoder = new TextDecoder ( ) ;
2+ function preParseWSMessage ( rawMessage ) {
3+ var view = new Uint8Array ( rawMessage ) ;
4+ var eventLength = view [ 0 ]
5+ if ( eventLength > 100 ) throw new Error ( "event size > 100 bytes" )
6+ if ( eventLength + 2 > rawMessage . byteLength ) throw new Error ( "Malformed payload" )
7+ return {
8+ event : decoder . decode ( view . subarray ( 1 , 1 + eventLength ) ) ,
9+ message : view . subarray ( 1 + eventLength )
10+ }
11+ }
12+ function encodeWSMessage ( event , payload ) {
13+ var encodedEvent = encoder . encode ( event )
14+ if ( encodedEvent . length > 100 ) throw new Error ( "event size > 100 bytes" )
15+ var totalLength = 1 + encodedEvent . length + payload . byteLength
16+ var message = new Uint8Array ( totalLength ) ;
17+ message [ 0 ] = encodedEvent . length ;
18+ message . set ( encodedEvent , 1 ) ;
19+ message . set ( payload instanceof Uint8Array
20+ ? payload : new Uint8Array ( payload ) ,
21+ 1 + encodedEvent . length
22+ ) ;
23+ return message ;
24+ }
25+ module . exports = { preParseWSMessage, encodeWSMessage}
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ import { EventEmitter } from "tseep";
33import { tooLargeBody } from "@ublitzjs/core" ;
44import busboy from "busboy" ;
55import { nanoid } from "nanoid" ;
6- import { createWriteStream , WriteStream } from "node:fs" ;
6+ import { createWriteStream } from "node:fs" ;
77import { Buffer } from "node:buffer" ;
88import { promises as fs } from "node:fs" ;
99var wroteToDiskFileEvent = Symbol ( ) ,
Original file line number Diff line number Diff line change 1+ var encoder = new TextEncoder ( ) , decoder = new TextDecoder ( ) ;
2+ function preParseWSMessage ( rawMessage ) {
3+ var view = new Uint8Array ( rawMessage ) ;
4+ var eventLength = view [ 0 ]
5+ if ( eventLength > 100 ) throw new Error ( "event size > 100 bytes" )
6+ if ( eventLength + 2 > rawMessage . byteLength ) throw new Error ( "Malformed payload" )
7+ return {
8+ event : decoder . decode ( view . subarray ( 1 , 1 + eventLength ) ) ,
9+ message : view . subarray ( 1 + eventLength )
10+ }
11+ }
12+ function encodeWSMessage ( event , payload ) {
13+ var encodedEvent = encoder . encode ( event )
14+ if ( encodedEvent . length > 100 ) throw new Error ( "event size > 100 bytes" )
15+ var totalLength = 1 + encodedEvent . length + payload . byteLength
16+ var message = new Uint8Array ( totalLength ) ;
17+ message [ 0 ] = encodedEvent . length ;
18+ message . set ( encodedEvent , 1 ) ;
19+ message . set ( payload instanceof Uint8Array
20+ ? payload : new Uint8Array ( payload ) ,
21+ 1 + encodedEvent . length
22+ ) ;
23+ return message ;
24+ }
25+ export { preParseWSMessage , encodeWSMessage }
26+
Original file line number Diff line number Diff line change 11{
22 "name" : " @ublitzjs/payload" ,
3- "version" : " 0.0.1 " ,
3+ "version" : " 0.1.0 " ,
44 "exports" : {
5- "types" : " ./index.d.ts" ,
6- "import" : " ./index.mjs" ,
7- "require" : " ./index.cjs"
5+ "." : {
6+ "types" : " ./types/index.d.ts" ,
7+ "import" : " ./mjs/index.mjs" ,
8+ "require" : " ./cjs/index.cjs"
9+ },
10+ "./ws" : {
11+ "types" : " ./types/ws.d.ts" ,
12+ "import" : " ./mjs/ws.mjs" ,
13+ "require" : " ./cjs/ws.cjs"
14+ }
815 },
916 "dependencies" : {
1017 "nanoid" : " ^5.1.5" ,
1118 "tseep" : " ^1.3.1" ,
12- "@ublitzjs/core" : " ^0.0.1 " ,
19+ "@ublitzjs/core" : " ^0.1.0 " ,
1320 "busboy" : " ^1.6.0"
1421 },
1522 "devDependencies" : {
16- "vitest" : " ^3.1.4" ,
17- "undici" : " ^7.10.0"
23+ "@types/busboy" : " ^1.5.4" ,
24+ "@types/node" : " ^24.3.1" ,
25+ "undici" : " ^7.10.0" ,
26+ "vitest" : " ^3.1.4"
1827 },
1928 "publishConfig" : {
2029 "access" : " public"
File renamed without changes.
Original file line number Diff line number Diff line change 1+ export function preParseWSMessage ( rawMessage : ArrayBuffer ) : {
2+ event : string ;
3+ message : Uint8Array < ArrayBuffer > ;
4+ }
5+ export function encodeWSMessage ( event : string , payload : Uint8Array | ArrayBufferLike ) : Uint8Array
You can’t perform that action at this time.
0 commit comments