in server/middleware/grpc-client/index.js [54:175]
async function(ctx, next) {
const adminService = new GRPCService({
ctx,
peers,
requestConfig,
...adminServiceConfig,
});
const domainService = new GRPCService({
ctx,
peers,
requestConfig,
...domainServiceConfig,
});
const visibilityService = new GRPCService({
ctx,
peers,
requestConfig,
...visibilityServiceConfig,
});
const workflowService = new GRPCService({
ctx,
peers,
requestConfig,
...workflowServiceConfig,
});
ctx.cadence = {
archivedWorkflows: visibilityService.request({
formatResponse: formatResponseWorkflowList,
method: 'ListArchivedWorkflowExecutions',
transform: combine(withDomain(ctx), withPagination(ctx)),
}),
closedWorkflows: visibilityService.request({
formatRequest: formatRequestWorkflowList,
formatResponse: formatResponseWorkflowList,
method: 'ListClosedWorkflowExecutions',
transform: combine(withDomain(ctx), withPagination(ctx)),
}),
describeCluster: adminService.request({
method: 'DescribeCluster',
}),
describeDomain: domainService.request({
formatResponse: formatResponseDomain,
method: 'DescribeDomain',
}),
describeTaskList: workflowService.request({
formatRequest: formatRequestDescribeTaskList,
formatResponse: formatResponseDescribeTaskList,
method: 'DescribeTaskList',
}),
describeWorkflow: workflowService.request({
formatResponse: formatResponseDescribeWorkflow,
method: 'DescribeWorkflowExecution',
transform: combine(withDomain(ctx), withWorkflowExecution(ctx)),
}),
exportHistory: workflowService.request({
formatRequest: formatRequestGetHistory,
formatResponse: formatResponseExportHistory,
method: 'GetWorkflowExecutionHistory',
transform: combine(
withDomain(ctx),
withPagination(ctx),
withWorkflowExecution(ctx)
),
}),
getHistory: workflowService.request({
formatRequest: formatRequestGetHistory,
formatResponse: formatResponseGetHistory,
method: 'GetWorkflowExecutionHistory',
transform: combine(
withDomain(ctx),
withPagination(ctx),
withWorkflowExecution(ctx)
),
}),
listDomains: domainService.request({
formatResponse: formatResponseListDomains,
method: 'ListDomains',
}),
listTaskListPartitions: workflowService.request({
method: 'ListTaskListPartitions',
}),
listWorkflows: visibilityService.request({
formatResponse: formatResponseWorkflowList,
method: 'ListWorkflowExecutions',
transform: combine(withDomain(ctx), withPagination(ctx)),
}),
openWorkflows: visibilityService.request({
formatRequest: formatRequestWorkflowList,
formatResponse: formatResponseWorkflowList,
method: 'ListOpenWorkflowExecutions',
transform: combine(withDomain(ctx), withPagination(ctx)),
}),
queryWorkflow: workflowService.request({
method: 'QueryWorkflow',
formatResponse: formatResponseQueryWorkflow,
transform: combine(withDomain(ctx), withWorkflowExecution(ctx)),
}),
signalWorkflow: workflowService.request({
formatResponse: formatResponseSignalWorkflowExecution,
method: 'SignalWorkflowExecution',
transform: combine(withDomain(ctx), withWorkflowExecution(ctx)),
}),
terminateWorkflow: workflowService.request({
formatResponse: formatResponseTerminateWorkflowExecution,
method: 'TerminateWorkflowExecution',
transform: combine(withDomain(ctx), withWorkflowExecution(ctx)),
}),
};
try {
await next();
domainService.close();
visibilityService.close();
workflowService.close();
} catch (e) {
domainService.close();
visibilityService.close();
workflowService.close();
throw e;
}
};