You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@scalar/hono-api-reference

Package Overview
Dependencies
Maintainers
10
Versions
349
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@scalar/hono-api-reference - npm Package Compare versions

Comparing version

to
0.9.5

6

package.json

@@ -13,3 +13,3 @@ {

},
"version": "0.9.4",
"version": "0.9.5",
"engines": {

@@ -41,4 +41,4 @@ "node": ">=20"

"vitest": "^1.6.0",
"@scalar/openapi-to-markdown": "0.2.10",
"@scalar/build-tooling": "0.2.3"
"@scalar/build-tooling": "0.2.3",
"@scalar/openapi-to-markdown": "0.2.13"
},

@@ -45,0 +45,0 @@ "peerDependencies": {

@@ -12,129 +12,6 @@ # Scalar for Hono

## Installation
## Documentation
```bash
npm install @scalar/hono-api-reference
```
[Read the documentation here](https://guides.scalar.com/scalar/scalar-api-references/integrations/hono)
## Usage
Set up [Zod OpenAPI Hono](https://github.com/honojs/middleware/tree/main/packages/zod-openapi) or [Hono OpenAPI](https://github.com/rhinobase/hono-openapi) and pass the configured URL to the `Scalar` middleware:
```ts
import { Hono } from 'hono'
import { Scalar } from '@scalar/hono-api-reference'
const app = new Hono()
// Use the middleware to serve the Scalar API Reference at /scalar
app.get('/scalar', Scalar({ url: '/doc' }))
// Or with dynamic configuration
app.get('/scalar', Scalar((c) => {
return {
url: '/doc',
proxyUrl: c.env.ENVIRONMENT === 'development' ? 'https://proxy.scalar.com' : undefined,
}
}))
export default app
```
The Hono middleware takes our universal configuration object, [read more about configuration](https://github.com/scalar/scalar/blob/main/documentation/configuration.md) in the core package README.
### Themes
The middleware comes with a custom theme for Hono. You can use one of [the other predefined themes](https://github.com/scalar/scalar/blob/main/packages/themes/src/index.ts#L15) (`alternate`, `default`, `moon`, `purple`, `solarized`) or overwrite it with `none`. All themes come with a light and dark color scheme.
```ts
import { Scalar } from '@scalar/hono-api-reference'
// Switch the theme (or pass other options)
app.get('/scalar', Scalar({
url: '/doc',
theme: 'purple',
}))
```
### Custom page title
There’s one additional option to set the page title:
```ts
import { Scalar } from '@scalar/hono-api-reference'
// Set a page title
app.get('/scalar', Scalar({
url: '/doc',
pageTitle: 'Awesome API',
}))
```
### Custom CDN
You can use a custom CDN, default is `https://cdn.jsdelivr.net/npm/@scalar/api-reference`.
You can also pin the CDN to a specific version by specifying it in the CDN string like `https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.25.28`
You can find all available CDN versions [here](https://www.jsdelivr.com/package/npm/@scalar/api-reference?tab=files)
```ts
import { Scalar } from '@scalar/hono-api-reference'
app.get('/scalar', Scalar({ url: '/doc', pageTitle: 'Awesome API' }))
app.get('/scalar', Scalar({
url: '/doc',
cdn: 'https://cdn.jsdelivr.net/npm/@scalar/api-reference@latest',
}))
```
### Markdown for LLMs
If you want to create a Markdown version of the API reference (for LLMs), install `@scalar/openapi-to-markdown`:
```bash
npm install @scalar/openapi-to-markdown
```
And add an additional route for it:
```ts
import { Hono } from 'hono'
import { createMarkdownFromOpenApi } from '@scalar/openapi-to-markdown'
const app = new Hono()
// Generate Markdown from your OpenAPI document
const markdown = await createMarkdownFromOpenApi(content)
/**
* Register a route to serve the Markdown for LLMs
*
* Q: Why /llms.txt?
* A: It's a proposal to standardise on using an /llms.txt file.
*
* @see https://llmstxt.org/
*/
app.get('/llms.txt', (c) => c.text(markdown))
export default app
```
Or, if you are using Zod OpenAPI Hono:
```ts
// Get the OpenAPI document
const content = app.getOpenAPI31Document({
openapi: '3.1.0',
info: { title: 'Example', version: 'v1' },
})
const markdown = await createMarkdownFromOpenApi(JSON.stringify(content))
app.get('/llms.txt', async (c) => {
return c.text(markdown)
})
```
## Community

@@ -141,0 +18,0 @@