@mat3ra/wode 2025.10.2-0 → 2025.10.2-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -33
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,27 +1,44 @@
|
|
|
1
|
-
[](https://badge.fury.io/js/%40mat3ra%2Fwode)
|
|
2
2
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
3
3
|
|
|
4
|
-
# wode
|
|
4
|
+
# wode
|
|
5
5
|
|
|
6
|
-
WOrkflow DEfinitions
|
|
6
|
+
WOrkflow DEfinitions - houses the definitions for:
|
|
7
7
|
|
|
8
|
+
- `Workflow` - a workflow to be executed
|
|
9
|
+
- `Subworkflow` - a logical collection of units of work defined by a unique `Applidation`, and `Model`
|
|
10
|
+
- `Units` - one of the following:
|
|
11
|
+
- `AssertionUnit` - assert an expression
|
|
12
|
+
- `AssignmentUnit` - assign a value
|
|
13
|
+
- `ConditionUnit` - evaluate a condition
|
|
14
|
+
- `IOUnit` - Read or write data
|
|
15
|
+
- `ExecutionUnit` - execute an `ADe` `Application`
|
|
16
|
+
- `MapUnit` - create a dynamic number of units based on output of a previous unit
|
|
17
|
+
- `ReduceUnit` - collect the results of a fanned out operation
|
|
18
|
+
|
|
19
|
+
Workflow configurations are processed at build time using `build_workflows.js` and compiled into
|
|
20
|
+
a single JS file so that workflow configurations can be accessed in the browser runtime, not just
|
|
21
|
+
in a NodeJS process.
|
|
22
|
+
|
|
23
|
+
The relevant data parameterizing supported entities is housed in the
|
|
24
|
+
[Standata](https://github.com/Exabyte-io/standata) repository.
|
|
8
25
|
|
|
9
26
|
## Installation
|
|
10
27
|
|
|
11
|
-
For usage within a
|
|
28
|
+
For usage within a JavaScript project:
|
|
12
29
|
|
|
13
30
|
```bash
|
|
14
|
-
npm install @
|
|
31
|
+
npm install @mat3ra/wode
|
|
15
32
|
```
|
|
16
33
|
|
|
17
34
|
For development:
|
|
18
35
|
|
|
19
36
|
```bash
|
|
20
|
-
git clone https://github.com/Exabyte-io/wode.
|
|
37
|
+
git clone https://github.com/Exabyte-io/wode.git
|
|
21
38
|
```
|
|
22
39
|
|
|
23
40
|
|
|
24
|
-
##
|
|
41
|
+
## Contributions
|
|
25
42
|
|
|
26
43
|
This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.
|
|
27
44
|
|
|
@@ -46,7 +63,7 @@ npm run transpile
|
|
|
46
63
|
npm run test
|
|
47
64
|
```
|
|
48
65
|
|
|
49
|
-
|
|
66
|
+
### Using Linter
|
|
50
67
|
|
|
51
68
|
Linter setup will prevent committing files that don't adhere to the code standard. It will
|
|
52
69
|
attempt to fix what it can automatically prior to the commit in order to reduce diff noise. This can lead to "unexpected" behavior where a
|
|
@@ -80,30 +97,9 @@ In which case, you may need to then add the linter edits to your staging, which
|
|
|
80
97
|
file back to identical with the base branch, resulting in no staged changes whatsoever.
|
|
81
98
|
|
|
82
99
|
|
|
83
|
-
|
|
84
|
-
====
|
|
85
|
-
|
|
86
|
-
The`WoDe` package synthesizes other entity definition (`De`) libraries
|
|
87
|
-
in the Mat3ra workflow ecosystem and implements the following entities:
|
|
88
|
-
|
|
89
|
-
- `Workflow` - a workflow to be executed on the Mat3ra platform
|
|
90
|
-
- `Subworkflow` - a logical collection of units of work defined by a unique `Applidation`
|
|
91
|
-
- `Units` - one of the following:
|
|
92
|
-
- `AssertionUnit` - assert an expression
|
|
93
|
-
- `AssignmentUnit` - assign a value
|
|
94
|
-
- `ConditionUnit` - evaluate a condition
|
|
95
|
-
- `IOUnit` - Read or write data
|
|
96
|
-
- `ExecutionUnit` - execute an `ADe` `Application`
|
|
97
|
-
- `MapUnit` - create a dynamic number of units based on output of a previous unit
|
|
98
|
-
- `ReduceUnit` - collect the results of a fanned out operation
|
|
99
|
-
|
|
100
|
-
Workflow configurations are processed at build time using `build_workflows.js` and compiled into
|
|
101
|
-
a single JS file so that workflow configurations can be accessed in the browser runtime, not just
|
|
102
|
-
in a NodeJS process.
|
|
103
|
-
|
|
100
|
+
## Other
|
|
104
101
|
|
|
105
|
-
Workflow Spec
|
|
106
|
-
-------------
|
|
102
|
+
### Workflow Spec
|
|
107
103
|
|
|
108
104
|
Workflows defined as configuration conform to the following specification:
|
|
109
105
|
|
|
@@ -152,8 +148,7 @@ Workflows defined as configuration conform to the following specification:
|
|
|
152
148
|
- `[value]: {{constructorValue}}: Any` - value for a given constructor parameter
|
|
153
149
|
|
|
154
150
|
|
|
155
|
-
Workflow Creation
|
|
156
|
-
-----------------
|
|
151
|
+
### Workflow Creation
|
|
157
152
|
|
|
158
153
|
The Workflow instances associated with the workflow configurations are built by
|
|
159
154
|
the `createWorkflows` function traversing all three levels (workflow, subworkflow, unit):
|
package/package.json
CHANGED