wechaty-grpc
Version:
gRPC for Wechaty
83 lines • 3.26 kB
JavaScript
;
// import { Metadata } from '@grpc/grpc-js'
// import { CallMetadataGenerator } from '@grpc/grpc-js/build/src/call-credentials'
Object.defineProperty(exports, "__esModule", { value: true });
exports.testStream = exports.testDing = exports.testAlias = void 0;
const mod_js_1 = require("../src/mod.js");
const promisify_js_1 = require("./promisify.js");
async function testAlias(client) {
const request = new mod_js_1.puppet.ContactAliasRequest();
const contactAlias = (0, promisify_js_1.promisify)(client.contactAlias.bind(client));
{
const response = await contactAlias(request);
const alias = response.getAlias();
console.info('returned alias:', alias);
}
console.info('##############');
{
request.setAlias('test alias');
const response = await contactAlias(request);
const returnAliasWrapper = response.getAlias();
if (returnAliasWrapper) {
console.info('returned alias:', returnAliasWrapper);
throw new Error('should not has alas return');
}
console.info('ok');
}
}
exports.testAlias = testAlias;
async function testDing(client) {
const ding = (0, promisify_js_1.promisify)(client.ding.bind(client));
const dingRequest = new mod_js_1.puppet.DingRequest();
dingRequest.setData('dingdong');
try {
// const metadata = new Metadata()
// metadata.set('grpc.default_authority', 'puppet_token')
await ding(dingRequest /* metadata */);
}
catch (e) {
console.error(e);
}
}
exports.testDing = testDing;
function testStream(client) {
// event(request: wechaty_puppet_event_pb.EventRequest, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<wechaty_puppet_event_pb.EventRequest>;
const eventStream = client.event(new mod_js_1.puppet.EventRequest());
eventStream
.on('data', (chunk) => {
// console.info('EventType:', EventType)
// console.info('type:', chunk.getType(), EventType[chunk.getType()], EventType[23])
console.info('payload:', chunk.getPayload());
// console.info('eventStream.on(data):', chunk)
})
.on('end', () => {
console.info('eventStream.on(end)');
});
}
exports.testStream = testStream;
async function main() {
// const metadata = new grpc.Metadata()
// metadata.add('authorization', 'Bearer ' + 'access_token')
// const generateMetadata: CallMetadataGenerator = (_params, callback) => { console.info('generateMetadata'); callback(null, metadata) }
// const authCred = grpc.credentials.createFromMetadataGenerator(generateMetadata)
// const sslCred = grpc.credentials.createSsl()
// const creds = grpc.credentials.combineChannelCredentials(
// sslCred,
// authCred,
// )
const creds = mod_js_1.grpc.credentials.createInsecure();
const client = new mod_js_1.puppet.PuppetClient('localhost:8788', creds, {
'grpc.default_authority': 'puppet_token',
});
testStream(client);
setInterval(() => testDing(client), 1000);
// await testAlias(client)
return 0;
}
main()
// .then(process.exit)
.catch(e => {
console.error(e);
process.exit(1);
});
//# sourceMappingURL=client.js.map