Render gRPC message body

This commit is contained in:
Gregory Schier
2024-02-18 00:13:56 -08:00
parent 8d29fad261
commit d953a75073
3 changed files with 14 additions and 10 deletions

View File

@@ -219,6 +219,8 @@ async fn cmd_grpc_go(
let cb = {
let cancelled_rx = cancelled_rx.clone();
let environment = environment.clone();
let workspace = workspace.clone();
let w = w.clone();
let base_msg = base_msg.clone();
@@ -240,10 +242,12 @@ async fn cmd_grpc_go(
};
match serde_json::from_str::<IncomingMsg>(ev.payload().unwrap()) {
Ok(IncomingMsg::Message(msg)) => {
in_msg_tx.try_send(msg.clone()).unwrap();
Ok(IncomingMsg::Message(raw_msg)) => {
in_msg_tx.try_send(raw_msg.clone()).unwrap();
let w = w.clone();
let base_msg = base_msg.clone();
let environment_ref = environment.as_ref();
let msg = render::render(raw_msg.as_str(), &workspace, environment_ref);
tauri::async_runtime::spawn(async move {
upsert_grpc_message(
&w,
@@ -306,6 +310,9 @@ async fn cmd_grpc_go(
let w = w.clone();
let base_msg = base_msg.clone();
let req = req.clone();
let workspace = workspace.clone();
let environment = environment.clone();
let msg = render::render(&req.message, &workspace, environment.as_ref());
async move {
let (maybe_stream, maybe_msg) = match (
method_desc.is_client_streaming(),
@@ -330,18 +337,14 @@ async fn cmd_grpc_go(
(false, true) => (
Some(
connection
.server_streaming(&service, &method, &req.message, metadata)
.server_streaming(&service, &method, &msg, metadata)
.await,
),
None,
),
(false, false) => (
None,
Some(
connection
.unary(&service, &method, &req.message, metadata)
.await,
),
Some(connection.unary(&service, &method, &msg, metadata).await),
),
};

View File

@@ -106,6 +106,8 @@ export function GrpcEditor({
<div className="h-full w-full grid grid-cols-1 grid-rows-[minmax(0,100%)_auto_auto_minmax(0,auto)]">
<Editor
contentType="application/grpc"
autocompleteVariables
useTemplating
forceUpdateKey={request.id}
defaultValue={request.message}
format={tryFormatJson}

View File

@@ -32,7 +32,6 @@ import {
import { tags as t } from '@lezer/highlight';
import { graphql, graphqlLanguageSupport } from 'cm6-graphql';
import { EditorView } from 'codemirror';
import { jsonSchema } from 'codemirror-json-schema';
import type { Environment, Workspace } from '../../../lib/models';
import type { EditorProps } from './index';
import { text } from './text/extension';
@@ -86,7 +85,7 @@ const myTheme = EditorView.theme({}, { dark: true });
// ]);
const syntaxExtensions: Record<string, LanguageSupport> = {
'application/grpc': jsonSchema() as unknown as LanguageSupport, // TODO: Fix this
'application/grpc': json(), // TODO: Make JSONSchema work
'application/graphql': graphqlLanguageSupport(),
'application/json': json(),
'application/javascript': javascript(),