Skip to content

Instantly share code, notes, and snippets.

View jwulf's full-sized avatar
:octocat:
Coding on Halmak

Josh Wulf jwulf

:octocat:
Coding on Halmak
View GitHub Profile
createWorker(
id: string | null,
taskType: string,
taskHandler: ZB.ZBWorkerTaskHandler,
options?: ZBWorkerOptions & ZBClientOptions,
onConnectionError?: ZB.ConnectionErrorHandler | undefined): ZBWorker
const zbWorker = zbc.createWorker('demo-worker-1', 'demo-service', handler)
createWorker(
id: string,
taskType: string,
taskHandler: ZB.ZBWorkerTaskHandler,
options?: ZBWorkerOptions & ZBClientOptions,
onConnectionError?: ZB.ConnectionErrorHandler): ZBWorker
public createWorker(
id: string | null,
taskType: string,
taskHandler: ZB.ZBWorkerTaskHandler,
options: ZB.ZBWorkerOptions & ZB.ZBClientOptions = {} as any,
onConnectionError?: ZB.ConnectionErrorHandler
) {
public async deployWorkflow(
workflow: ZB.DeployWorkflowFiles | ZB.DeployWorkflowBuffer
): Promise<ZB.DeployWorkflowResponse> {
const deploy = (workflows: ZB.WorkflowRequestObject[]) =>
this.executeOperation('deployWorkflow', () =>
this.gRPCClient.deployWorkflowSync({
workflows,
})
)
const filereader = wf => typeof wf === 'object' ? wf : read(wf)
const read = filename => fs.existsSync(filename) ?
{ buffer: fs.readFileSync(filename) } :
{ error: filename }
const outcomes = workflows.map(filereader)
const { error, buffer } = outcomes.reduce((acc, o) => o.error ?
{ error: [...acc.error, o.error], buffer: acc.buffer } :
/**
*
* @param workflow - A path or array of paths to .bpmn files or an object describing the workflow
* @param {redeploy?: boolean} - Redeploy workflow. Defaults to true.
* If set false, will not redeploy a workflow that exists.
*/
public async deployWorkflow(
workflow: string | string[] | { definition: Buffer; name: string }
): Promise<ZB.DeployWorkflowResponse> {
const workflows = Array.isArray(workflow) ? workflow : [workflow]
/**
*
* @param workflow - A path or array of paths to .bpmn files or an object describing the workflow
*/
public async deployWorkflow(
workflow: ZB.DeployWorkflowFiles | ZB.DeployWorkflowBuffer
): Promise<ZB.DeployWorkflowResponse> {
const isBuffer = (
wf: ZB.DeployWorkflowBuffer | ZB.DeployWorkflowFiles
): wf is ZB.DeployWorkflowBuffer =>
const GRPCConnection = gRPC => url => {
let connected = false
const _connection = gRPC(url)
_connection.on('connect', () => (connected = true))
_connection.on('disconnect', () => (connected = false))
return {
getIsConnected(): connected,
connect: () => connected || _connection.connect()
send: command => _connection.send(command)
}
const GRPCConnection = url => {
let connected = false
const _connection = gRPC(url)
_connection.on('connect', () => (connected = true))
_connection.on('disconnect', () => (connected = false))
return {
getIsConnected(): connected,
connect: () => connected || _connection.connect()
send: command => _connection.send(command)
}