/
dimamir
/
graphql-mesh
Обзор
Документация
Войти
/
dimamir
/
graphql-mesh
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/openapi-subscriptions/api/app.ts
40 строк
1 KB
Arda TANRIKULU
Use feTS instead of old `@whatwg-node/router` (#6121)
23 окт 2023, 18:01
Не верифицирован
23 окт 2023, 18:01
d5ce125
Код
Авторство
О чём код?
import { createRouter, Response } from 'fets'; import urljoin from 'url-join'; import { fetch as defaultFetch } from '@whatwg-node/fetch'; export function createApp(fetch = defaultFetch) { const intervals = new Set<NodeJS.Timeout>(); const app = createRouter().route({ method: 'POST', path: '/streams', async handler(req) { const { callbackUrl } = await req.json(); const subscriptionId = Date.now().toString(); const interval = setInterval(() => { const body = JSON.stringify({ timestamp: new Date().toJSON(), userData: 'RANDOM_DATA', }); const fullCallbackUrl = urljoin(callbackUrl, subscriptionId); console.info('Webhook ping -> ', fullCallbackUrl, body); fetch(fullCallbackUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body, }).catch(console.log); }, 200); intervals.add(interval); return Response.json({ subscriptionId }); }, }); return { app, dispose() { intervals.forEach(interval => clearInterval(interval)); }, }; }