UNPKG

wechaty-puppet-service

Version:
42 lines 1.5 kB
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