Сегодня я выпустил Sunder, структуру для служебных работников, таких как Работники Cloudflare . Это позволяет вам создавать тестируемые API и веб -сайты так же, как и вы, используя node.js’s Коа или Экспресс рамки.
Я строю его, чтобы поцарапать свой собственный зуд – я писал то же самое 4 раза с нуля для проектов CloudFlare Worker, что это сделало бы большую часть этого шаблона ненужным. Сандер «экспресс» для работников CloudFlare.
Sunder разработан, чтобы быть минимальным, тестируемым и простым для понимания. Это всего лишь несколько сотен строк кода.
Небольшой пример
import {Sunder, Router} from "sunder";
const app = new Sunder();
const router = new Router();
// Example route with a named parameter
router.get("/hello/:username", ({response, params}) => {
response.body = `Hello ${params.username}`;
response.headers.set("content-type", "text/plain");
});
app.use(router.middleware);
addEventListener('fetch', (event) => {
app.handleEvent(event);
});
Это полный пример, свяжите его, используя такой инструмент, как Esbuild Через 50 мс, и он готов к использованию у работников CloudFlare.
Все промежуточное программное обеспечение
Вдохновленный Коа и Эликсирским платежом, в Сандере все это промежуточное программное обеспечение Анкет
Функция промежуточного программного обеспечения принимает два аргумента: запрос Контекст и функция, которая вызывает следующее промежуточное программное обеспечение. Пример объясняет это лучше всего:
async function responseTimeMiddleware(ctx, next) {
const start = Date.now();
await next();
const ms = Date.now() - start;
ctx.response.headers.set('X-Response-Time', `${ms}ms`);
}
Если вы использовали Коа В прошлом это должно выглядеть очень знакомо. Используя асинхро Ключевое слово мы можем ждет асинхронные задачи и избегайте обратного вызова ада.
Составив этот основной строительный блок, мы можем элегантно обработать любой запрос.
Строгие маршруты
TypeScript недавно выпустила поддержку Шаблон буквальных типов . Это позволяет нам строгим вводить параметры пути маршрута и улавливать общие ошибки.
Примечание. Вы также можете использовать Sunder без TypeScript, но вы пропустите проверку этого типа.
Так могу ли я это использовать?
Да, теперь вы можете установить Sunder ( npm i sunder ) и использовать его в своих проектах, и все это открытый исходный код.
Считайте это бета -версией. Все изменится, документы неполны, количество доступного предварительно написанного промежуточного программного обеспечения невелико, но все проекты где-то начинаются. Взносы приветствуются!
Оригинал: “https://dev.to/gzuidhof/introducing-sunder-a-framework-for-cloudflare-workers-1hdg”