@snap/camera-kit
Version:
Camera Kit Web
36 lines • 1.3 kB
JavaScript
import { __awaiter } from "tslib";
import { entries, fromEntries } from "../common/entries";
function messageClass(message, data) {
return class Message {
constructor() {
Object.assign(this, message.fromPartial(data));
}
static deserializeBinary(data) {
return new (messageClass(message, message.decode(data)))();
}
serializeBinary() {
return message.encode(this).finish();
}
toObject() {
return this;
}
};
}
export function createTsProtoClient(serviceDefinition, handler) {
return fromEntries(entries(serviceDefinition.methods).map(([methodName, methodDefinition]) => {
return [
methodName,
(request) => __awaiter(this, void 0, void 0, function* () {
const requestType = messageClass(methodDefinition.requestType, request);
const responseType = messageClass(methodDefinition.responseType, {});
return handler({
serviceName: serviceDefinition.fullName,
methodName: methodDefinition.name,
requestType,
responseType,
});
}),
];
}));
}
//# sourceMappingURL=createTsProtoClient.js.map