cx-component-library
v1.0.0
Published
畅学通用组件和API库
Maintainers
Readme
@your-org/shared-lib
跨团队、跨技术栈复用的通用组件和 API 库。
特性
- 🚀 支持 ESM 和 CommonJS 双模块格式
- 📦 TypeScript 类型支持
- 🎨 框架无关的核心逻辑
- ⚛️ React 组件支持
- 💚 Vue 2/3 组件支持
- 🔧 Node.js 20+ 支持
安装
npm install @your-org/shared-lib
# 或
yarn add @your-org/shared-lib
# 或
pnpm add @your-org/shared-lib使用
初始化 HTTP 客户端
import { initHttp } from '@your-org/shared-lib/api'
initHttp({
baseUrl: 'https://api.example.com',
timeout: 30000,
getToken: () => localStorage.getItem('token'),
getLanguage: () => 'zh-CN',
onUnauthorized: () => {
window.location.href = '/login'
}
})使用 API
import { getUserInfo, getApplab, postSession } from '@your-org/shared-lib/api'
// 获取用户信息
const user = await getUserInfo()
// 获取 Applab 数据
const applab = await getApplab('123')
// 创建会话
const session = await postSession({ gpt_id: 1 })OSS 上传
import { uploadImage, uploadVideo, uploadBase64Image } from '@your-org/shared-lib/api'
// 上传图片
const imageUrl = await uploadImage(file)
// 上传视频
const videoUrl = await uploadVideo(file, 'gpt-video')
// 上传 Base64 图片
const url = await uploadBase64Image(base64String)React 组件
import { SharedHeader } from '@your-org/shared-lib/react'
function App() {
return (
<SharedHeader
userInfo={{ id: 1, name: '用户名' }}
schoolInfo={{ logo: '/logo.png', name: '学校名' }}
isLogin={true}
hasRoles={true}
onLogout={() => console.log('logout')}
onLogin={() => console.log('login')}
/>
)
}Vue 组件
<template>
<SharedHeader
:user-info="userInfo"
:school-info="schoolInfo"
:is-login="true"
@logout="handleLogout"
@login="handleLogin"
/>
</template>
<script>
import { SharedHeader } from '@your-org/shared-lib/vue'
export default {
components: { SharedHeader },
data() {
return {
userInfo: { id: 1, name: '用户名' },
schoolInfo: { logo: '/logo.png', name: '学校名' }
}
},
methods: {
handleLogout() { /* ... */ },
handleLogin() { /* ... */ }
}
}
</script>工具函数
import { getCookies, setCookies, removeCookies } from '@your-org/shared-lib'
import { dataURLtoFile, readFileAsArrayBuffer } from '@your-org/shared-lib'
// Cookie 操作
setCookies('token', 'xxx')
const token = getCookies('token')
removeCookies('token')
// 文件操作
const file = dataURLtoFile(dataUrl, 'image.png')
const buffer = await readFileAsArrayBuffer(file)API 列表
用户相关
getUserInfo()- 获取用户信息getAccounts()- 获取用户资金信息bindPhone(data)- 绑定手机getPhoneCode(params)- 获取手机验证码
GPT 相关
getCustomGptList(params)- GPT 列表getCustomGpt(id)- GPT 详情postCustomGpt(data)- 创建 GPTputCustomGpt(data, id)- 更新 GPTdelCustomGpt(id)- 删除 GPT
会话相关
postSession(data)- 创建会话getSessionList(params)- 会话列表putSession(data, id)- 更新会话delSession(id)- 删除会话
OSS 上传
uploadImage(file)- 上传图片uploadVideo(file, folder)- 上传视频uploadText(content)- 上传文本uploadHtml(content)- 上传 HTMLuploadMusic(file)- 上传音乐uploadBase64Image(base64)- 上传 Base64 图片
开发
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
# 测试
npm test
# 代码检查
npm run lint发布
# 更新版本号
npm version patch/minor/major
# 发布到 npm
npm publish --access publicLicense
MIT
