JSPM

@tinyhttp/app

0.1.23
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 176435
  • Score
    100M100P100Q163126F
  • License MIT

tinyhttp core

Package Exports

  • @tinyhttp/app

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@tinyhttp/app) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Twitter npm type definitions Vulnerabilities Last commit NPM

@tinyhttp/core

tinyhttp core module with App, Request and Response classes.

⚠ The project is incomplete. Please don't use in production.

tinyhttp is a modern Express-like web framework for Node.js. It uses a bare minimum amount of dependencies trying to avoid legacy.

Installation

Node.js 13 is required.

# npm
npm i @tinyhttp/app
# pnpm
pnpm i @tinyhttp/app
# yarn
yarn add @tinyhttp/app

Features

  • Compatible with Express
  • Async routes [not tested yet]
  • Smaller size
  • 0 legacy dependencies

Docs

Coming soon...

Example

At the moment there is only one basic example. I will add more of them once I add all the existing Express req / res extensions.

import { App } from '@tinyhttp/app'
import staticFolder from '@tinyhttp/static'
import logger from '@tinyhttp/logger'

const app = new App()

app.all('/', (req, res) => {
  res.status(200).send(`
    <h1>tinyhttp example</h1>
    <ul>
      <li>Protocol: ${req.protocol}</li>
      <li>HTTPS: ${req.secure ? 'yes' : 'no'}</li>
      <li>URL: ${req.url}</li>
      <li>Method: ${req.method}</li>
      <li>Host: ${req.hostname}</li>
      <li>Status: ${res.statusCode}</li>
    </ul>
    <h2>Request headers</h2>
<pre>
${JSON.stringify(req.headers, null, 2)}
</pre>
`)
})

app.get('/:first/:second', (req, res) => {
  res.json({ URLParams: req.params, QueryParams: req.query })
})

app.use(staticFolder())

app.use(logger())

app.listen(3000)