Basic Patterns
Here are all the basic patterns that should be used with Byte.
Route splitting
Routes in different instances can be merged using app.route.
app.route('/prefix', anotherByteInstance);You can use Byte.route() as a shorthand of new Byte().route():
const app = Byte .route('/user', userAPIs) .route('/channel', channelAPIs);Code splitting
Code splitting can be done by de-coupling parts like middlewares or request handlers.
Byte.handle is a wrapper to create functions which accepts a
request context as an argument.
These functions can be used as request handlers, validator methods or middlewares.
const fn = Byte.handle((ctx) => { // Do something with the request context});Byte.plugin is a wrapper to create plugins.
const plugin = Byte.plugin({ plug: (app) => { // Do something with the app instance }});Chaining
Chaining should be used if you need client type inference.
Chainable methods include use, register, route, and all methods for registering request handlers.
const app = new Byte() .use(csrf()) .prepare(cors()) .post('/echo', async (ctx) => ctx.body(await ctx.req.text()));Middlewares should be registered before handlers for readability.
Testing
See the testing client docs here.