Skip to content

Commit 746e4ae

Browse files
committed
New serverless execution WIP
1 parent 98978a9 commit 746e4ae

8 files changed

Lines changed: 157 additions & 1276 deletions

File tree

examples/smoke-test/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
"description": "Very basic smoke test for @trigger.dev/sdk",
66
"dependencies": {
77
"@trigger.dev/sdk": "workspace:*",
8+
"express": "^4.18.1",
89
"ulid": "^2.3.0",
910
"zod": "^3.20.2"
1011
},
1112
"devDependencies": {
1213
"@trigger.dev/tsconfig": "workspace:*",
14+
"@types/express": "^4.17.13",
1315
"@types/node": "16",
1416
"tsx": "^3.12.0"
1517
},

examples/smoke-test/src/index.ts

Lines changed: 19 additions & 213 deletions
Original file line numberDiff line numberDiff line change
@@ -1,234 +1,40 @@
1-
import { z } from "zod";
2-
import {
3-
Trigger,
4-
customEvent,
5-
sendEvent,
6-
scheduleEvent,
7-
webhookEvent,
8-
} from "@trigger.dev/sdk";
9-
import { ulid } from "ulid";
1+
import { Trigger, EntryPoint, customEvent, sendEvent } from "@trigger.dev/sdk";
2+
import express from "express";
103

11-
const userCreatedEvent = z.object({
12-
id: z.string(),
4+
const entryPoint = new EntryPoint({
5+
apiKey: process.env.TRIGGER_API_KEY,
136
});
147

158
new Trigger({
169
id: "my-workflow",
1710
name: "My workflow",
18-
apiKey: "trigger_development_cMYVGTvv3gyx",
19-
endpoint: "ws://localhost:8889/ws",
2011
logLevel: "debug",
21-
triggerTTL: 60 * 60 * 24,
22-
on: customEvent({ name: "user.created", schema: userCreatedEvent }),
12+
on: customEvent({ name: "user.created" }),
2313
run: async (event, ctx) => {
2414
await ctx.logger.info("Inside the smoke test workflow, received event", {
2515
event,
2616
myDate: new Date(),
2717
});
2818

29-
await ctx.sendEvent("start-fire", {
30-
name: "smoke.test",
31-
payload: { baz: "banana" },
32-
delay: { until: new Date(Date.now() + 1000 * 60) },
33-
});
34-
35-
await sendEvent("start-fire-2", {
36-
name: "smoke.test2",
37-
payload: { baz: "banana2" },
38-
delay: { minutes: 1 },
39-
});
40-
4119
return { foo: "bar" };
4220
},
43-
}).listen();
44-
45-
new Trigger({
46-
id: "my-other-workflow",
47-
name: "My other workflow",
48-
apiKey: "trigger_development_cMYVGTvv3gyx",
49-
endpoint: "ws://localhost:8889/ws",
50-
logLevel: "debug",
51-
triggerTTL: 60 * 60 * 24,
52-
on: customEvent({ name: "smoke.test2" }),
53-
run: async (event, ctx) => {
54-
await ctx.logger.info("Inside the smoke test 2 workflow, received event", {
55-
event,
56-
myDate: new Date(),
57-
});
58-
},
59-
}).listen();
21+
}).register(entryPoint);
6022

61-
new Trigger({
62-
id: "my-scheduled-workflow",
63-
name: "My scheduled workflow",
64-
apiKey: "trigger_development_cMYVGTvv3gyx",
65-
endpoint: "ws://localhost:8889/ws",
66-
logLevel: "debug",
67-
triggerTTL: 60 * 60 * 24,
68-
on: scheduleEvent({
69-
rateOf: { minutes: 1 },
70-
}),
71-
run: async (event, ctx) => {
72-
await ctx.logger.info("Inside the smoke test 2 workflow, received event", {
73-
event,
74-
myDate: new Date(),
75-
});
76-
},
77-
}).listen();
78-
79-
// new Trigger({
80-
// id: "smoke-test",
81-
// name: "Smoke Test",
82-
// apiKey: "trigger_dev_zC25mKNn6c0q",
83-
// endpoint: "ws://localhost:8889/ws",
84-
// logLevel: "debug",
85-
// on: customEvent({
86-
// name: "smoke.test",
87-
// schema: z.object({ baz: z.string() }),
88-
// }),
89-
// run: async (event, ctx) => {
90-
// await ctx.logger.info("Inside the smoke test workflow, received event", {
91-
// event,
92-
// myDate: new Date(),
93-
// });
94-
// },
95-
// }).listen();
23+
// Create an express app and listen on port 3007
24+
const app = express();
9625

97-
// new Trigger({
98-
// id: "log-tests",
99-
// name: "My logs",
100-
// apiKey: "trigger_dev_zC25mKNn6c0q",
101-
// endpoint: "ws://localhost:8889/ws",
102-
// logLevel: "debug",
103-
// on: customEvent({ name: "user.created", schema: z.any() }),
104-
// run: async (event, ctx) => {
105-
// await ctx.logger.info("It's been 5 minutes since the last run!");
106-
// await ctx.logger.debug("This is a debug log");
107-
// await ctx.logger.warn("This is a warning");
108-
// await ctx.logger.error("This is an error");
109-
// },
110-
// }).listen();
26+
app.use(express.json());
11127

