@mochabug/adaptkit
Version:
A cmd to create, emulate and publish Mochabug Adapt plugins
42 lines (40 loc) • 1.2 kB
text/typescript
import {
ConnectError,
mapConnectErrorToHttpStatus
} from '@mochabug/adapt-sdk/api';
import {
ExternalConfiguratorRouter,
InternalConfiguratorRouter
} from '@mochabug/adapt-sdk/router';
export default {
external: new ExternalConfiguratorRouter()
.useRequestLogging()
.useBearerAuthorization(['/api'])
.useErrorHandling(async (e) => {
console.error(e);
if (e instanceof ConnectError) {
return new Response(null, { status: mapConnectErrorToHttpStatus(e) });
}
return new Response(null, {
status: 500,
statusText: 'Internal server error'
});
})
.add('GET', '/api/config', async (_req, api) => {
const { metadata } = await api.getConfig('metadata');
return new Response(JSON.stringify(metadata), {
headers: {
'Content-Type': 'application/json'
}
});
})
.add('GET', '{/*any}', async (_, api) => {
const res = await api.readFile(
'browser/___VERTEX_NAME___/configurator.html'
);
return new Response(res.content, {
headers: { 'Content-Type': 'text/html; charset=utf-8' }
});
}),
internal: new InternalConfiguratorRouter()
};