@hatchet-dev/typescript-sdk 0.10.0 → 0.12.0

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.
Files changed (68) hide show
  1. package/clients/admin/admin-client.d.ts +1 -0
  2. package/clients/dispatcher/dispatcher-client.d.ts +3 -0
  3. package/clients/dispatcher/dispatcher-client.js +20 -1
  4. package/clients/hatchet-client/hatchet-client.d.ts +2 -2
  5. package/clients/hatchet-client/hatchet-client.js +11 -4
  6. package/clients/listener/listener-client.d.ts +10 -4
  7. package/clients/listener/listener-client.js +45 -13
  8. package/clients/worker/worker.d.ts +12 -0
  9. package/clients/worker/worker.js +54 -2
  10. package/examples/affinity-workers.d.ts +1 -0
  11. package/examples/affinity-workers.js +93 -0
  12. package/examples/api.d.ts +1 -0
  13. package/examples/api.js +61 -0
  14. package/examples/concurrency/cancel-in-progress/concurrency-event.d.ts +1 -0
  15. package/examples/concurrency/cancel-in-progress/concurrency-event.js +37 -0
  16. package/examples/concurrency/cancel-in-progress/concurrency-worker.d.ts +1 -0
  17. package/examples/concurrency/cancel-in-progress/concurrency-worker.js +66 -0
  18. package/examples/concurrency/group-round-robin/concurrency-event.d.ts +1 -0
  19. package/examples/concurrency/group-round-robin/concurrency-event.js +35 -0
  20. package/examples/concurrency/group-round-robin/concurrency-worker.d.ts +1 -0
  21. package/examples/concurrency/group-round-robin/concurrency-worker.js +61 -0
  22. package/examples/dag-worker.d.ts +1 -0
  23. package/examples/dag-worker.js +76 -0
  24. package/examples/example-event-with-results.d.ts +1 -0
  25. package/examples/example-event-with-results.js +50 -0
  26. package/examples/example-event.d.ts +1 -0
  27. package/examples/example-event.js +10 -0
  28. package/examples/fanout-worker.d.ts +1 -0
  29. package/examples/fanout-worker.js +69 -0
  30. package/examples/logger.d.ts +1 -0
  31. package/examples/logger.js +50 -0
  32. package/examples/manual-trigger.d.ts +1 -0
  33. package/examples/manual-trigger.js +46 -0
  34. package/examples/multi-workflow.d.ts +1 -0
  35. package/examples/multi-workflow.js +55 -0
  36. package/examples/namespaced-worker.d.ts +1 -0
  37. package/examples/namespaced-worker.js +56 -0
  38. package/examples/on-failure.d.ts +1 -0
  39. package/examples/on-failure.js +53 -0
  40. package/examples/playground.d.ts +1 -0
  41. package/examples/playground.js +39 -0
  42. package/examples/rate-limit/events.d.ts +1 -0
  43. package/examples/rate-limit/events.js +16 -0
  44. package/examples/rate-limit/worker.d.ts +1 -0
  45. package/examples/rate-limit/worker.js +43 -0
  46. package/examples/retries-worker.d.ts +1 -0
  47. package/examples/retries-worker.js +60 -0
  48. package/examples/simple-worker.d.ts +1 -0
  49. package/examples/simple-worker.js +55 -0
  50. package/examples/sticky-worker.d.ts +1 -0
  51. package/examples/sticky-worker.js +73 -0
  52. package/examples/stream-by-additional-meta.d.ts +1 -0
  53. package/examples/stream-by-additional-meta.js +55 -0
  54. package/package.json +24 -21
  55. package/protoc/dispatcher/dispatcher.d.ts +109 -2
  56. package/protoc/dispatcher/dispatcher.js +518 -17
  57. package/protoc/events/events.d.ts +1 -1
  58. package/protoc/events/events.js +0 -5
  59. package/protoc/google/protobuf/timestamp.js +0 -8
  60. package/protoc/workflows/workflows.d.ts +82 -1
  61. package/protoc/workflows/workflows.js +404 -9
  62. package/step.d.ts +79 -2
  63. package/step.js +90 -3
  64. package/util/config-loader/config-loader.js +9 -8
  65. package/util/workflow-run-ref.d.ts +3 -0
  66. package/util/workflow-run-ref.js +21 -4
  67. package/workflow.d.ts +116 -1
  68. package/workflow.js +6 -1
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../../../sdk"));
16
+ const hatchet = sdk_1.default.init();
17
+ const sleep = (ms) => new Promise((resolve) => {
18
+ setTimeout(resolve, ms);
19
+ });
20
+ const workflow = {
21
+ id: 'concurrency-example',
22
+ description: 'test',
23
+ on: {
24
+ event: 'concurrency:create',
25
+ },
26
+ concurrency: {
27
+ name: 'user-concurrency',
28
+ key: (ctx) => ctx.workflowInput().userId,
29
+ },
30
+ steps: [
31
+ {
32
+ name: 'step1',
33
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
34
+ const { data } = ctx.workflowInput();
35
+ const { signal } = ctx.controller;
36
+ if (signal.aborted)
37
+ throw new Error('step1 was aborted');
38
+ console.log('starting step1 and waiting 5 seconds...', data);
39
+ yield sleep(5000);
40
+ if (signal.aborted)
41
+ throw new Error('step1 was aborted');
42
+ // NOTE: the AbortController signal can be passed to many http libraries to cancel active requests
43
+ // fetch(url, { signal })
44
+ // axios.get(url, { signal })
45
+ console.log('executed step1!');
46
+ return { step1: `step1 results for ${data}!` };
47
+ }),
48
+ },
49
+ {
50
+ name: 'step2',
51
+ parents: ['step1'],
52
+ run: (ctx) => {
53
+ console.log('executed step2 after step1 returned ', ctx.stepOutput('step1'));
54
+ return { step2: 'step2 results!' };
55
+ },
56
+ },
57
+ ],
58
+ };
59
+ function main() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const worker = yield hatchet.worker('example-worker');
62
+ yield worker.registerWorkflow(workflow);
63
+ worker.start();
64
+ });
65
+ }
66
+ main();
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../../../sdk"));
16
+ const hatchet = sdk_1.default.init();
17
+ const sleep = (ms) => new Promise((resolve) => {
18
+ setTimeout(resolve, ms);
19
+ });
20
+ function main() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ // eslint-disable-next-line no-plusplus
23
+ for (let i = 0; i < 20; i++) {
24
+ let group = 0;
25
+ if (i > 10) {
26
+ group = 1;
27
+ }
28
+ hatchet.event.push('concurrency:create', {
29
+ data: `event ${i}`,
30
+ group,
31
+ });
32
+ }
33
+ });
34
+ }
35
+ main();
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../../../sdk"));
16
+ const workflow_1 = require("../../../workflow");
17
+ const hatchet = sdk_1.default.init();
18
+ const sleep = (ms) => new Promise((resolve) => {
19
+ setTimeout(resolve, ms);
20
+ });
21
+ const workflow = {
22
+ id: 'concurrency-example-rr',
23
+ description: 'test',
24
+ on: {
25
+ event: 'concurrency:create',
26
+ },
27
+ concurrency: {
28
+ name: 'user-concurrency',
29
+ key: (ctx) => ctx.workflowInput().group,
30
+ maxRuns: 2,
31
+ limitStrategy: workflow_1.ConcurrencyLimitStrategy.GROUP_ROUND_ROBIN,
32
+ },
33
+ steps: [
34
+ {
35
+ name: 'step1',
36
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
37
+ const { data } = ctx.workflowInput();
38
+ const { signal } = ctx.controller;
39
+ if (signal.aborted)
40
+ throw new Error('step1 was aborted');
41
+ console.log('starting step1 and waiting 5 seconds...', data);
42
+ yield sleep(2000);
43
+ if (signal.aborted)
44
+ throw new Error('step1 was aborted');
45
+ // NOTE: the AbortController signal can be passed to many http libraries to cancel active requests
46
+ // fetch(url, { signal })
47
+ // axios.get(url, { signal })
48
+ console.log('executed step1!');
49
+ return { step1: `step1 results for ${data}!` };
50
+ }),
51
+ },
52
+ ],
53
+ };
54
+ function main() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const worker = yield hatchet.worker('example-worker');
57
+ yield worker.registerWorkflow(workflow);
58
+ worker.start();
59
+ });
60
+ }
61
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../sdk"));
16
+ const hatchet = sdk_1.default.init({
17
+ log_level: 'OFF',
18
+ });
19
+ const sleep = (ms) => new Promise((resolve) => {
20
+ setTimeout(resolve, ms);
21
+ });
22
+ const workflow = {
23
+ id: 'dag-example',
24
+ description: 'test',
25
+ on: {
26
+ event: 'user:create',
27
+ },
28
+ steps: [
29
+ {
30
+ name: 'dag-step1',
31
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
32
+ console.log('executed step1!');
33
+ yield sleep(5000);
34
+ return { step1: 'step1' };
35
+ }),
36
+ },
37
+ {
38
+ name: 'dag-step2',
39
+ parents: ['dag-step1'],
40
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
41
+ console.log('executed step2!');
42
+ yield sleep(5000);
43
+ return { step2: 'step2' };
44
+ }),
45
+ },
46
+ {
47
+ name: 'dag-step3',
48
+ parents: ['dag-step1', 'dag-step2'],
49
+ run: (ctx) => {
50
+ console.log('executed step3!');
51
+ return { step3: 'step3' };
52
+ },
53
+ },
54
+ {
55
+ name: 'dag-step4',
56
+ parents: ['dag-step1', 'dag-step3'],
57
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
58
+ yield sleep(5000);
59
+ // simulate a really slow network call
60
+ setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {
61
+ yield sleep(1000);
62
+ ctx.playground('slow', 'call');
63
+ }), 5000);
64
+ return { step4: 'step4' };
65
+ }),
66
+ },
67
+ ],
68
+ };
69
+ function main() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const worker = yield hatchet.worker('example-worker', 1);
72
+ yield worker.registerWorkflow(workflow);
73
+ worker.start();
74
+ });
75
+ }
76
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const sdk_1 = __importDefault(require("../sdk"));
23
+ function main() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ var _a, e_1, _b, _c;
26
+ const hatchet = sdk_1.default.init();
27
+ const ref = yield hatchet.admin.runWorkflow('simple-workflow', {
28
+ test: 'test',
29
+ });
30
+ const listener = yield hatchet.listener.stream(yield ref.getWorkflowRunId());
31
+ console.log('listening for events');
32
+ try {
33
+ for (var _d = true, listener_1 = __asyncValues(listener), listener_1_1; listener_1_1 = yield listener_1.next(), _a = listener_1_1.done, !_a; _d = true) {
34
+ _c = listener_1_1.value;
35
+ _d = false;
36
+ const event = _c;
37
+ console.log('event received', event);
38
+ }
39
+ }
40
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
41
+ finally {
42
+ try {
43
+ if (!_d && !_a && (_b = listener_1.return)) yield _b.call(listener_1);
44
+ }
45
+ finally { if (e_1) throw e_1.error; }
46
+ }
47
+ console.log('done listening for events');
48
+ });
49
+ }
50
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const sdk_1 = __importDefault(require("../sdk"));
7
+ const hatchet = sdk_1.default.init();
8
+ hatchet.event.push('user:create', {
9
+ test: 'test',
10
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../sdk"));
16
+ const hatchet = sdk_1.default.init();
17
+ const sleep = (ms) => new Promise((resolve) => {
18
+ setTimeout(resolve, ms);
19
+ });
20
+ const parentWorkflow = {
21
+ id: 'parent-workflow',
22
+ description: 'simple example for spawning child workflows',
23
+ on: {
24
+ event: 'fanout:create',
25
+ },
26
+ steps: [
27
+ {
28
+ name: 'parent-spawn',
29
+ timeout: '10s',
30
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
31
+ ctx.putStream('spawning children');
32
+ const promises = Array.from({ length: 7 }, (_, i) => ctx.spawnWorkflow('child-workflow', { input: `child-input-${i}` }).result());
33
+ const results = yield Promise.all(promises);
34
+ console.log('spawned workflow results:', results);
35
+ console.log('number of spawned workflows:', results.length);
36
+ return { spawned: results };
37
+ }),
38
+ },
39
+ ],
40
+ };
41
+ const childWorkflow = {
42
+ id: 'child-workflow',
43
+ description: 'simple example for spawning child workflows',
44
+ on: {
45
+ event: 'fanout:create',
46
+ },
47
+ steps: [
48
+ {
49
+ name: 'child-work',
50
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const { input } = ctx.workflowInput();
52
+ ctx.putStream('child running...');
53
+ yield sleep(10);
54
+ // throw new Error('child error');
55
+ console.log('child workflow input:', input);
56
+ return { 'child-output': 'results' };
57
+ }),
58
+ },
59
+ ],
60
+ };
61
+ function main() {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const worker = yield hatchet.worker('fanout-worker');
64
+ yield worker.registerWorkflow(parentWorkflow);
65
+ yield worker.registerWorkflow(childWorkflow);
66
+ worker.start();
67
+ });
68
+ }
69
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../sdk"));
16
+ const hatchet = sdk_1.default.init({
17
+ log_level: 'OFF',
18
+ });
19
+ const sleep = (ms) => new Promise((resolve) => {
20
+ setTimeout(resolve, ms);
21
+ });
22
+ const workflow = {
23
+ id: 'logger-example',
24
+ description: 'test',
25
+ on: {
26
+ event: 'user:create',
27
+ },
28
+ steps: [
29
+ {
30
+ name: 'logger-step1',
31
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
32
+ // log in a for loop
33
+ // eslint-disable-next-line no-plusplus
34
+ for (let i = 0; i < 10; i++) {
35
+ ctx.log(`log message ${i}`);
36
+ yield sleep(200);
37
+ }
38
+ return { step1: 'completed step run' };
39
+ }),
40
+ },
41
+ ],
42
+ };
43
+ function main() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const worker = yield hatchet.worker('logger-worker', 1);
46
+ yield worker.registerWorkflow(workflow);
47
+ worker.start();
48
+ });
49
+ }
50
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const sdk_1 = __importDefault(require("../sdk"));
23
+ const hatchet = sdk_1.default.init();
24
+ function main() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ var _a, e_1, _b, _c;
27
+ const workflowRun = hatchet.admin.runWorkflow('simple-workflow', {});
28
+ const stream = yield workflowRun.stream();
29
+ try {
30
+ for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield stream_1.next(), _a = stream_1_1.done, !_a; _d = true) {
31
+ _c = stream_1_1.value;
32
+ _d = false;
33
+ const event = _c;
34
+ console.log('event received', event);
35
+ }
36
+ }
37
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
38
+ finally {
39
+ try {
40
+ if (!_d && !_a && (_b = stream_1.return)) yield _b.call(stream_1);
41
+ }
42
+ finally { if (e_1) throw e_1.error; }
43
+ }
44
+ });
45
+ }
46
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../sdk"));
16
+ const hatchet = sdk_1.default.init();
17
+ function main() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const worker = yield hatchet.worker('test-worker2', 5);
20
+ yield worker.registerWorkflow({
21
+ id: 'test1',
22
+ description: 'desc',
23
+ on: {
24
+ event: 'test1',
25
+ },
26
+ steps: [
27
+ {
28
+ name: 'test1-step1',
29
+ run: (ctx) => {
30
+ console.log('executed step1 of test1!');
31
+ return { step1: 'step1' };
32
+ },
33
+ },
34
+ ],
35
+ });
36
+ yield worker.registerWorkflow({
37
+ id: 'test2',
38
+ description: 'desc',
39
+ on: {
40
+ event: 'test2',
41
+ },
42
+ steps: [
43
+ {
44
+ name: 'test2-step1',
45
+ run: (ctx) => {
46
+ console.log('executed step1 of test2!');
47
+ return { step1: 'step1' };
48
+ },
49
+ },
50
+ ],
51
+ });
52
+ yield worker.start();
53
+ });
54
+ }
55
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_1 = __importDefault(require("../sdk"));
16
+ const hatchet = sdk_1.default.init({
17
+ namespace: 'example-namespace',
18
+ });
19
+ const sleep = (ms) => new Promise((resolve) => {
20
+ setTimeout(resolve, ms);
21
+ });
22
+ const workflow = {
23
+ id: 'simple-workflow',
24
+ description: 'test',
25
+ on: {
26
+ event: 'user:create',
27
+ },
28
+ steps: [
29
+ {
30
+ name: 'step1',
31
+ run: (ctx) => __awaiter(void 0, void 0, void 0, function* () {
32
+ console.log('starting step1 with the following input', ctx.workflowInput());
33
+ console.log('waiting 5 seconds...');
34
+ yield sleep(5000);
35
+ console.log('executed step1!');
36
+ return { step1: 'step1 results!' };
37
+ }),
38
+ },
39
+ {
40
+ name: 'step2',
41
+ parents: ['step1'],
42
+ run: (ctx) => {
43
+ console.log('executed step2 after step1 returned ', ctx.stepOutput('step1'));
44
+ return { step2: 'step2 results!' };
45
+ },
46
+ },
47
+ ],
48
+ };
49
+ function main() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const worker = yield hatchet.worker('example-worker');
52
+ yield worker.registerWorkflow(workflow);
53
+ worker.start();
54
+ });
55
+ }
56
+ main();
@@ -0,0 +1 @@
1
+ export {};