refactor: migrate mini program to TypeScript
CI / test (push) Successful in 15s

This commit is contained in:
2026-09-21 16:01:26 +08:00
parent c0b6dd31ae
commit 4e6019ec61
21 changed files with 209 additions and 25 deletions
-4
View File
@@ -1,4 +0,0 @@
const { apiBaseUrl } = require('../config')
function request(path, options = {}) { return new Promise((resolve, reject) => wx.request({ url: apiBaseUrl + path, method: options.method || 'GET', data: options.data, header: { 'content-type': 'application/json', Authorization: `Bearer ${wx.getStorageSync('token') || ''}` }, success: (res) => res.statusCode >= 200 && res.statusCode < 300 ? resolve(res.data) : reject(new Error(res.data && res.data.error || '网络请求失败')), fail: reject })) }
function upload(filePath) { return new Promise((resolve, reject) => wx.uploadFile({ url: apiBaseUrl + '/api/uploads', filePath, name: 'files', header: { Authorization: `Bearer ${wx.getStorageSync('token') || ''}` }, success: (res) => { const data = JSON.parse(res.data || '{}'); res.statusCode < 300 ? resolve(data.files[0]) : reject(new Error(data.error || '上传失败')) }, fail: reject })) }
module.exports = { request, upload, apiBaseUrl }
+31
View File
@@ -0,0 +1,31 @@
import { apiBaseUrl } from '../config'
interface RequestOptions { method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; data?: unknown }
interface UploadResult { url: string }
export function request<T>(path: string, options: RequestOptions = {}): Promise<T> {
return new Promise((resolve, reject) => wx.request({
url: apiBaseUrl + path,
method: (options.method || 'GET') as WechatMiniprogram.RequestOption['method'],
data: options.data as WechatMiniprogram.IAnyObject,
header: { 'content-type': 'application/json', Authorization: `Bearer ${wx.getStorageSync('token') || ''}` },
success: (response) => response.statusCode >= 200 && response.statusCode < 300
? resolve(response.data as T)
: reject(new Error((response.data as { error?: string })?.error || '网络请求失败')),
fail: reject
}))
}
export function upload(filePath: string): Promise<UploadResult> {
return new Promise((resolve, reject) => wx.uploadFile({
url: apiBaseUrl + '/api/uploads', filePath, name: 'files',
header: { Authorization: `Bearer ${wx.getStorageSync('token') || ''}` },
success: (response) => {
const data = JSON.parse(response.data || '{}') as { files?: UploadResult[]; error?: string }
response.statusCode < 300 && data.files?.[0] ? resolve(data.files[0]) : reject(new Error(data.error || '上传失败'))
},
fail: reject
}))
}
export { apiBaseUrl }