@griffin-app/griffin-ts 0.1.1 → 0.1.3
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/dist/assertions.js +7 -13
- package/dist/assertions.js.map +1 -1
- package/dist/builder.js +10 -16
- package/dist/builder.js.map +1 -1
- package/dist/constants.js +2 -5
- package/dist/constants.js.map +1 -1
- package/dist/example-sequential.js +64 -66
- package/dist/example-sequential.js.map +1 -1
- package/dist/example.js +14 -16
- package/dist/example.js.map +1 -1
- package/dist/frequency.js +9 -13
- package/dist/frequency.js.map +1 -1
- package/dist/http-methods.js +5 -8
- package/dist/http-methods.js.map +1 -1
- package/dist/index.js +11 -40
- package/dist/index.js.map +1 -1
- package/dist/response-formats.js +3 -6
- package/dist/response-formats.js.map +1 -1
- package/dist/schema-exports.js +4 -34
- package/dist/schema-exports.js.map +1 -1
- package/dist/schema.js +137 -140
- package/dist/schema.js.map +1 -1
- package/dist/secrets.js +2 -6
- package/dist/secrets.js.map +1 -1
- package/dist/sequential-builder.js +14 -17
- package/dist/sequential-builder.js.map +1 -1
- package/dist/shared.js +5 -11
- package/dist/shared.js.map +1 -1
- package/dist/type-exports.js +1 -2
- package/dist/type-exports.js.map +1 -1
- package/dist/variable.js +2 -6
- package/dist/variable.js.map +1 -1
- package/dist/wait.js +1 -4
- package/dist/wait.js.map +1 -1
- package/package.json +2 -1
- package/tsconfig.json +2 -2
package/dist/assertions.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Rich assertion DSL for constructing type-safe test assertions with JSONPath support.
|
|
4
3
|
*
|
|
@@ -7,14 +6,10 @@
|
|
|
7
6
|
* - Assert: Builder for creating assertions with fluent API
|
|
8
7
|
* - Support for unary and binary predicates with negation
|
|
9
8
|
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.AssertBuilder = exports.BinaryPredicateOperator = exports.UnaryPredicate = void 0;
|
|
12
|
-
exports.createStateProxy = createStateProxy;
|
|
13
|
-
exports.Assert = Assert;
|
|
14
9
|
/**
|
|
15
10
|
* Unary predicates that check a property without comparing to a value
|
|
16
11
|
*/
|
|
17
|
-
var UnaryPredicate;
|
|
12
|
+
export var UnaryPredicate;
|
|
18
13
|
(function (UnaryPredicate) {
|
|
19
14
|
UnaryPredicate["IS_NULL"] = "IS_NULL";
|
|
20
15
|
UnaryPredicate["IS_NOT_NULL"] = "IS_NOT_NULL";
|
|
@@ -22,11 +17,11 @@ var UnaryPredicate;
|
|
|
22
17
|
UnaryPredicate["IS_FALSE"] = "IS_FALSE";
|
|
23
18
|
UnaryPredicate["IS_EMPTY"] = "IS_EMPTY";
|
|
24
19
|
UnaryPredicate["IS_NOT_EMPTY"] = "IS_NOT_EMPTY";
|
|
25
|
-
})(UnaryPredicate || (
|
|
20
|
+
})(UnaryPredicate || (UnaryPredicate = {}));
|
|
26
21
|
/**
|
|
27
22
|
* Binary predicate operators that compare against an expected value
|
|
28
23
|
*/
|
|
29
|
-
var BinaryPredicateOperator;
|
|
24
|
+
export var BinaryPredicateOperator;
|
|
30
25
|
(function (BinaryPredicateOperator) {
|
|
31
26
|
BinaryPredicateOperator["EQUAL"] = "EQUAL";
|
|
32
27
|
BinaryPredicateOperator["NOT_EQUAL"] = "NOT_EQUAL";
|
|
@@ -40,7 +35,7 @@ var BinaryPredicateOperator;
|
|
|
40
35
|
BinaryPredicateOperator["NOT_STARTS_WITH"] = "NOT_STARTS_WITH";
|
|
41
36
|
BinaryPredicateOperator["ENDS_WITH"] = "ENDS_WITH";
|
|
42
37
|
BinaryPredicateOperator["NOT_ENDS_WITH"] = "NOT_ENDS_WITH";
|
|
43
|
-
})(BinaryPredicateOperator || (
|
|
38
|
+
})(BinaryPredicateOperator || (BinaryPredicateOperator = {}));
|
|
44
39
|
// ============================================================================
|
|
45
40
|
// State Proxy
|
|
46
41
|
// ============================================================================
|
|
@@ -86,7 +81,7 @@ function createNodeResultProxy(nodeId) {
|
|
|
86
81
|
/**
|
|
87
82
|
* Creates a state proxy for the given node names
|
|
88
83
|
*/
|
|
89
|
-
function createStateProxy(nodeNames) {
|
|
84
|
+
export function createStateProxy(nodeNames) {
|
|
90
85
|
const proxy = new Proxy({}, {
|
|
91
86
|
get(_, nodeName) {
|
|
92
87
|
if (typeof nodeName === "symbol") {
|
|
@@ -100,7 +95,7 @@ function createStateProxy(nodeNames) {
|
|
|
100
95
|
// ============================================================================
|
|
101
96
|
// Assert Builder
|
|
102
97
|
// ============================================================================
|
|
103
|
-
class AssertBuilder {
|
|
98
|
+
export class AssertBuilder {
|
|
104
99
|
descriptor;
|
|
105
100
|
negated = false;
|
|
106
101
|
constructor(descriptor) {
|
|
@@ -208,7 +203,6 @@ class AssertBuilder {
|
|
|
208
203
|
};
|
|
209
204
|
}
|
|
210
205
|
}
|
|
211
|
-
exports.AssertBuilder = AssertBuilder;
|
|
212
206
|
/**
|
|
213
207
|
* Creates an assertion builder from a state proxy reference
|
|
214
208
|
*
|
|
@@ -220,7 +214,7 @@ exports.AssertBuilder = AssertBuilder;
|
|
|
220
214
|
* Assert(state["create_user"].status).equals(201)
|
|
221
215
|
* Assert(state["create_user"].headers["content-type"]).contains("application/json")
|
|
222
216
|
*/
|
|
223
|
-
function Assert(proxyRef) {
|
|
217
|
+
export function Assert(proxyRef) {
|
|
224
218
|
const descriptor = proxyRef[PATH_SYMBOL];
|
|
225
219
|
if (!descriptor) {
|
|
226
220
|
throw new Error("Assert() must be called with a reference from the state proxy");
|
package/dist/assertions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":"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"}
|
package/dist/builder.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createGraphBuilder = createGraphBuilder;
|
|
4
|
-
exports.Endpoint = Endpoint;
|
|
5
|
-
exports.Wait = Wait;
|
|
6
|
-
exports.Assertion = Assertion;
|
|
7
|
-
const schema_js_1 = require("./schema.js");
|
|
1
|
+
import { ResponseFormat, NodeType, TEST_PLAN_VERSION, } from "./schema.js";
|
|
8
2
|
/**
|
|
9
3
|
* Internal implementation class for TestBuilder.
|
|
10
4
|
* Uses explicit type assertions at method boundaries to maintain phantom type tracking.
|
|
@@ -35,7 +29,7 @@ class TestBuilderImpl {
|
|
|
35
29
|
const buildFn = () => {
|
|
36
30
|
return {
|
|
37
31
|
name,
|
|
38
|
-
version:
|
|
32
|
+
version: TEST_PLAN_VERSION,
|
|
39
33
|
frequency,
|
|
40
34
|
locations,
|
|
41
35
|
nodes,
|
|
@@ -69,7 +63,7 @@ class TestBuilderImpl {
|
|
|
69
63
|
* .build();
|
|
70
64
|
* ```
|
|
71
65
|
*/
|
|
72
|
-
function createGraphBuilder(config) {
|
|
66
|
+
export function createGraphBuilder(config) {
|
|
73
67
|
return new TestBuilderImpl(config);
|
|
74
68
|
}
|
|
75
69
|
/**
|
|
@@ -90,9 +84,9 @@ function createGraphBuilder(config) {
|
|
|
90
84
|
* }));
|
|
91
85
|
* ```
|
|
92
86
|
*/
|
|
93
|
-
function Endpoint(config) {
|
|
87
|
+
export function Endpoint(config) {
|
|
94
88
|
return {
|
|
95
|
-
type:
|
|
89
|
+
type: NodeType.ENDPOINT,
|
|
96
90
|
method: config.method,
|
|
97
91
|
path: config.path,
|
|
98
92
|
base: config.base,
|
|
@@ -131,9 +125,9 @@ function toMilliseconds(duration) {
|
|
|
131
125
|
* builder.addNode("pause", Wait(2000));
|
|
132
126
|
* ```
|
|
133
127
|
*/
|
|
134
|
-
function Wait(duration) {
|
|
128
|
+
export function Wait(duration) {
|
|
135
129
|
return {
|
|
136
|
-
type:
|
|
130
|
+
type: NodeType.WAIT,
|
|
137
131
|
duration_ms: toMilliseconds(duration),
|
|
138
132
|
};
|
|
139
133
|
}
|
|
@@ -153,11 +147,11 @@ function Wait(duration) {
|
|
|
153
147
|
* ]));
|
|
154
148
|
* ```
|
|
155
149
|
*/
|
|
156
|
-
function Assertion(assertions) {
|
|
150
|
+
export function Assertion(assertions) {
|
|
157
151
|
return {
|
|
158
|
-
type:
|
|
152
|
+
type: NodeType.ASSERTION,
|
|
159
153
|
assertions: assertions.map((assertion) => ({
|
|
160
|
-
assertionType:
|
|
154
|
+
assertionType: ResponseFormat.JSON,
|
|
161
155
|
...assertion,
|
|
162
156
|
})),
|
|
163
157
|
};
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.END = exports.START = void 0;
|
|
4
|
-
exports.START = "__START__";
|
|
5
|
-
exports.END = "__END__";
|
|
1
|
+
export const START = "__START__";
|
|
2
|
+
export const END = "__END__";
|
|
6
3
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,WAAoB,CAAC;AAC1C,MAAM,CAAC,MAAM,GAAG,GAAG,SAAkB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Example usage of the Sequential Test Builder
|
|
4
3
|
*
|
|
@@ -8,25 +7,24 @@
|
|
|
8
7
|
* For more complex graphs with parallel execution or conditional flows,
|
|
9
8
|
* see example.ts which uses createGraphBuilder.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
const index_1 = require("./index");
|
|
10
|
+
import { GET, POST, createTestBuilder, Json, Frequency, WaitDuration, Assert, variable, } from "./index";
|
|
13
11
|
// ============================================================================
|
|
14
12
|
// Example 1: Simple health check with new assertion API
|
|
15
13
|
// ============================================================================
|
|
16
|
-
const healthCheck =
|
|
14
|
+
const healthCheck = createTestBuilder({
|
|
17
15
|
name: "health-check",
|
|
18
|
-
frequency:
|
|
16
|
+
frequency: Frequency.every(1).minute(),
|
|
19
17
|
})
|
|
20
18
|
.request("health", {
|
|
21
|
-
method:
|
|
22
|
-
base:
|
|
23
|
-
response_format:
|
|
19
|
+
method: GET,
|
|
20
|
+
base: variable("api-service"),
|
|
21
|
+
response_format: Json,
|
|
24
22
|
path: "/health",
|
|
25
23
|
})
|
|
26
24
|
.assert((state) => [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
Assert(state["health"].status).equals(200),
|
|
26
|
+
Assert(state["health"].body["status"]).equals("ok"),
|
|
27
|
+
Assert(state["health"].headers["content-type"]).contains("application/json"),
|
|
30
28
|
])
|
|
31
29
|
.build();
|
|
32
30
|
console.log("Health Check Plan:");
|
|
@@ -34,14 +32,14 @@ console.log(JSON.stringify(healthCheck, null, 2));
|
|
|
34
32
|
// ============================================================================
|
|
35
33
|
// Example 2: Complex sequential flow with rich assertions
|
|
36
34
|
// ============================================================================
|
|
37
|
-
const userJourney =
|
|
35
|
+
const userJourney = createTestBuilder({
|
|
38
36
|
name: "create-and-verify-user",
|
|
39
|
-
frequency:
|
|
37
|
+
frequency: Frequency.every(5).minute(),
|
|
40
38
|
})
|
|
41
39
|
.request("create_user", {
|
|
42
|
-
method:
|
|
43
|
-
base:
|
|
44
|
-
response_format:
|
|
40
|
+
method: POST,
|
|
41
|
+
base: variable("api-service"),
|
|
42
|
+
response_format: Json,
|
|
45
43
|
path: "/api/v1/users",
|
|
46
44
|
body: {
|
|
47
45
|
name: "Test User",
|
|
@@ -50,28 +48,28 @@ const userJourney = (0, index_1.createTestBuilder)({
|
|
|
50
48
|
})
|
|
51
49
|
.assert((state) => [
|
|
52
50
|
// Status code assertions
|
|
53
|
-
|
|
51
|
+
Assert(state["create_user"].status).equals(201),
|
|
54
52
|
// Body assertions with JSONPath
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
Assert(state["create_user"].body["data"]["id"]).not.isNull(),
|
|
54
|
+
Assert(state["create_user"].body["data"]["name"]).equals("Test User"),
|
|
55
|
+
Assert(state["create_user"].body["data"]["email"]).equals("test@example.com"),
|
|
56
|
+
Assert(state["create_user"].body["data"]["created_at"]).isDefined(),
|
|
59
57
|
// Header assertions
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
Assert(state["create_user"].headers["content-type"]).contains("application/json"),
|
|
59
|
+
Assert(state["create_user"].headers["location"]).startsWith("/api/v1/users/"),
|
|
62
60
|
])
|
|
63
|
-
.wait("pause",
|
|
61
|
+
.wait("pause", WaitDuration.seconds(2))
|
|
64
62
|
.request("get_user", {
|
|
65
|
-
method:
|
|
66
|
-
base:
|
|
67
|
-
response_format:
|
|
63
|
+
method: GET,
|
|
64
|
+
base: variable("api-service"),
|
|
65
|
+
response_format: Json,
|
|
68
66
|
path: "/api/v1/users/test@example.com",
|
|
69
67
|
})
|
|
70
68
|
.assert((state) => [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
Assert(state["get_user"].status).equals(200),
|
|
70
|
+
Assert(state["get_user"].body["data"]["name"]).equals("Test User"),
|
|
71
|
+
Assert(state["get_user"].body["data"]["active"]).isTrue(),
|
|
72
|
+
Assert(state["get_user"].body["data"]["deleted"]).not.isTrue(),
|
|
75
73
|
])
|
|
76
74
|
.build();
|
|
77
75
|
console.log("\nUser Journey Plan:");
|
|
@@ -79,28 +77,28 @@ console.log(JSON.stringify(userJourney, null, 2));
|
|
|
79
77
|
// ============================================================================
|
|
80
78
|
// Example 3: Advanced assertions with comparisons
|
|
81
79
|
// ============================================================================
|
|
82
|
-
const performanceCheck =
|
|
80
|
+
const performanceCheck = createTestBuilder({
|
|
83
81
|
name: "performance-check",
|
|
84
|
-
frequency:
|
|
82
|
+
frequency: Frequency.every(10).minute(),
|
|
85
83
|
})
|
|
86
84
|
.request("api_call", {
|
|
87
|
-
method:
|
|
88
|
-
base:
|
|
89
|
-
response_format:
|
|
85
|
+
method: GET,
|
|
86
|
+
base: variable("api-service"),
|
|
87
|
+
response_format: Json,
|
|
90
88
|
path: "/api/v1/metrics",
|
|
91
89
|
})
|
|
92
90
|
.assert((state) => [
|
|
93
91
|
// Numeric comparisons
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
Assert(state["api_call"].body["response_time_ms"]).lessThan(500),
|
|
93
|
+
Assert(state["api_call"].body["error_rate"]).lessThanOrEqual(0.01),
|
|
94
|
+
Assert(state["api_call"].body["success_count"]).greaterThan(0),
|
|
95
|
+
Assert(state["api_call"].body["memory_usage_mb"]).lessThan(1024),
|
|
98
96
|
// String assertions
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
Assert(state["api_call"].body["version"]).startsWith("v2."),
|
|
98
|
+
Assert(state["api_call"].body["deployment"]).not.equals(""),
|
|
99
|
+
Assert(state["api_call"].body["environment"]).contains("prod"),
|
|
102
100
|
// Array/collection assertions
|
|
103
|
-
|
|
101
|
+
Assert(state["api_call"].body["endpoints"]).not.isEmpty(),
|
|
104
102
|
])
|
|
105
103
|
.build();
|
|
106
104
|
console.log("\nPerformance Check Plan:");
|
|
@@ -108,14 +106,14 @@ console.log(JSON.stringify(performanceCheck, null, 2));
|
|
|
108
106
|
// ============================================================================
|
|
109
107
|
// Example 4: Multi-step API test with state dependencies
|
|
110
108
|
// ============================================================================
|
|
111
|
-
const orderWorkflow =
|
|
109
|
+
const orderWorkflow = createTestBuilder({
|
|
112
110
|
name: "order-workflow",
|
|
113
|
-
frequency:
|
|
111
|
+
frequency: Frequency.every(30).minute(),
|
|
114
112
|
})
|
|
115
113
|
.request("create_order", {
|
|
116
|
-
method:
|
|
117
|
-
base:
|
|
118
|
-
response_format:
|
|
114
|
+
method: POST,
|
|
115
|
+
base: variable("api-service"),
|
|
116
|
+
response_format: Json,
|
|
119
117
|
path: "/api/v1/orders",
|
|
120
118
|
body: {
|
|
121
119
|
items: [{ product_id: "ABC123", quantity: 2 }],
|
|
@@ -123,36 +121,36 @@ const orderWorkflow = (0, index_1.createTestBuilder)({
|
|
|
123
121
|
},
|
|
124
122
|
})
|
|
125
123
|
.assert((state) => [
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
124
|
+
Assert(state["create_order"].status).equals(201),
|
|
125
|
+
Assert(state["create_order"].body["order_id"]).isDefined(),
|
|
126
|
+
Assert(state["create_order"].body["status"]).equals("pending"),
|
|
127
|
+
Assert(state["create_order"].body["total"]).greaterThan(0),
|
|
130
128
|
])
|
|
131
129
|
.request("confirm_order", {
|
|
132
|
-
method:
|
|
133
|
-
base:
|
|
134
|
-
response_format:
|
|
130
|
+
method: POST,
|
|
131
|
+
base: variable("api-service"),
|
|
132
|
+
response_format: Json,
|
|
135
133
|
path: "/api/v1/orders/confirm",
|
|
136
134
|
body: {
|
|
137
135
|
order_id: "${create_order.body.order_id}", // Future: template interpolation
|
|
138
136
|
},
|
|
139
137
|
})
|
|
140
138
|
.assert((state) => [
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
Assert(state["confirm_order"].status).equals(200),
|
|
140
|
+
Assert(state["confirm_order"].body["status"]).equals("confirmed"),
|
|
141
|
+
Assert(state["confirm_order"].body["confirmed_at"]).not.isNull(),
|
|
144
142
|
])
|
|
145
|
-
.wait("processing_time",
|
|
143
|
+
.wait("processing_time", WaitDuration.seconds(5))
|
|
146
144
|
.request("check_order", {
|
|
147
|
-
method:
|
|
148
|
-
base:
|
|
149
|
-
response_format:
|
|
145
|
+
method: GET,
|
|
146
|
+
base: variable("api-service"),
|
|
147
|
+
response_format: Json,
|
|
150
148
|
path: "/api/v1/orders/${create_order.body.order_id}",
|
|
151
149
|
})
|
|
152
150
|
.assert((state) => [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
151
|
+
Assert(state["check_order"].status).equals(200),
|
|
152
|
+
Assert(state["check_order"].body["status"]).not.equals("pending"),
|
|
153
|
+
Assert(state["check_order"].body["processed"]).isTrue(),
|
|
156
154
|
])
|
|
157
155
|
.build();
|
|
158
156
|
console.log("\nOrder Workflow Plan:");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-sequential.js","sourceRoot":"","sources":["../src/example-sequential.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example-sequential.js","sourceRoot":"","sources":["../src/example-sequential.ts"],"names":[],"mappings":"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"}
|
package/dist/example.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Example usage of the griffin Test System DSL
|
|
4
3
|
*
|
|
@@ -6,31 +5,30 @@
|
|
|
6
5
|
* In practice, test files would be placed in __griffin__ subdirectories
|
|
7
6
|
* and discovered by the CLI tool.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const plan = (0, index_1.createGraphBuilder)({
|
|
8
|
+
import { GET, POST, createGraphBuilder, Endpoint, Wait, Json, START, END, Frequency, WaitDuration, variable, } from "./index";
|
|
9
|
+
const plan = createGraphBuilder({
|
|
12
10
|
name: "foo-bar-check",
|
|
13
|
-
frequency:
|
|
11
|
+
frequency: Frequency.every(1).minute(),
|
|
14
12
|
})
|
|
15
|
-
.addNode("create_foo",
|
|
16
|
-
method:
|
|
17
|
-
base:
|
|
18
|
-
response_format:
|
|
13
|
+
.addNode("create_foo", Endpoint({
|
|
14
|
+
method: POST,
|
|
15
|
+
base: variable("api-service"),
|
|
16
|
+
response_format: Json,
|
|
19
17
|
path: "/api/v1/foo",
|
|
20
18
|
}))
|
|
21
|
-
.addNode("get_foo",
|
|
22
|
-
method:
|
|
23
|
-
base:
|
|
24
|
-
response_format:
|
|
19
|
+
.addNode("get_foo", Endpoint({
|
|
20
|
+
method: GET,
|
|
21
|
+
base: variable("api-service"),
|
|
22
|
+
response_format: Json,
|
|
25
23
|
path: "/api/v1/foo",
|
|
26
24
|
}))
|
|
27
|
-
.addNode("first_wait",
|
|
25
|
+
.addNode("first_wait", Wait(WaitDuration.minutes(1)))
|
|
28
26
|
// Note: Assertion nodes with the rich DSL are best used with the Sequential Builder
|
|
29
27
|
// For graph builder, assertions can be manually constructed with SerializedAssertion format
|
|
30
|
-
.addEdge(
|
|
28
|
+
.addEdge(START, "create_foo")
|
|
31
29
|
.addEdge("create_foo", "get_foo")
|
|
32
30
|
.addEdge("get_foo", "first_wait")
|
|
33
|
-
.addEdge("first_wait",
|
|
31
|
+
.addEdge("first_wait", END)
|
|
34
32
|
.build();
|
|
35
33
|
console.log(JSON.stringify(plan, null, 2));
|
|
36
34
|
//# sourceMappingURL=example.js.map
|
package/dist/example.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,IAAI,EAEJ,IAAI,EACJ,KAAK,EACL,GAAG,EACH,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,MAAM,SAAS,CAAC;AAEjB,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAC9B,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;CACvC,CAAC;KACC,OAAO,CACN,YAAY,EACZ,QAAQ,CAAC;IACP,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC;IAC7B,eAAe,EAAE,IAAI;IACrB,IAAI,EAAE,aAAa;CACpB,CAAC,CACH;KACA,OAAO,CACN,SAAS,EACT,QAAQ,CAAC;IACP,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC;IAC7B,eAAe,EAAE,IAAI;IACrB,IAAI,EAAE,aAAa;CACpB,CAAC,CACH;KACA,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,oFAAoF;IACpF,4FAA4F;KAC3F,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;KAC5B,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;KAChC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;KAChC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;KAC1B,KAAK,EAAE,CAAC;AAEX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/frequency.js
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Frequency = exports.FrequencyBuilder = void 0;
|
|
4
|
-
const schema_1 = require("./schema");
|
|
5
|
-
class FrequencyBuilder {
|
|
1
|
+
import { FrequencyUnit } from "./schema";
|
|
2
|
+
export class FrequencyBuilder {
|
|
6
3
|
value;
|
|
7
4
|
constructor(value) {
|
|
8
5
|
this.value = value;
|
|
9
6
|
}
|
|
10
7
|
minute() {
|
|
11
|
-
return { every: this.value, unit:
|
|
8
|
+
return { every: this.value, unit: FrequencyUnit.MINUTE };
|
|
12
9
|
}
|
|
13
10
|
minutes() {
|
|
14
|
-
return { every: this.value, unit:
|
|
11
|
+
return { every: this.value, unit: FrequencyUnit.MINUTE };
|
|
15
12
|
}
|
|
16
13
|
hour() {
|
|
17
|
-
return { every: this.value, unit:
|
|
14
|
+
return { every: this.value, unit: FrequencyUnit.HOUR };
|
|
18
15
|
}
|
|
19
16
|
hours() {
|
|
20
|
-
return { every: this.value, unit:
|
|
17
|
+
return { every: this.value, unit: FrequencyUnit.HOUR };
|
|
21
18
|
}
|
|
22
19
|
day() {
|
|
23
|
-
return { every: this.value, unit:
|
|
20
|
+
return { every: this.value, unit: FrequencyUnit.DAY };
|
|
24
21
|
}
|
|
25
22
|
days() {
|
|
26
|
-
return { every: this.value, unit:
|
|
23
|
+
return { every: this.value, unit: FrequencyUnit.DAY };
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
exports.FrequencyBuilder = FrequencyBuilder;
|
|
30
26
|
// Export builder as Frequency for convenience
|
|
31
|
-
|
|
27
|
+
export const Frequency = {
|
|
32
28
|
every: (value) => new FrequencyBuilder(value),
|
|
33
29
|
};
|
|
34
30
|
//# sourceMappingURL=frequency.js.map
|
package/dist/frequency.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frequency.js","sourceRoot":"","sources":["../src/frequency.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frequency.js","sourceRoot":"","sources":["../src/frequency.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,OAAO,gBAAgB;IACnB,KAAK,CAAS;IAEtB,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,KAAK;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,GAAG;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;IAED,IAAI;QACF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;CACF;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC;CACtD,CAAC"}
|
package/dist/http-methods.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.PUT = "PUT";
|
|
7
|
-
exports.DELETE = "DELETE";
|
|
8
|
-
exports.PATCH = "PATCH";
|
|
1
|
+
export const GET = "GET";
|
|
2
|
+
export const POST = "POST";
|
|
3
|
+
export const PUT = "PUT";
|
|
4
|
+
export const DELETE = "DELETE";
|
|
5
|
+
export const PATCH = "PATCH";
|
|
9
6
|
//# sourceMappingURL=http-methods.js.map
|
package/dist/http-methods.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-methods.js","sourceRoot":"","sources":["../src/http-methods.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http-methods.js","sourceRoot":"","sources":["../src/http-methods.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,GAAG,GAAG,KAAc,CAAC;AAClC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAe,CAAC;AACpC,MAAM,CAAC,MAAM,GAAG,GAAG,KAAc,CAAC;AAClC,MAAM,CAAC,MAAM,MAAM,GAAG,QAAiB,CAAC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAgB,CAAC"}
|