JSPM

@weapp-core/http

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 192
  • Score
    100M100P100Q48546F
  • License MIT

Browser-style fetch, WebSocket, and XMLHttpRequest for WeChat mini programs

Package Exports

  • @weapp-core/http

Readme

@weapp-core/http

一套在微信小程序环境中复刻浏览器网络 API 的核心实现,包括 fetchWebSocketXMLHttpRequest 以及对应的事件类型。

  • 适配微信小程序的 wx.requestwx.connectSocket
  • 内置 HeadersRequestResponse 等工具,行为与 Web 平台保持一致
  • 支持自定义适配器,便于在各类跨端框架(Taro、uni-app 等)中复用

安装

pnpm add @weapp-core/http
# 或 npm / yarn

快速开始

import {
  fetch,
  Headers,
  Request,
  Response,
  WebSocket,
  XMLHttpRequest,
  setWxAdapter,
} from '@weapp-core/http'

// 可选:手动注入小程序适配器(默认会尝试从 globalThis.wx 读取)
setWxAdapter({
  request: wx.request,
  connectSocket: wx.connectSocket,
})

const response = await fetch('https://example.com/api/todos')
const data = await response.json()

const socket = new WebSocket('wss://example.com/graphql')
socket.onmessage = (event) => {
  console.log('ws message', event.data)
}

const xhr = new XMLHttpRequest()
xhr.open('GET', 'https://example.com/status')
xhr.onload = () => console.log(xhr.statusText)
xhr.send()

适配器

通过 setWxAdapter 可以替换默认的 wx.request/wx.connectSocket,例如在 Taro 中:

import Taro from '@tarojs/taro'
import { setWxAdapter } from '@weapp-core/http'

setWxAdapter({
  request: Taro.request,
  connectSocket: Taro.connectSocket,
})

相关包