0.0.16 • Published 4 years ago

@zxteam/workflow.core v0.0.16

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

ZXTeam's Workflow

Meet Requirements

  • Debuggability - LocalWorkflowVirtualMachine provides linear stack trace
  • Persistable - Allows to persist runtime state, and restore in future
  • Traceability - Allow

Samples

Example 1

	interface Context { readonly appName: string; }
	interface PersonContext { name: string; age: number; }

	class PersonRenderActivity extends Activity<PersonContext & Context> {
		protected onExecute(cancellationToken: CancellationToken, context: PersonContext & Context): void | Promise<void> {
			console.log(`${context.appName} The ${context.name} is ${context.age} years old.`);
		}
	}

	const workflow = new ContextActivity<Context, PersonContext>({
		initContext: { name: "Noname", age: 42 },
		child: new WhileActivity({
			condition: new CodeActivity((ctx) => {
				console.log("Checking condition in CodeActivity");
				ctx.age++;
				if (ctx.age > 45) {
					ctx[WhileActivity.Done]();
				}
			}),
			child: new SequenceActivity({
				children: [
					new ConsoleLogActivity({ text: "one" }),
					new DelayActivity({ durationMilliseconds: 100 }),
					new ConsoleLogActivity({ text: "two" }),
					new DelayActivity({ durationMilliseconds: 200 }),
					new ConsoleLogActivity({ text: "three" }),
					new DelayActivity({ durationMilliseconds: 300 }),
					new PersonRenderActivity()
				]
			})
		})
	});

	console.log("LocalWorkflowRuntime.invoke(activity, context)");
	const appContext: Context = { appName: "example1" };
	await LocalWorkflowRuntime.invoke(dummyCancellationToken, workflow, appContext);

Result:

LocalWorkflowRuntime.invoke(activity, context)
Checking condition in CodeActivity
one
two
three
example1 The Noname is 43 years old.
Checking condition in CodeActivity
one
two
three
example1 The Noname is 44 years old.
Checking condition in CodeActivity
one
two
three
example1 The Noname is 45 years old.
Checking condition in CodeActivity

{SHA}ucpU7gua0rlJJsOaFqhVkoib6LI=

0.0.15

4 years ago

0.0.16

4 years ago

0.0.13

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.10

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

5 years ago