inngest 0.8.9 → 0.9.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 (63) hide show
  1. package/cloudflare.d.ts +1 -1
  2. package/cloudflare.d.ts.map +1 -1
  3. package/cloudflare.js +50 -81
  4. package/cloudflare.js.map +1 -1
  5. package/components/Inngest.d.ts.map +1 -1
  6. package/components/Inngest.js +1 -1
  7. package/components/Inngest.js.map +1 -1
  8. package/components/InngestCommHandler.d.ts +380 -0
  9. package/components/InngestCommHandler.d.ts.map +1 -0
  10. package/components/InngestCommHandler.js +451 -0
  11. package/components/InngestCommHandler.js.map +1 -0
  12. package/components/InngestStepTools.d.ts +5 -3
  13. package/components/InngestStepTools.d.ts.map +1 -1
  14. package/components/InngestStepTools.js +17 -5
  15. package/components/InngestStepTools.js.map +1 -1
  16. package/deno/fresh.d.ts +9 -0
  17. package/deno/fresh.d.ts.map +1 -0
  18. package/deno/fresh.js +55 -0
  19. package/deno/fresh.js.map +1 -0
  20. package/express.d.ts +2 -122
  21. package/express.d.ts.map +1 -1
  22. package/express.js +48 -302
  23. package/express.js.map +1 -1
  24. package/helpers/consts.d.ts +2 -1
  25. package/helpers/consts.d.ts.map +1 -1
  26. package/helpers/consts.js +1 -0
  27. package/helpers/consts.js.map +1 -1
  28. package/helpers/devserver.d.ts +5 -5
  29. package/helpers/devserver.d.ts.map +1 -1
  30. package/helpers/devserver.js +1 -1
  31. package/helpers/env.d.ts +2 -6
  32. package/helpers/env.d.ts.map +1 -1
  33. package/helpers/env.js +23 -17
  34. package/helpers/env.js.map +1 -1
  35. package/helpers/types.d.ts +13 -9
  36. package/helpers/types.d.ts.map +1 -1
  37. package/index.d.ts +2 -0
  38. package/index.d.ts.map +1 -1
  39. package/index.js +3 -1
  40. package/index.js.map +1 -1
  41. package/init.js +2 -1
  42. package/init.js.map +1 -1
  43. package/landing.d.ts +1 -1
  44. package/landing.d.ts.map +1 -1
  45. package/landing.js +1 -1
  46. package/landing.js.map +1 -1
  47. package/next.d.ts +1 -1
  48. package/next.d.ts.map +1 -1
  49. package/next.js +49 -69
  50. package/next.js.map +1 -1
  51. package/package.json +11 -9
  52. package/redwood.d.ts +1 -1
  53. package/redwood.d.ts.map +1 -1
  54. package/redwood.js +53 -98
  55. package/redwood.js.map +1 -1
  56. package/remix.d.ts +1 -1
  57. package/remix.d.ts.map +1 -1
  58. package/remix.js +61 -105
  59. package/remix.js.map +1 -1
  60. package/types.d.ts +10 -10
  61. package/types.d.ts.map +1 -1
  62. package/version.d.ts +1 -1
  63. package/version.js +1 -1
