@m-ld/gateway
Version:
m-ld gateway for services
43 lines • 4.18 kB
JavaScript
import { createServer, plugins, pre } from 'restify';
import LOG from 'loglevel';
import { formatter, HTML_FORMAT, JSON_LD_FORMAT } from './EndPoint.js';
import { ApiEndPoint } from './ApiEndPoint.js';
import { SubdomainEndPoint } from './SubdomainEndPoint.js';
import { SubdomainStateEndPoint } from './SubdomainStateEndPoint.js';
import { UserEndPoint } from './UserEndPoint.js';
import { DomainEndPoint } from './DomainEndPoint.js';
import { GatewayWebsite } from './GatewayWebsite.js';
export function setupGatewayHttp({ gateway, notifier, liquid }) {
const server = createServer({
formatters: {
'application/ld+json': formatter(JSON_LD_FORMAT),
'text/html': formatter(HTML_FORMAT)
}
}).pre(pre.context())
.use(plugins.queryParser({ mapParams: true }))
.use(plugins.authorizationParser())
.on('InternalServer', function (_req, _res, err, cb) {
LOG.warn(err);
cb();
});
if (LOG.getLevel() <= LOG.levels.DEBUG) {
server.pre(function (req, _res, next) {
if (LOG.getLevel() <= LOG.levels.TRACE)
LOG.trace(req.method, req.url, {
...req.headers, authorization: undefined
});
else
LOG.debug(req.method, req.url);
return next();
});
}
// Set up endpoints
new GatewayWebsite(gateway, server, notifier, liquid);
const apiEndPoint = new ApiEndPoint(gateway, server);
new UserEndPoint(apiEndPoint, notifier);
new DomainEndPoint(apiEndPoint);
const subdomainEndPoint = new SubdomainEndPoint(apiEndPoint);
new SubdomainStateEndPoint(subdomainEndPoint);
return server;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQXdCLE1BQU0sU0FBUyxDQUFDO0FBQzNFLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXJELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUkzRDtJQUNDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztRQUMxQixVQUFVLEVBQUU7WUFDVixxQkFBcUIsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQ2hELFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM3QyxHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDbEMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNqRCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsRUFBRSxFQUFFLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDbEMsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNwQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDN0IsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTO2lCQUN6QyxDQUFDLENBQUM7O2dCQUVILEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztLQUNKO0lBQ0QsbUJBQW1CO0lBQ25CLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsSUFBSSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELElBQUksc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=