service/js_export.go
AI Engineer 556d60661c feat(service): Session Save/Load/Remove 增强,日志脱敏引擎,响应体捕获修复(by AI)
Co-Authored-By: deepseek-v4-pro[1m] <deepseek-ai@claude-code-best.win>
2026-06-21 22:53:37 +08:00

64 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import (
"apigo.cc/go/jsmod"
)
func init() {
jsmod.Register("service", map[string]any{
// 类型占位工厂 (用于 AI 发现类型结构,生成文档时隐藏)
"__exportRequest": jsExportRequest,
"__exportResponse": jsExportResponse,
"__exportWebSocket": jsExportWebSocket,
"__exportSession": jsExportSession,
"__exportFile": jsExportFile,
// 功能函数
"Upgrade": jsUpgrade,
})
}
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
}
// jsUploadFile 包装 UploadFile 以隐藏敏感方法(如 Open
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
}
res, err := j.f.Content()
if err != nil {
return nil, jsmod.MakeError(err)
}
return res, nil
}