wechaty-puppet-service
Version:
Puppet Service for Wechaty
42 lines • 1.5 kB
JavaScript
import { FileBox, } from 'file-box';
import { chunkDecoder, chunkEncoder, puppet as pbPuppet, } from 'wechaty-grpc';
import { cloneClass, } from 'clone-class';
const uuidResolverGrpc = (grpcClient) => async function uuidResolver(uuid) {
const request = new pbPuppet.DownloadRequest();
request.setId(uuid);
const response = grpcClient().download(request);
const stream = response
.pipe(chunkDecoder());
return stream;
};
const uuidRegisterGrpc = (grpcClient) => async function uuidRegister(stream) {
const response = await new Promise((resolve, reject) => {
const request = grpcClient().upload((err, response) => {
if (err) {
reject(err);
}
else {
resolve(response);
}
}); // Huan(202203) FIXME: as unknown as
stream
.pipe(chunkEncoder(pbPuppet.UploadRequest))
.pipe(request);
});
const uuid = response.getId();
return uuid;
};
const uuidifyFileBoxGrpc = (grpcClient) => {
/**
* `as any`:
*
* Huan(202110): TypeError: Cannot read property 'valueDeclaration' of undefined #58
* https://github.com/huan/clone-class/issues/58
*/
const FileBoxUuid = cloneClass(FileBox);
FileBoxUuid.setUuidLoader(uuidResolverGrpc(grpcClient));
FileBoxUuid.setUuidSaver(uuidRegisterGrpc(grpcClient));
return FileBoxUuid;
};
export { uuidifyFileBoxGrpc, };
//# sourceMappingURL=uuidify-file-box-grpc.js.map