@@ -0,0 +1,451 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InngestCommHandler = void 0;
4
+ const hash_js_1 = require("hash.js");
5
+ const zod_1 = require("zod");
6
+ const consts_1 = require("../helpers/consts");
7
+ const devserver_1 = require("../helpers/devserver");
8
+ const scalar_1 = require("../helpers/scalar");
9
+ const landing_1 = require("../landing");
10
+ const version_1 = require("../version");
11
+ /**
12
+ * A schema for the response from Inngest when registering.
13
+ */
14
+ const registerResSchema = zod_1.z.object({
15
+ status: zod_1.z.number().default(200),
16
+ skipped: zod_1.z.boolean().optional().default(false),
17
+ error: zod_1.z.string().default("Successfully registered"),
18
+ });
19
+ /**
20
+ * `InngestCommHandler` is a class for handling incoming requests from Inngest (or
21
+ * Inngest's tooling such as the dev server or CLI) and taking appropriate
22
+ * action for any served functions.
23
+ *
24
+ * All handlers (Next.js, RedwoodJS, Remix, Deno Fresh, etc) are created using
25
+ * this class; the exposed `serve` function will - most commonly - create an
26
+ * instance of `InngestCommHandler` and then return `instance.createHandler()`.
27
+ *
28
+ * Two critical parameters required are the `handler` and the `transformRes`
29
+ * function. See individual parameter details for more information, or see the
30
+ * source code for an existing handler, e.g.
31
+ * {@link https://github.com/inngest/inngest-js/blob/main/src/next.ts}
32
+ *
33
+ * @example
34
+ * ```
35
+ * // my-custom-handler.ts
36
+ * import { InngestCommHandler, ServeHandler } from "inngest";
37
+ *
38
+ * export const serve: ServeHandler = (nameOrInngest, fns, opts) => {
39
+ * const handler = new InngestCommHandler(
40
+ * "my-custom-handler",
41
+ * nameOrInngest,
42
+ * fns,
43
+ * opts,
44
+ * () => { ... },
45
+ * () => { ... }
46
+ * );
47
+ *
48
+ * return handler.createHandler();
49
+ * };
50
+ * ```
51
+ *
52
+ * @public
53
+ */
54
+ class InngestCommHandler {
55
+ constructor(
56
+ /**
57
+ * The name of the framework this handler is designed for. Should be
58
+ * lowercase, alphanumeric characters inclusive of `-` and `/`.
59
+ *
60
+ * This should never be defined by the user; a {@link ServeHandler} should
61
+ * abstract this.
62
+ */
63
+ frameworkName,
64
+ /**
65
+ * The name of this serve handler, e.g. `"My App"`. It's recommended that this
66
+ * value represents the overarching app/service that this set of functions is
67
+ * being served from.
68
+ *
69
+ * This can also be an `Inngest` client, in which case the name given when
70
+ * instantiating the client is used. This is useful if you're sending and
71
+ * receiving events from the same service, as you can reuse a single
72
+ * definition of Inngest.
73
+ */
74
+ appNameOrInngest,
75
+ /**
76
+ * An array of the functions to serve and register with Inngest.
77
+ */
78
+ functions, { inngestRegisterUrl, fetch, landingPage, signingKey, serveHost, servePath, } = {},
79
+ /**
80
+ * The `handler` is the function your framework requires to handle a
81
+ * request. For example, this is most commonly a function that is given a
82
+ * `Request` and must return a `Response`.
83
+ *
84
+ * The handler must map out any incoming parameters, then return a
85
+ * strictly-typed object to assess what kind of request is being made,
86
+ * collecting any relevant data as we go.
87
+ *
88
+ * @example
89
+ * ```
90
+ * return {
91
+ * register: () => { ... },
92
+ * run: () => { ... },
93
+ * view: () => { ... }
94
+ * };
95
+ * ```
96
+ *
97
+ * Every key must be specified and must be a function that either returns
98
+ * a strictly-typed payload or `undefined` if the request is not for that
99
+ * purpose.
100
+ *
101
+ * This gives handlers freedom to choose how their platform of choice will
102
+ * trigger differing actions, whilst also ensuring all required information
103
+ * is given for each request type.
104
+ *
105
+ * See any existing handler for a full example.
106
+ *
107
+ * This should never be defined by the user; a {@link ServeHandler} should
108
+ * abstract this.
109
+ */
110
+ handler,
111
+ /**
112
+ * The `transformRes` function receives the output of the Inngest SDK and
113
+ * can decide how to package up that information to appropriately return the
114
+ * information to Inngest.
115
+ *
116
+ * Mostly, this is taking the given parameters and returning a new
117
+ * `Response`.
118
+ *
119
+ * The function is passed an {@link ActionResponse} (an object containing a
120
+ * `status` code, a `headers` object, and a stringified `body`), as well as
121
+ * every parameter passed to the given `handler` function. This ensures you
122
+ * can appropriately handle the response, including use of any required
123
+ * parameters such as `res` in Express-/Connect-like frameworks.
124
+ *
125
+ * This should never be defined by the user; a {@link ServeHandler} should
126
+ * abstract this.
127
+ */
128
+ transformRes) {
129
+ /**
130
+ * A property that can be set to indicate whether or not we believe we are in
131
+ * production mode.
132
+ *
133
+ * Should be set every time a request is received.
134
+ */
135
+ this._isProd = false;
136
+ /**
137
+ * A private collection of functions that are being served. This map is used
138
+ * to find and register functions when interacting with Inngest Cloud.
139
+ */
140
+ this.fns = {};
141
+ this.frameworkName = frameworkName;
142
+ this.name =
143
+ typeof appNameOrInngest === "string"
144
+ ? appNameOrInngest
145
+ : appNameOrInngest.name;
146
+ this.handler = handler;
147
+ this.transformRes = transformRes;
148
+ this.fns = functions.reduce((acc, fn) => {
149
+ const id = fn.id(this.name);
150
+ if (acc[id]) {
151
+ throw new Error(`Duplicate function ID "${id}"; please change a function's name or provide an explicit ID to avoid conflicts.`);
152
+ }
153
+ return Object.assign(Object.assign({}, acc), { [id]: fn });
154
+ }, {});
155
+ this.inngestRegisterUrl = new URL(inngestRegisterUrl || "https://api.inngest.com/fn/register");
156
+ this.signingKey = signingKey;
157
+ this.showLandingPage = landingPage;
158
+ this.serveHost = serveHost;
159
+ this.servePath = servePath;
160
+ this.headers = {
161
+ "Content-Type": "application/json",
162
+ "User-Agent": `inngest-js:v${version_1.version} (${this.frameworkName})`,
163
+ };
164
+ this.fetch =
165
+ fetch ||
166
+ (typeof appNameOrInngest === "string"
167
+ ? undefined
168
+ : appNameOrInngest["fetch"]) ||
169
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
170
+ require("cross-fetch");
171
+ }
172
+ // hashedSigningKey creates a sha256 checksum of the signing key with the
173
+ // same signing key prefix.
174
+ get hashedSigningKey() {
175
+ var _a;
176
+ if (!this.signingKey) {
177
+ return "";
178
+ }
179
+ const prefix = ((_a = this.signingKey.match(/^signkey-(test|prod)-/)) === null || _a === void 0 ? void 0 : _a.shift()) || "";
180
+ const key = this.signingKey.replace(/^signkey-(test|prod)-/, "");
181
+ // Decode the key from its hex representation into a bytestream
182
+ return `${prefix}${(0, hash_js_1.sha256)().update(key, "hex").digest("hex")}`;
183
+ }
184
+ /**
185
+ * `createHandler` should be used to return a type-equivalent version of the
186
+ * `handler` specified during instantiation.
187
+ *
188
+ * @example
189
+ * ```
190
+ * // my-custom-handler.ts
191
+ * import { InngestCommHandler, ServeHandler } from "inngest";
192
+ *
193
+ * export const serve: ServeHandler = (nameOrInngest, fns, opts) => {
194
+ * const handler = new InngestCommHandler(
195
+ * "my-custom-handler",
196
+ * nameOrInngest,
197
+ * fns,
198
+ * opts,
199
+ * () => { ... },
200
+ * () => { ... }
201
+ * );
202
+ *
203
+ * return handler.createHandler();
204
+ * };
205
+ * ```
206
+ */
207
+ createHandler() {
208
+ return async (...args) => {
209
+ /**
210
+ * We purposefully `await` the handler, as it could be either sync or
211
+ * async.
212
+ */
213
+ // eslint-disable-next-line @typescript-eslint/await-thenable
214
+ const actions = await this.handler(...args);
215
+ const actionRes = await this.handleAction(actions);
216
+ return this.transformRes(actionRes, ...args);
217
+ };
218
+ }
219
+ /**
220
+ * Given a set of functions to check if an action is available from the
221
+ * instance's handler, enact any action that is found.
222
+ *
223
+ * This method can fetch varying payloads of data, but ultimately is the place
224
+ * where _decisions_ are made regarding functionality.
225
+ *
226
+ * For example, if we find that we should be viewing the UI, this function
227
+ * will decide whether the UI should be visible based on the payload it has
228
+ * found (e.g. env vars, options, etc).
229
+ */
230
+ async handleAction(actions) {
231
+ const headers = { "x-inngest-sdk": this.sdkHeader.join("") };
232
+ try {
233
+ const runRes = await actions.run();
234
+ if (runRes) {
235
+ this.upsertSigningKeyFromEnv(runRes.env);
236
+ const stepRes = await this.runStep(runRes.fnId, "step", runRes.data);
237
+ if (stepRes.status === 500) {
238
+ return {
239
+ status: 500,
240
+ body: stepRes.error || "",
241
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
242
+ };
243
+ }
244
+ return {
245
+ status: stepRes.status,
246
+ body: JSON.stringify(stepRes.body),
247
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
248
+ };
249
+ }
250
+ const viewRes = await actions.view();
251
+ if (viewRes) {
252
+ this.upsertSigningKeyFromEnv(viewRes.env);
253
+ const showLandingPage = this.shouldShowLandingPage(viewRes.env[consts_1.envKeys.LandingPage]);
254
+ if (this._isProd || !showLandingPage) {
255
+ return {
256
+ status: 405,
257
+ body: "",
258
+ headers,
259
+ };
260
+ }
261
+ if (viewRes.isIntrospection) {
262
+ const introspection = Object.assign(Object.assign({}, this.registerBody(this.reqUrl(viewRes.url))), { devServerURL: (0, devserver_1.devServerUrl)(viewRes.env[consts_1.envKeys.DevServerUrl]).href, hasSigningKey: Boolean(this.signingKey) });
263
+ return {
264
+ status: 200,
265
+ body: JSON.stringify(introspection),
266
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
267
+ };
268
+ }
269
+ return {
270
+ status: 200,
271
+ body: landing_1.landing,
272
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "text/html; charset=utf-8" }),
273
+ };
274
+ }
275
+ const registerRes = await actions.register();
276
+ if (registerRes) {
277
+ this.upsertSigningKeyFromEnv(registerRes.env);
278
+ const { status, message } = await this.register(this.reqUrl(registerRes.url), registerRes.env[consts_1.envKeys.DevServerUrl], registerRes.deployId);
279
+ return {
280
+ status,
281
+ body: JSON.stringify({ message }),
282
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
283
+ };
284
+ }
285
+ }
286
+ catch (err) {
287
+ return {
288
+ status: 500,
289
+ body: JSON.stringify(err),
290
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
291
+ };
292
+ }
293
+ return {
294
+ status: 405,
295
+ body: "",
296
+ headers,
297
+ };
298
+ }
299
+ async runStep(functionId, stepId, data) {
300
+ try {
301
+ const fn = this.fns[functionId];
302
+ if (!fn) {
303
+ throw new Error(`Could not find function with ID "${functionId}"`);
304
+ }
305
+ const { event, steps } = zod_1.z
306
+ .object({
307
+ event: zod_1.z.object({}).passthrough(),
308
+ steps: zod_1.z.object({}).passthrough().optional().nullable(),
309
+ })
310
+ .parse(data);
311
+ const ret = await fn["runFn"]({ event }, steps || {});
312
+ const isOp = ret[0];
313
+ if (isOp) {
314
+ return {
315
+ status: 206,
316
+ body: ret[1],
317
+ };
318
+ }
319
+ return {
320
+ status: 200,
321
+ body: ret[1],
322
+ };
323
+ }
324
+ catch (err) {
325
+ if (err instanceof Error) {
326
+ return {
327
+ status: 500,
328
+ error: err.stack || err.message,
329
+ };
330
+ }
331
+ return {
332
+ status: 500,
333
+ error: `Unknown error: ${JSON.stringify(err)}`,
334
+ };
335
+ }
336
+ }
337
+ configs(url) {
338
+ return Object.values(this.fns).map((fn) => fn["getConfig"](url, this.name));
339
+ }
340
+ /**
341
+ * Returns an SDK header split in to three parts so that they can be used for
342
+ * different purposes.
343
+ *
344
+ * To use the entire string, run `this.sdkHeader.join("")`.
345
+ */
346
+ get sdkHeader() {
347
+ return ["inngest-", `js:v${version_1.version}`, ` (${this.frameworkName})`];
348
+ }
349
+ /**
350
+ * Return an Inngest serve endpoint URL given a potential `path` and `host`.
351
+ *
352
+ * Will automatically use the `serveHost` and `servePath` if they have been
353
+ * set when registering.
354
+ */
355
+ reqUrl(url) {
356
+ let ret = new URL(url);
357
+ if (this.servePath)
358
+ ret.pathname = this.servePath;
359
+ if (this.serveHost)
360
+ ret = new URL(ret.pathname + ret.search, this.serveHost);
361
+ /**
362
+ * Remove any introspection query strings.
363
+ */
364
+ ret.searchParams.delete(consts_1.queryKeys.Introspect);
365
+ return ret;
366
+ }
367
+ registerBody(url) {
368
+ const body = {
369
+ url: url.href,
370
+ deployType: "ping",
371
+ framework: this.frameworkName,
372
+ appName: this.name,
373
+ functions: this.configs(url),
374
+ sdk: this.sdkHeader[1],
375
+ v: "0.1",
376
+ };
377
+ // Calculate the checksum of the body... without the checksum itself being included.
378
+ body.hash = (0, hash_js_1.sha256)().update(JSON.stringify(body)).digest("hex");
379
+ return body;
380
+ }
381
+ async register(url, devServerHost, deployId) {
382
+ const body = this.registerBody(url);
383
+ let res;
384
+ // Whenever we register, we check to see if the dev server is up. This
385
+ // is a noop and returns false in production.
386
+ let registerURL = this.inngestRegisterUrl;
387
+ if (!this.isProd) {
388
+ const hasDevServer = await (0, devserver_1.devServerAvailable)(devServerHost, this.fetch);
389
+ if (hasDevServer) {
390
+ registerURL = (0, devserver_1.devServerUrl)(devServerHost, "/fn/register");
391
+ }
392
+ }
393
+ if (deployId) {
394
+ registerURL.searchParams.set("deployId", deployId);
395
+ }
396
+ try {
397
+ res = await this.fetch(registerURL.href, {
398
+ method: "POST",
399
+ body: JSON.stringify(body),
400
+ headers: Object.assign(Object.assign({}, this.headers), { Authorization: `Bearer ${this.hashedSigningKey}` }),
401
+ redirect: "follow",
402
+ });
403
+ }
404
+ catch (err) {
405
+ console.error(err);
406
+ return {
407
+ status: 500,
408
+ message: `Failed to register${err instanceof Error ? `; ${err.message}` : ""}`,
409
+ };
410
+ }
411
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
412
+ let data = {};
413
+ try {
414
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
415
+ data = await res.json();
416
+ }
417
+ catch (err) {
418
+ console.warn("Couldn't unpack register response:", err);
419
+ }
420
+ const { status, error, skipped } = registerResSchema.parse(data);
421
+ // The dev server polls this endpoint to register functions every few
422
+ // seconds, but we only want to log that we've registered functions if
423
+ // the function definitions change. Therefore, we compare the body sent
424
+ // during registration with the body of the current functions and refuse
425
+ // to register if the functions are the same.
426
+ if (!skipped) {
427
+ console.log("registered inngest functions:", res.status, res.statusText, data);
428
+ }
429
+ return { status, message: error };
430
+ }
431
+ get isProd() {
432
+ return this._isProd;
433
+ }
434
+ upsertSigningKeyFromEnv(env) {
435
+ if (!this.signingKey && env[consts_1.envKeys.SigningKey]) {
436
+ this.signingKey = env[consts_1.envKeys.SigningKey];
437
+ }
438
+ }
439
+ shouldShowLandingPage(strEnvVar) {
440
+ var _a, _b;
441
+ return (_b = (_a = this.showLandingPage) !== null && _a !== void 0 ? _a : (0, scalar_1.strBoolean)(strEnvVar)) !== null && _b !== void 0 ? _b : true;
442
+ }
443
+ validateSignature() {
444
+ return true;
445
+ }
446
+ signResponse() {
447
+ return "";
448
+ }
449
+ }
450
+ exports.InngestCommHandler = InngestCommHandler;
451
+ //# sourceMappingURL=InngestCommHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InngestCommHandler.js","sourceRoot":"","sources":["../../src/components/InngestCommHandler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Jsonify } from "type-fest";
1
2
  import type { ObjectPaths } from "../helpers/types";
2
3
  import { EventPayload, HashedOp, OpStack } from "../types";
3
4
  /**
@@ -49,7 +50,7 @@ export declare const createStepTools: <Events extends Record<string, EventPayloa
49
50
  * of the `run` tool, meaning you can return and reason about return data
50
51
  * for next steps.
51
52
  */
52
- run: <T extends (...args: any[]) => any>(name: string, fn: T) => T extends (...args: any[]) => Promise<infer U> ? Awaited<U extends void ? null : U> : ReturnType<T> extends void ? null : ReturnType<T>;
53
+ run: <T extends (...args: any[]) => any>(name: string, fn: T) => Jsonify<T extends (...args: any[]) => Promise<infer U> ? Awaited<U extends void ? null : U> : ReturnType<T> extends void ? null : ReturnType<T>>;
53
54
  /**
54
55
  * Wait a specified amount of time before continuing.
55
56
  *
@@ -64,9 +65,10 @@ export declare const createStepTools: <Events extends Record<string, EventPayloa
64
65
  /**
65
66
  * Wait until a particular date before continuing by passing a `Date`.
66
67
  *
67
- * To wait for a particular amount of time, use `sleep` instead.
68
+ * To wait for a particular amount of time from now, always use `sleep`
69
+ * instead.
68
70
  */
69
- sleepUntil: (time: Date) => void;
71
+ sleepUntil: (time: Date | string) => void;
70
72
  }, {
71
73
  nextOp: Promise<HashedOp> | undefined;
72
74
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"InngestStepTools.d.ts","sourceRoot":"","sources":["../../src/components/InngestStepTools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAM,OAAO,EAAc,MAAM,UAAU,CAAC;AAE3E;;;GAGG;AACH,qBAAa,iBAAiB;CAAG;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,gGAIhB,OAAO;IA8Lf;;;;;;;;OAQG;;;;;;IAwDH;;;;;;;;;;;OAWG;8BAEoB,GAAG,EAAE,KAAK,GAAG,QAM1B,MAAM,gCAWW,GAAG,EAAE;IAiBhC;;;;;;;;;OASG;kBAMO,MAAM,GAAG,MAAM,KAClB,IAAI;IAYX;;;;OAIG;uBAMO,IAAI,KACP,IAAI;;YAlKH,QAAQ,QAAQ,CAAC,GAAG,SAAS;EAgLxC,CAAC;AAEF;;;GAGG;AACH,UAAU,gBAAgB,CACxB,eAAe,SAAS,YAAY,EACpC,aAAa,SAAS,YAAY;IAElC;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAElE;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"InngestStepTools.d.ts","sourceRoot":"","sources":["../../src/components/InngestStepTools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAM,OAAO,EAAc,MAAM,UAAU,CAAC;AAE3E;;;GAGG;AACH,qBAAa,iBAAiB;CAAG;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,gGAIhB,OAAO;IA8Lf;;;;;;;;OAQG;;;;;;IAwDH;;;;;;;;;;;OAWG;8BAEoB,GAAG,EAAE,KAAK,GAAG,QAM1B,MAAM,wCAYQ,GAAG,EAAE;IAkB7B;;;;;;;;;OASG;kBAMO,MAAM,GAAG,MAAM,KAClB,IAAI;IAYX;;;;;OAKG;uBAMO,IAAI,GAAG,MAAM,KAChB,IAAI;;YArKH,QAAQ,QAAQ,CAAC,GAAG,SAAS;EAiMxC,CAAC;AAEF;;;GAGG;AACH,UAAU,gBAAgB,CACxB,eAAe,SAAS,YAAY,EACpC,aAAa,SAAS,YAAY;IAElC;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAElE;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}
@@ -246,17 +246,29 @@ const createStepTools = (_opStack) => {
246
246
  /**
247
247
  * Wait until a particular date before continuing by passing a `Date`.
248
248
  *
249
- * To wait for a particular amount of time, use `sleep` instead.
249
+ * To wait for a particular amount of time from now, always use `sleep`
250
+ * instead.
250
251
  */
251
252
  sleepUntil: createTool((time) => {
253
+ const date = typeof time === "string" ? new Date(time) : time;
252
254
  /**
253
255
  * The presence of this operation in the returned stack indicates that the
254
256
  * sleep is over and we should continue execution.
255
257
  */
256
- return {
257
- op: types_1.StepOpCode.Sleep,
258
- name: (0, strings_1.timeStr)(time),
259
- };
258
+ try {
259
+ return {
260
+ op: types_1.StepOpCode.Sleep,
261
+ name: date.toISOString(),
262
+ };
263
+ }
264
+ catch (err) {
265
+ /**
266
+ * If we're here, it's because the date is invalid. We'll throw a custom
267
+ * error here to standardise this response.
268
+ */
269
+ console.warn("Invalid date or date string passed to sleepUntil;", err);
270
+ throw new Error(`Invalid date or date string passed to sleepUntil: ${time.toString()}`);
271
+ }
260
272
  }),
261
273
  };
262
274
  return [tools, state];
@@ -1 +1 @@
1
- {"version":3,"file":"InngestStepTools.js","sourceRoot":"","sources":["../../src/components/InngestStepTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InngestStepTools.js","sourceRoot":"","sources":["../../src/components/InngestStepTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ServeHandler } from "../components/InngestCommHandler";
2
+ /**
3
+ * With Deno's Fresh framework, serve and register any declared functions with
4
+ * Inngest, making them available to be triggered by events.
5
+ *
6
+ * @public
7
+ */
8
+ export declare const serve: ServeHandler;
9
+ //# sourceMappingURL=fresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh.d.ts","sourceRoot":"","sources":["../../src/deno/fresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACb,MAAM,kCAAkC,CAAC;AAG1C;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,YAkDnB,CAAC"}
package/deno/fresh.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serve = void 0;
4
+ const InngestCommHandler_1 = require("../components/InngestCommHandler");
5
+ const consts_1 = require("../helpers/consts");
6
+ /**
7
+ * With Deno's Fresh framework, serve and register any declared functions with
8
+ * Inngest, making them available to be triggered by events.
9
+ *
10
+ * @public
11
+ */
12
+ const serve = (nameOrInngest, fns, opts) => {
13
+ const handler = new InngestCommHandler_1.InngestCommHandler("deno/fresh", nameOrInngest, fns, opts, (req, env) => {
14
+ const url = new URL(req.url, `https://${req.headers.get("host") || ""}`);
15
+ const isProduction = Boolean(env.DENO_DEPLOYMENT_ID);
16
+ return {
17
+ register: () => {
18
+ if (req.method === "PUT") {
19
+ return {
20
+ env,
21
+ isProduction,
22
+ url,
23
+ deployId: url.searchParams.get(consts_1.queryKeys.DeployId),
24
+ };
25
+ }
26
+ },
27
+ run: async () => {
28
+ if (req.method === "POST") {
29
+ return {
30
+ data: (await req.json()),
31
+ env,
32
+ fnId: url.searchParams.get(consts_1.queryKeys.FnId),
33
+ url,
34
+ isProduction,
35
+ };
36
+ }
37
+ },
38
+ view: () => {
39
+ if (req.method === "GET") {
40
+ return {
41
+ env,
42
+ isIntrospection: url.searchParams.has(consts_1.queryKeys.Introspect),
43
+ url,
44
+ isProduction,
45
+ };
46
+ }
47
+ },
48
+ };
49
+ }, ({ body, status, headers }) => {
50
+ return new Response(body, { status, headers });
51
+ }).createHandler();
52
+ return (req) => handler(req, Deno.env.toObject());
53
+ };
54
+ exports.serve = serve;
55
+ //# sourceMappingURL=fresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh.js","sourceRoot":"","sources":["../../src/deno/fresh.ts"],"names":[],"mappings":";;;AAAA,yEAG0C;AAC1C,8CAA8C;AAE9C;;;;;GAKG;AACI,MAAM,KAAK,GAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,IAAI,uCAAkB,CACpC,YAAY,EACZ,aAAa,EACb,GAAG,EACH,IAAI,EACJ,CAAC,GAAY,EAAE,GAAgC,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAErD,OAAO;YACL,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;oBACxB,OAAO;wBACL,GAAG;wBACH,YAAY;wBACZ,GAAG;wBACH,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAS,CAAC,QAAQ,CAAC;qBACnD,CAAC;iBACH;YACH,CAAC;YACD,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;oBACzB,OAAO;wBACL,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB;wBAC/C,GAAG;wBACH,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAW;wBACpD,GAAG;wBACH,YAAY;qBACb,CAAC;iBACH;YACH,CAAC;YACD,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;oBACxB,OAAO;wBACL,GAAG;wBACH,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAS,CAAC,UAAU,CAAC;wBAC3D,GAAG;wBACH,YAAY;qBACb,CAAC;iBACH;YACH,CAAC;SACF,CAAC;IACJ,CAAC,EACD,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAY,EAAE;QACtC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC,CACF,CAAC,aAAa,EAAE,CAAC;IAElB,OAAO,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC;AAlDW,QAAA,KAAK,SAkDhB"}