starty
Version:
a lightweight framework which helps building modular and configurable Node.js applications
102 lines (86 loc) • 1.72 kB
JavaScript
/**
*
* @param {string} id
* @param {IncomingMessage|object} req
* @param {ServerResponse|object} res
* @param data
* @returns {{request, payload, response, msgId}}
* @constructor
*/
function Message(id, req, res, data){
const msgId = id;
const request = req;
const response = res;
let payload = data;
return {
msgId,
request,
response,
payload
}
}
function messageBuilder(){
let req;
/**
*
* @param {IncomingMessage|{headers: IncomingHttpHeaders, query: ParsedUrlQuery}} rq
* @returns this
*/
function request(rq){
req = rq;
return this;
}
let res;
/**
*
* @param {ServerResponse} rs
* @returns this
*/
function response(rs){
res = rs;
return this;
}
let requestId;
/**
*
* @param rqId
* @returns this
*/
function msgId(rqId){
requestId = rqId;
return this;
}
let data;
/**
*
* @param payload
* @returns this
*/
function payload(payload){
data = payload;
return this;
}
/**
*
* @returns {{request, payload, response, msgId}}
*/
function build(){
return new Message(
requestId,
req,
res ?? {},
data
);
}
return {
msgId,
request,
response,
payload,
build
}
}
module.exports = {
messageBuilder
}