112-
// export const bookingPayloadSchema = z.object({
113-
// triggerEvent: z.string(),
114-
// createdAt: z.coerce.date(),
115-
// payload: z.object({
116-
// type: z.string(),
117-
// title: z.string(),
118-
// description: z.string(),
119-
// additionalNotes: z.string(),
120-
// customInputs: z.object({}),
121-
// startTime: z.coerce.date(),
122-
// endTime: z.coerce.date(),
123-
// organizer: z.object({
124-
// id: z.number(),
125-
// name: z.string(),
126-
// email: z.string(),
127-
// timeZone: z.string(),
128-
// language: z.object({ locale: z.string() }),
129-
// }),
130-
// attendees: z.array(
131-
// z.object({
132-
// email: z.string(),
133-
// name: z.string(),
134-
// timeZone: z.string(),
135-
// language: z.object({ locale: z.string() }),
136-
// })
137-
// ),
138-
// location: z.string(),
139-
// destinationCalendar: z.object({
140-
// id: z.number(),
141-
// integration: z.string(),
142-
// externalId: z.string(),
143-
// userId: z.number(),
144-
// eventTypeId: z.null(),
145-
// credentialId: z.number(),
146-
// }),
147-
// hideCalendarNotes: z.boolean(),
148-
// requiresConfirmation: z.null(),
149-
// eventTypeId: z.number(),
150-
// seatsShowAttendees: z.boolean(),
151-
// uid: z.string(),
152-
// conferenceData: z.object({
153-
// createRequest: z.object({ requestId: z.string() }),
154-
// }),
155-
// videoCallData: z.object({
156-
// type: z.string(),
157-
// id: z.string(),
158-
// password: z.string(),
159-
// url: z.string(),
160-
// }),
161-
// appsStatus: z.array(
162-
// z.object({
163-
// appName: z.string(),
164-
// type: z.string(),
165-
// success: z.number(),
166-
// failures: z.number(),
167-
// errors: z.array(z.any()).optional(),
168-
// warnings: z.array(z.any()).optional(),
169-
// })
170-
// ),
171-
// eventTitle: z.string(),
172-
// eventDescription: z.null(),
173-
// price: z.number(),
174-
// currency: z.string(),
175-
// length: z.number(),
176-
// bookingId: z.number(),
177-
// metadata: z.object({ videoCallUrl: z.string() }),
178-
// status: z.string(),
179-
// }),
180-
// });
28+
app.post("/__trigger/entry", async (req, res) => {
29+
const event = req.body;
18130

182-
// new Trigger({
183-
// id: "calcom-booking-custom-event",
184-
// name: "Cal.com booking custom event",
185-
// apiKey: "trigger_dev_zC25mKNn6c0q",
186-
// endpoint: "ws://localhost:8889/ws",
187-
// logLevel: "debug",
188-
// triggerTTL: 60 * 60 * 24,
189-
// on: customEvent({ name: "calcom.booking", schema: bookingPayloadSchema }),
190-
// run: async (event, ctx) => {
191-
// return event;
192-
// },
193-
// }).listen();
31+
res.json({ ok: true });
32+
});
19433

195-
// new Trigger({
196-
// id: "testing-schedule-test-events",
197-
// name: "Testing scheduled test payloads",
198-
// apiKey: "trigger_dev_zC25mKNn6c0q",
199-
// endpoint: "ws://localhost:8889/ws",
200-
// logLevel: "debug",
201-
// triggerTTL: 60 * 60 * 24,
202-
// on: scheduleEvent({
203-
// rateOf: { hours: 1 },
204-
// }),
205-
// run: async (event, ctx) => {
206-
// return event;
207-
// },
208-
// }).listen();
34+
app.listen(3007, async () => {
35+
console.log("Listening on port 3007");
20936

210-
// new Trigger({
211-
// id: "smoke-test-webhook-schema-test",
212-
// name: "Smoke Test Webhook Schema Test",
213-
// apiKey: "trigger_dev_zC25mKNn6c0q",
214-
// endpoint: "ws://localhost:8889/ws",
215-
// logLevel: "debug",
216-
// on: webhookEvent({
217-
// service: "cal.com",
218-
// eventName: "BOOKING_CREATED",
219-
// filter: {
220-
// triggerEvent: ["BOOKING_CREATED"],
221-
// },
222-
// schema: bookingPayloadSchema,
223-
// verifyPayload: {
224-
// enabled: true,
225-
// header: "X-Cal-Signature-256",
226-
// },
227-
// }),
228-
// run: async (event, ctx) => {
229-
// await ctx.logger.info("Received a cal.com booking", {
230-
// event,
231-
// wallTime: new Date(),
232-
// });
233-
// },
234-
// }).listen();
37+
await entryPoint.listen({
38+
url: "http://localhost:3007/__trigger/entry",
39+
});
40+
});

0 commit comments

Comments
 (0)