2.0.3 • Published 7 months ago

connect-miniprogram v2.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

connect-miniprogram

A Connect client for Weixin Miniprogram

适配小程序的 Connect 客户端。可以在小程序中使用访问 Connect 生成的服务。支持 GRPC 和流式请求。

Polyfill

Connect libraries relys on some APIs that not provided in Weixin environment.

APIPolyfilled by
Headersmswjs/headers-polyfill
TextEncodersamthor/fast-text-encoding
TextDecodersamthor/fast-text-encoding

Import the polyfill at the start of your code:

import 'connect-miniprogram/polyfill';

How to use

The usage of this library is basically the same with @bufbuild/connect-web. You can click the link to read its doc.

import { createPromiseClient } from '@bufbuild/connect';
import {
  createConnectTransport,
  createGrpcWebTransport,
} from 'connect-miniprogram';
import { ElizaService } from '@buf/bufbuild_eliza.bufbuild_connect-es/buf/connect/demo/eliza/v1/eliza_connect';

const connectTransport = createConnectTransport({
  baseUrl: 'https://demo.connect.build',
  // You need to mannualy pass the request function. You can also pass functions from 3rd party frameworks like `Taro.requst`, as long as they are compatible with Weixin's API
  request: wx.request,
});

// You can also use create a grpc-web transport. The usage is the same.
const grpcWebTransport = createGrpcWebTransport({
  baseUrl: 'https://demo.connect.build',
  request: wx.request,
});

const client = createPromiseClient(ElizaService, connectTransport);

async function unary() {
  const res = await client.say({
    sentence: 'I feel happy.',
  });
  console.log(res);
}

async function serverStream() {
  for await (const res of client.introduce({ name: 'Joseph' })) {
    console.log(res);
  }
}

Limitations

  • Doesn't support interceptor (yet). I will add this support in the future.
  • Doesn't support AbortSignal because Weixin doesn't have AbortSignal API.
  • Doesn't support stream request body because either fetch or Weixin dosen't support sending stream request.
1.0.7

10 months ago

1.0.6

10 months ago

2.0.3

7 months ago

2.0.2

7 months ago

2.0.1

7 months ago

2.0.0

7 months ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago