Skip to content

Commit 89bea05

Browse files
committed
Validation (+Update & format)
- updated github url/ref in download schema tool - added formatting & testing after update-code-base - updated code base - added ajv-formats for uri validation, closes #101 - added workflow validation before serializing, closes #102 - added default values in builders, closes #104 #99 #95 - removed object literals from README, closes #106 Signed-off-by: JBBianchi <[email protected]>
1 parent 6cd783a commit 89bea05

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+317
-136
lines changed

README.md

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -73,31 +73,6 @@ const workflow: Specification.Workflow = workflowBuilder()
7373
```
7474

7575

76-
#### Create Workflow using object literals
77-
78-
```typescript
79-
import { Specification } from '@severlessworkflow/sdk-typescript';
80-
81-
const workflow: Specification.Workflow = {
82-
id: 'helloworld',
83-
version: '1.0',
84-
name: 'Hello World Workflow',
85-
description: 'Inject Hello World',
86-
start: 'Hello State',
87-
states: [
88-
{
89-
type: 'inject',
90-
name: 'Hello State',
91-
end: true,
92-
data: {
93-
result: "Hello World!"
94-
}
95-
} as Specification.Injectstate
96-
]
97-
};
98-
```
99-
100-
10176
#### Load a file JSON/YAML to a Workflow instance
10277

10378
```typescript

package-lock.json

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"tools:download-schemas": "npx ts-node --project ./tools/tsconfig.json ./tools/download-schemas.ts",
1919
"tools:generate-definitions": "npx ts-node --project ./tools/tsconfig.json ./tools/generate-definitions.ts",
2020
"tools:generate-builders": "npx ts-node --project ./tools/tsconfig.json ./tools/generate-builders.ts",
21-
"update-code-base": "npm run tools:download-schemas && npm run tools:generate-definitions && npm run tools:generate-builders",
21+
"update-code-base": "npm run tools:download-schemas && npm run tools:generate-definitions && npm run tools:generate-builders && npm run format && npm run test",
2222
"format": "npx prettier --write \"**/*.ts\"",
2323
"lint": "npx eslint . --ext .ts && npx prettier --check \"**/*.ts\"",
2424
"pretest": "npx rimraf out-tsc",
@@ -33,6 +33,7 @@
3333
},
3434
"dependencies": {
3535
"ajv": "^8.1.0",
36+
"ajv-formats": "^2.1.0",
3637
"js-yaml": "^4.1.0"
3738
},
3839
"devDependencies": {

src/lib/builders/callbackstate-builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { validators } from '../validators';
2828
function callbackstateBuildingFn(data: Specification.Callbackstate): () => Specification.Callbackstate {
2929
return () => {
3030
data.type = 'callback';
31+
data.usedForCompensation = data.usedForCompensation || false;
3132
const validate = validators.get('Callbackstate');
3233
// TODO: ignore validation if no validator or throw ?
3334
if (!validate) return data;

src/lib/builders/databasedswitch-builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { validators } from '../validators';
2828
function databasedswitchBuildingFn(data: Specification.Databasedswitch): () => Specification.Databasedswitch {
2929
return () => {
3030
data.type = 'switch';
31+
data.usedForCompensation = data.usedForCompensation || false;
3132
const validate = validators.get('Databasedswitch');
3233
// TODO: ignore validation if no validator or throw ?
3334
if (!validate) return data;

src/lib/builders/delaystate-builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { validators } from '../validators';
2828
function delaystateBuildingFn(data: Specification.Delaystate): () => Specification.Delaystate {
2929
return () => {
3030
data.type = 'delay';
31+
data.usedForCompensation = data.usedForCompensation || false;
3132
const validate = validators.get('Delaystate');
3233
// TODO: ignore validation if no validator or throw ?
3334
if (!validate) return data;

src/lib/builders/end-builder.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ import { validators } from '../validators';
2727
*/
2828
function endBuildingFn(data: Specification.End): () => Specification.End {
2929
return () => {
30+
if (typeof data !== typeof true) {
31+
(data as any).terminate = (data as any).terminate || false;
32+
(data as any).compensate = (data as any).compensate || false;
33+
}
3034
const validate = validators.get('End');
3135
// TODO: ignore validation if no validator or throw ?
3236
if (!validate) return data;

src/lib/builders/eventbasedswitch-builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { validators } from '../validators';
2828
function eventbasedswitchBuildingFn(data: Specification.Eventbasedswitch): () => Specification.Eventbasedswitch {
2929
return () => {
3030
data.type = 'switch';
31+
data.usedForCompensation = data.usedForCompensation || false;
3132
const validate = validators.get('Eventbasedswitch');
3233
// TODO: ignore validation if no validator or throw ?
3334
if (!validate) return data;

src/lib/builders/eventstate-builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { validators } from '../validators';
2828
function eventstateBuildingFn(data: Specification.Eventstate): () => Specification.Eventstate {
2929
return () => {
3030
data.type = 'event';
31+
if (data.exclusive == null) data.exclusive = true;
3132
const validate = validators.get('Eventstate');
3233
// TODO: ignore validation if no validator or throw ?
3334
if (!validate) return data;

src/lib/builders/exectimeout-builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { validators } from '../validators';
2727
*/
2828
function exectimeoutBuildingFn(data: Specification.Exectimeout): () => Specification.Exectimeout {
2929
return () => {
30+
data.interrupt = data.interrupt || false;
3031
const validate = validators.get('Exectimeout');
3132
// TODO: ignore validation if no validator or throw ?
3233
if (!validate) return data;

0 commit comments

Comments
 (0)