tsdk-server-adapters
Version:
[](https://www.npmjs.com/package/tsdk-server-adapters) [](https://packagephobia.com/result?p=tsdk-server-adapters) ); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.honoAdapterFactory = void 0;
const gen_route_factory_1 = require("./gen-route-factory");
function honoAdapterFactory({ routeBus, getReqInfo, getType, getData, }) {
return function honoAdapter(c, next) {
return __awaiter(this, void 0, void 0, function* () {
const { req } = c;
const method = req.method.toLowerCase();
const reqInfo = yield getReqInfo(req);
const type = getType(reqInfo, req);
const paths = req.path.split(`/${type}/`);
paths.shift();
const path = `/${paths.join('/')}`;
const eventName = (0, gen_route_factory_1.getRouteEventName)({
protocol: 'hono',
type,
method,
path,
});
if (routeBus._events[eventName]) {
const payload = yield getData(req);
const response = yield new Promise((resolve, reject) => {
routeBus.emit(eventName, reqInfo, c, { payload }, (result) => {
try {
resolve(result);
}
catch (e) {
reject(e);
}
});
});
return response;
}
else {
return next();
}
});
};
}
exports.honoAdapterFactory = honoAdapterFactory;