2026-05-31 18:33:54 +08:00
|
|
|
package service
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"apigo.cc/go/jsmod"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
jsmod.Register("service", map[string]any{
|
2026-06-05 19:05:21 +08:00
|
|
|
// 类型占位工厂 (用于 AI 发现类型结构,生成文档时隐藏)
|
2026-06-21 14:02:11 +08:00
|
|
|
"__exportRequest": jsExportRequest,
|
|
|
|
|
"__exportResponse": jsExportResponse,
|
|
|
|
|
"__exportWebSocket": jsExportWebSocket,
|
|
|
|
|
"__exportSession": jsExportSession,
|
|
|
|
|
"__exportFile": jsExportFile,
|
2026-05-31 18:33:54 +08:00
|
|
|
|
|
|
|
|
// 功能函数
|
2026-06-21 14:02:11 +08:00
|
|
|
"Upgrade": jsUpgrade,
|
2026-05-31 18:33:54 +08:00
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-21 14:02:11 +08:00
|
|
|
func jsExportRequest() *Request { return &Request{} }
|
|
|
|
|
func jsExportResponse() *Response { return &Response{} }
|
|
|
|
|
func jsExportWebSocket() *WebSocketConn { return &WebSocketConn{} }
|
|
|
|
|
func jsExportSession() *Session { return &Session{} }
|
|
|
|
|
func jsExportFile() *jsUploadFile { return &jsUploadFile{} }
|
|
|
|
|
|
|
|
|
|
func jsUpgrade(response *Response, request *Request) (*WebSocketConn, error) {
|
|
|
|
|
conn, err := Upgrade(response, request)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, jsmod.MakeError(err)
|
|
|
|
|
}
|
|
|
|
|
return conn, nil
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-31 18:33:54 +08:00
|
|
|
// jsUploadFile 包装 UploadFile 以隐藏敏感方法
|
|
|
|
|
type jsUploadFile struct {
|
|
|
|
|
f *UploadFile
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (j *jsUploadFile) Filename() string {
|
|
|
|
|
if j.f == nil {
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
return j.f.Filename
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (j *jsUploadFile) Size() int64 {
|
|
|
|
|
if j.f == nil {
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
return j.f.Size
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (j *jsUploadFile) Content() ([]byte, error) {
|
|
|
|
|
if j.f == nil {
|
|
|
|
|
return nil, nil
|
|
|
|
|
}
|
2026-06-21 14:02:11 +08:00
|
|
|
res, err := j.f.Content()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, jsmod.MakeError(err)
|
|
|
|
|
}
|
|
|
|
|
return res, nil
|
2026-05-31 18:33:54 +08:00
|
|
|
}
|