open-index/open-npm huggingface dataset:
npm package: @geekron/hono
Description: 一个基于 Hono 和 Strapi 的 CMS SDK，提供路由管理和 Strapi 集成功能。
Latest version: 0.1.4

# @geekron/hono

一个基于 Hono 和 Strapi 的 CMS SDK，提供路由管理和 Strapi 集成功能。

## 特性

- 🚀 基于 [Hono](https://hono.dev/) 的高性能路由系统
- 📦 与 [Strapi](https://strapi.io/) 深度集成
- 🛠️ TypeScript 支持
- 🔧 灵活的路由配置
- 🌐 多语言支持
- 📝 内容类型管理
- 🎨 组件化开发

## 安装

```bash
bun install @geekron/hono
```

## 环境配置

在项目根目录创建 `.env` 文件：

```env
CMS_URL=http://localhost:1337
CMS_TOKEN=your_strapi_api_token
MEDIA_URL=http://localhost:1337  # 可选，默认使用 CMS_URL
URL_SUFFIX=.html                  # 可选，默认为 .html
```

## 使用方式

### 导入模块

项目提供两个主要模块：

```typescript
// 导入 Strapi 相关功能
import { ... } from '@geekron/hono/strapi'

// 导入路由相关功能
import { ... } from '@geekron/hono/route'
```

### Strapi 模块

Strapi 模块提供了以下功能：

- **CMS 管理**: 站点配置、内容类型、组件管理
- **国际化**: 多语言和翻译支持
- **菜单管理**: 动态菜单系统
- **媒体处理**: 图片和文件资源管理
- **工具函数**: 文件 URL、图片信息等实用工具

```typescript
import {
  // CMS 核心
  getCMS,
  getSite,
  getContentTypes,
  
  // 国际化
  getLocales,
  getTranslations,
  
  // 菜单
  getMenu,
  
  // 工具函数
  fileUrl,
  imgSrc,
  imgAlt,
  imgInfo,
} from '@geekron/hono/strapi'
```

### 路由模块

路由模块提供灵活的路由配置和管理：

```typescript
import {
  type RouteItem,
  type RouteItemHandler,
  setupRoutes,
} from '@geekron/hono/route'

// 配置路由
const routes: RouteItem[] = [
  {
    method: 'GET',
    path: '/',
    name: 'home',
    // ...
  },
  // 更多路由配置
]

setupRoutes(app, routes)
```

### 路由配置选项

路由支持以下配置：

- `method`: HTTP 方法（GET, POST 等）
- `path`: 路由路径
- `name`: 路由名称（可选，默认为路径的 kebab-case 形式）
- `suffix`: URL 后缀（可选，默认使用环境变量 `URL_SUFFIX`）
- `dataType`: 数据类型
- `sitemap`: 是否包含在站点地图中

## 开发

### 安装依赖

```bash
bun install
```

### 代码格式化

```bash
bun run format
```

### 代码检查

```bash
bun run lint
```

### 完整检查

```bash
bun run check
```

## 项目结构

```
.
├── src/
│   ├── route/              # 路由模块
│   │   ├── index.ts       # 路由导出
│   │   ├── interfaces.ts  # 路由接口定义
│   │   ├── methods.ts     # HTTP 方法定义
│   │   ├── setup.ts       # 路由设置
│   │   └── slot.ts        # 路由插槽
│   ├── strapi/            # Strapi 集成模块
│   │   ├── cms/           # CMS 核心功能
│   │   ├── interfaces/    # 接口定义
│   │   ├── utils/         # 工具函数
│   │   ├── index.ts
│   │   └── route.ts       # Strapi 路由处理
│   └── contract.ts        # 环境变量和配置
├── package.json
└── tsconfig.json
```

## 技术栈

- [Hono](https://hono.dev/) - 快速、轻量的 Web 框架
- [Strapi Client](https://www.npmjs.com/package/@strapi/client) - Strapi API 客户端
- [Voca](https://vocajs.com/) - 字符串处理库
- [TypeScript](https://www.typescriptlang.org/) - 类型安全
- [Biome](https://biomejs.dev/) - 代码格式化和检查

## 许可证

MIT

## 贡献

欢迎提交 Issue 和 Pull Request！