Use [uws-utils](https://github.com/rtritto/uws-common) instead
npm install uws-wrapperPlugin for uWebSockets.js that wraps _App_ instance to improve DX (Developer Experience).
sh
yarn add uws-wrapper
`Changes/Features:
- Replace the parameters in the callback of the http request functions with a context object:
`diff
-app => { ... })
+app => { ... })
`
- Replace the result of res.getQuery() method with a query object (generated by fastest-qs):
`diff
const query = req.getQuery()
-console.log('Query:', query) // q=1&q2
+console.log('Query:', query) // { q: 1, q: 2 }
`
- Add req.body.json method
`ts
const jsonBody = await req.body.json()
console.log(jsonBody) // { prop1: 1, prop2: 2 }
`Register the Plugin / Usage
`ts
import { App } from 'uWebSockets.js'
import { transformCallback } from 'uws-wrapper'const port = +(process.env.PORT || 3000)
// Register the Plugin
const app = transformCallback({
// Default HTTP methods: 'get', 'post', 'options', 'del', 'patch', 'put', 'head', 'connect', 'trace', 'any'
httpMethods: new Set(['get', 'post'])
})(App())
// Usage
app
.get(pattern, async ({ req, res }) => {
console.log('Query:', req.getQuery()) // { q: 1, q: 2 }
console.log('JSON body:', await req.body.json()) // { prop1: 1, prop2: 2 }
res.end('Hello World!')
})
.listen(port, (listenSocket) => {
if (listenSocket) {
console.log(
Server running at http://localhost:${port})
} else {
console.log(Failed to listen to port ${port})
}
})
``This project is licensed under the MIT License.