bridgets
Version:
<p align="center"> <a href="https://bridgets.co"> <img src="http://bridgets.co/assets/logo-short.svg" height="48" /> <h1 align="center">BridgeTS</h1> </a> </p>
58 lines • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHttpHandler = void 0;
const fetchSDK_1 = require("./fetchSDK");
const HttpTransformers_1 = require("./HttpTransformers");
const Routes_1 = require("../Routes");
const Compiler_1 = require("../Compiler");
const createHttpHandler = (routes, onError) => {
let path;
let queryString;
const serverRoutes = (0, Routes_1.createRoutes)(routes);
// After compiling, it quits
if (process.argv.includes('-compileBridgeSDK'))
(0, Compiler_1.compile)(routes);
return async (req, res) => {
let body = {};
let file = {};
const query = (0, HttpTransformers_1.getJSONQueryFromURL)(req.url || '');
try {
[path, queryString] = (req.url || '/').split('?');
if (path === '/fetchBridgeSDK')
return (0, fetchSDK_1.fetchSdkRoute)(req, res);
const route = serverRoutes[path] || serverRoutes['not-found'];
if (route.filesConfig)
file = await (0, HttpTransformers_1.formidableAsyncParseFiles)(req);
else
body = await (0, HttpTransformers_1.getJSONDataFromRequestStream)(req);
const mid = {};
const result = await route.endpoint.handle({
body,
file,
query,
headers: req.headers,
method: req.method || 'POST',
mid,
});
if (result.error) {
onError?.({ error: result.error, path: path });
return res
.writeHead(result.error.status || 500, { 'Content-Type': 'application/json' })
.end(JSON.stringify({ error: result.error }));
}
return res
.writeHead(200, {
'Content-Type': typeof result === 'object' ? 'application/json' : 'text/plain',
})
.end(typeof result === 'object' ? JSON.stringify(result) : result);
}
catch (err) {
onError?.({ error: { status: 500, name: 'Internal server error', data: err }, path: path });
return res
.writeHead(500, { 'Content-Type': 'application/json' })
.end(JSON.stringify({ status: 500, name: 'Internal server error' }));
}
};
};
exports.createHttpHandler = createHttpHandler;
//# sourceMappingURL=standalone.js.map