Skip to content

Commit

Permalink
Expose IsPolling. and Options from TaskManager, DNS Catching. (conduc…
Browse files Browse the repository at this point in the history
…tor-sdk#42)

* fix: expose isPolling

* refactor: expose options.
feat: add polling flag

* feat: add additional tests

* fix: linting

* refactor: execute wf sync

* refactor: readability renamed getter

* fix: serverUrl to secret

* feat: added dns cache

* refactor: moved noop logger to ConductorLogger
class

* feat: added base client factory

* fix: types

* fix: wrong dependency type

* chore: format

* Moving things arround

* fix: imports

* refactor: moved generators from its package

* fix: re add jest config

* refactor: use sync workflow in test

* feat: split browser support

* fix: imports

* feat: export catch utils

* fix: increment timeout

* fix: revert changes

* fix: revert change in CancelablePromise

* chore: linting

* feat: added additional tests

* chore: fix linting
  • Loading branch information
Sudakatux authored Jul 17, 2023
1 parent 1f9731e commit 7a0303d
Show file tree
Hide file tree
Showing 72 changed files with 1,562 additions and 356 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,6 @@ jobs:
env:
KEY_ID: ${{ secrets.KEY_ID }}
KEY_SECRET: ${{ secrets.KEY_SECRET }}
SERVER_URL: ${{ secrets.SERVER_URL }}


5 changes: 5 additions & 0 deletions browser.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export * from "./src/task/index";
export * from "./src/common";
export * from "./src/core";
export * from "./src/orkes/browser";

4 changes: 3 additions & 1 deletion index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export * from "./src/task/index";
export * from "./src/common/index";
export * from "./src/common";
export * from "./src/core";
export * from "./src/orkes";

24 changes: 17 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./browser": {
"require": "./dist/browser.js",
"import": "./dist/browser.mjs",
"types": "./dist/browser.d.ts"
}
},
"private": false,
Expand All @@ -25,7 +30,7 @@
"main": "dist/index.js",
"scripts": {
"lint": "npx eslint . --ext .js,.ts",
"build": "tsup index.ts",
"build": "tsup",
"prepublishOnly": "npm run build",
"lint-fix": "npx eslint . --fix --ext .js,.ts",
"test": "jest --force-exit --detectOpenHandles",
Expand All @@ -52,6 +57,7 @@
}
],
"devDependencies": {
"@babel/preset-typescript": "^7.22.5",
"@tsconfig/node18": "^1.0.1",
"@types/node": "^18.11.18",
"@types/uuid": "^9.0.1",
Expand All @@ -62,10 +68,11 @@
"jest": "^29.4.3",
"ts-jest": "^29.0.5",
"ts-node": "^10.7.0",
"tsup": "^5.12.6",
"tsup": "^7.1.0",
"typedoc": "^0.23.10",
"typedoc-plugin-markdown": "^3.13.4",
"typescript": "^4.6.4"
"typescript": "^4.6.4",
"uuid": "^9.0.0"
},
"tsup": {
"target": "node18",
Expand All @@ -74,13 +81,16 @@
"esm",
"cjs"
],
"entry": [
"index.ts",
"browser.ts"
],
"dts": true,
"clean": true
"clean": true,
"splitting": false,
"types": ["index.ts"]
},
"engines": {
"node": ">=18"
},
"dependencies": {
"uuid": "^9.0.0"
}
}
63 changes: 33 additions & 30 deletions src/__test__/readme.test.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
import { expect, describe, test, jest } from "@jest/globals";
import {
OrkesApiConfig,
orkesConductorClient,
WorkflowExecutor,
TaskRunner,
generate,
simpleTask,
} from "../../";
import { TaskType } from "../../";
import { OrkesApiConfig, orkesConductorClient } from "../orkes";
import { WorkflowExecutor, simpleTask, generate } from "../core";
import { TaskType } from "../common";
import { TaskRunner } from "../task";

