Sign In

h11-fs

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

h11-fs

Раздача статики и провайдеры рантайма для [`h11`](../h11): подключает `H11`-инстанс к `Bun.serve` или `node:http`, и умеет отдавать файлы с диска.

latest
npmnpm
Version
1.0.3
Version published
Maintainers
1
Created
Source

h11-fs

Раздача статики и провайдеры рантайма для h11: подключает H11-инстанс к Bun.serve или node:http, и умеет отдавать файлы с диска.

Установка / экспорты

Три точки входа:

  • h11-fs — раздача статики, runtime-независимый fsApi.
  • h11-fs/bun — провайдер и файловый API под Bun.
  • h11-fs/node — провайдер, файловый API и connect-адаптер под Node.

Раздача статики

import { serveFiles } from 'h11-fs';

h11.get('/assets/**', serveFiles({ dir: './public', prefix: '/assets/' }));

prefix обрезается от начала URL перед поиском файла в dir; путь пользователя проходит через joinUserPath из h11 (защита от ..).

Провайдеры

Bun:

import { createBunProvider } from 'h11-fs/bun';

const provider = createBunProvider({ h11 });

Bun.serve({
  port: 3000,
  fetch: (req, server) => provider(req, server),
});

Node:

import { createServer } from 'node:http';
import { createNodeProvider } from 'h11-fs/node';

const provider = createNodeProvider({ h11 });

createServer((req, res) => {
  provider({ req, res, origin: 'http://localhost:3000' });
}).listen(3000);

Мост к connect-style middleware

createConnectAdapterh11-fs/node) оборачивает произвольный connect-middleware ((req, res, next) => void) в обычный Handler для h11 — этим пользуется h11-x, чтобы прозрачно проксировать dev-сервер Vite:

import { createConnectAdapter } from 'h11-fs/node';

h11.use(
  '/_dev',
  createConnectAdapter({
    prefixToRemove: '/_dev',
    connectMiddleware: someConnectApp, // например vite.middlewares
  })
);

Регистрировать именно через h11.use(), а не h11.get(..., '/**') — middleware матчится для любого HTTP-метода, а .get()-wildcard только для GET (у connect-приложений вроде Vite dev-сервера бывают не только GET-запросы).

fsApi

getFsApi() — асинхронно определяет рантайм (Bun/node:process.versions.node/др.) и возвращает подходящую реализацию FsApi (getFileStream, writeFile, checkExist, mkdir, copyFile, rm, ...). h11-x использует эту абстракцию, чтобы работать одинаково под обоими рантаймами.

Сборка

bun run build   # три entry-point'а: h11-fs.ts, providers/bun/fsapi.ts, providers/node/fsapi.ts
bun run types

FAQs

Package last updated on 11 Aug 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts