UNPKG

@mochabug/adaptkit

Version:

A cmd to create, emulate and publish Mochabug Adapt plugins

51 lines (49 loc) 1.5 kB
import { ConnectError, mapConnectErrorToHttpStatus, } from "@mochabug/adapt-sdk/api"; import { ExternalExecutorRouter, InternalExecutorRouter } from '@mochabug/adapt-sdk/router'; export default { external: new ExternalExecutorRouter() .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('POST', '/api/done', async (req, api, _route, ctx) => { const sapi = api.getSessionApi(req.headers.get('Authorization')!); ctx.waitUntil(sapi.send('output', {})); return new Response(); }) .add('GET', '{/*any}', async (_, api) => { const res = await api.readFile( 'browser/___VERTEX_NAME___/executor.html' ); return new Response(res.content, { headers: { 'Content-Type': 'text/html; charset=utf-8' } }); }), internal: new InternalExecutorRouter() .onStart(async (start, _api) => { console.log('Start has been called'); console.log(start); }) .onStop(async (stop, _api) => { console.log('Stop has been called'); console.log(stop); }) .onExchange(async (res, _api, name) => { console.log(`Exchange ${name} has been called`); console.log(res); }) };