const config: Partial<OrkesApiConfig> = {
keyId: `${process.env.KEY_ID}`,
keySecret: `${process.env.KEY_SECRET}`,
serverUrl: "https://pg-staging.orkesconductor.com/api",
serverUrl: `${process.env.SERVER_URL}`,
};

describe("TaskManager", () => {
const clientPromise = orkesConductorClient(config);

jest.setTimeout(10000);
jest.setTimeout(20000);
test("worker example ", async () => {
const client = await clientPromise;
const executor = new WorkflowExecutor(client);
Expand Down Expand Up @@ -82,20 +77,24 @@ describe("TaskManager", () => {
});
await executor.registerWorkflow(true, workflowWithWaitTask);

const executionId = await executor.startWorkflow({
name: workflowWithWaitTask.name,
input: {},
version: 1,
});
await new Promise((r) => setTimeout(() => r(true), 500));
const workflowStatus = await executor.getWorkflow(executionId, true);
const { workflowId: executionId } = await executor.executeWorkflow(
{
name: workflowWithWaitTask.name,
input: {},
version: 1,
},
workflowWithWaitTask.name,
1,
"someId"
);
const workflowStatus = await executor.getWorkflow(executionId!, true);

const [firstTask] = workflowStatus.tasks || [];
expect(firstTask?.referenceTaskName).toEqual(waitTaskReference);
const changedValue = { greet: "changed value" };
await executor.updateTaskByRefName(
firstTask!.referenceTaskName!,
executionId,
executionId!,
"IN_PROGRESS",
changedValue
);
Expand All @@ -106,7 +105,7 @@ describe("TaskManager", () => {

await executor.updateTask(
firstTask!.taskId!,
executionId,
executionId!,
"COMPLETED",
newChange
);
Expand Down Expand Up @@ -148,18 +147,22 @@ describe("TaskManager", () => {

await executor.registerWorkflow(true, sumTwoNumbers);

const executionId = await executor.startWorkflow({
name: sumTwoNumbers.name,
version: 1,
input: {
numberOne: 1,
numberTwo: 2,
},
});
const { workflowId: executionId } = await executor.executeWorkflow(
{
name: sumTwoNumbers.name,
version: 1,

const workflowStatus = await executor.getWorkflow(executionId, true);
input: {
numberOne: 1,
numberTwo: 2,
},
},
sumTwoNumbers.name,
1,
"workflowSummTwoNumbers"
);

await new Promise((r) => setTimeout(() => r(true), 900));
const workflowStatus = await executor.getWorkflow(executionId!, true);

expect(workflowStatus.status).toEqual("COMPLETED");
expect(workflowStatus.output?.result).toEqual(3);
Expand Down
9 changes: 9 additions & 0 deletions src/common/ConductorLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,12 @@ export class DefaultLogger implements ConductorLogger {
this.log("ERROR", ...args)
}
}

export const noopLogger: ConductorLogger = {
//eslint-disable-next-line
debug: (...args: any) => {},
//eslint-disable-next-line
info: (...args: any) => {},
//eslint-disable-next-line
error: (...args: any) => {},
};
8 changes: 4 additions & 4 deletions src/common/index.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
export * from "./ConductorLogger";
export * from "./RequestCustomizer";
export * from "./open-api/core/CancelablePromise";
export * from "./orkes";
export * from "./generators";
export * from "./types";
export * from "./sdk";

export {
ConductorClient,
ApiRequestOptions,
ApiResult,
ConductorClientAPIConfig,
OpenAPIConfig,
OnCancel,
ApiError,
BaseHttpRequest,
CancelablePromise,
Expand Down
5 changes: 4 additions & 1 deletion src/common/open-api/index.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
export { ConductorClient } from "./ConductorClient";
export { ConductorClient, ConductorClientAPIConfig } from "./ConductorClient";

export { ApiError } from "./core/ApiError";
export { BaseHttpRequest } from "./core/BaseHttpRequest";
export { CancelablePromise, CancelError } from "./core/CancelablePromise";
export { OpenAPI } from "./core/OpenAPI";
export type { OpenAPIConfig } from "./core/OpenAPI";
export type { ApiRequestOptions } from "./core/ApiRequestOptions";
export type { ApiResult } from "./core/ApiResult";

export type { OnCancel } from "./core/CancelablePromise";
export type { Action } from "./models/Action";
export type { BulkResponse } from "./models/BulkResponse";
export type { EventHandler } from "./models/EventHandler";
Expand Down
42 changes: 0 additions & 42 deletions src/common/orkes/OrkesConductorClient.ts

This file was deleted.

1 change: 0 additions & 1 deletion src/common/orkes/index.ts

This file was deleted.

8 changes: 5 additions & 3 deletions src/core/__test__/executor.test.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
import { expect, describe, test } from "@jest/globals";
import {
OrkesApiConfig,
orkesConductorClient,
SetVariableTaskDef,
TaskType,
WorkflowDef,
} from "../../common";
import {
OrkesApiConfig,
orkesConductorClient,
}from "../../orkes";
import { WorkflowExecutor } from "../executor";
import { v4 as uuidv4 } from 'uuid';

const playConfig: Partial<OrkesApiConfig> = {
keyId: `${process.env.KEY_ID}`,
keySecret: `${process.env.KEY_SECRET}`,
serverUrl: "https://pg-staging.orkesconductor.com/api",
serverUrl: `${process.env.SERVER_URL}`
};

describe("Executor", () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { TaskType, DoWhileTaskDef } from "../types";
import { TaskType, DoWhileTaskDef } from "../../common/types";
import { DoWhileTaskDefGen, NestedTaskMapper } from "./types";
import { nameTaskNameGenerator } from "./common";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EventTaskDef, TaskType } from "../types";
import { EventTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ForkJoinTaskDef, JoinTaskDef, TaskType } from "../types";
import { ForkJoinTaskDef, JoinTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";
import { ForkJoinTaskDefGen, NestedTaskMapper } from "./types";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ForkJoinDynamicDef, TaskType } from "../types";
import { ForkJoinDynamicDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

export const generateForkJoinDynamic = (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { HttpTaskDef, TaskType } from "../types";
import { HttpTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { InlineTaskDef, TaskType, InlineTaskInputParameters } from "../types";
import { InlineTaskDef, TaskType, InlineTaskInputParameters } from "../../common/types";
import { InlineTaskDefGen, InlineTaskInputParametersGen } from "./types";
import { nameTaskNameGenerator } from "./common";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { JsonJQTransformTaskDef, TaskType } from "../types";
import { JsonJQTransformTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { KafkaPublishTaskDef, TaskType } from "../types";
import { KafkaPublishTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SetVariableTaskDef, TaskType } from "../types";
import { SetVariableTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SimpleTaskDef, TaskType } from "../types";
import { SimpleTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SubWorkflowTaskDef, TaskType } from "../types";
import { SubWorkflowTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SwitchTaskDef, TaskType, TaskDefTypes } from "../types";
import { SwitchTaskDef, TaskType, TaskDefTypes } from "../../common/types";
import { nameTaskNameGenerator, mapArrValues } from "./common";
import { NestedTaskMapper, SwitchTaskDefGen } from "./types";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { TerminateTaskDef, TaskType } from "../types";
import { TerminateTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { WaitTaskDef, TaskType } from "../types";
import { WaitTaskDef, TaskType } from "../../common/types";
import { nameTaskNameGenerator } from "./common";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { WorkflowDef } from "../types";
import { WorkflowDef } from "../../common/types";

export const workflowGenerator = (
overrides: Partial<WorkflowDef>
Expand Down
Loading

0 comments on commit 7a0303d

Please sign in to comment.