inngest 0.4.16-cfp.9 → 0.5.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.
- package/README.md +9 -12
- package/cloudflare.d.ts.map +1 -1
- package/cloudflare.js +15 -10
- package/cloudflare.js.map +1 -1
- package/express.d.ts +30 -9
- package/express.d.ts.map +1 -1
- package/express.js +49 -11
- package/express.js.map +1 -1
- package/helpers/consts.d.ts +8 -1
- package/helpers/consts.d.ts.map +1 -1
- package/helpers/consts.js +9 -1
- package/helpers/consts.js.map +1 -1
- package/helpers/devserver.d.ts +48 -0
- package/helpers/devserver.d.ts.map +1 -0
- package/helpers/devserver.js +34 -0
- package/helpers/devserver.js.map +1 -0
- package/landing.d.ts +1 -1
- package/landing.d.ts.map +1 -1
- package/landing.js +1 -1
- package/landing.js.map +1 -1
- package/next.d.ts.map +1 -1
- package/next.js +13 -4
- package/next.js.map +1 -1
- package/package.json +3 -2
- package/remix.d.ts.map +1 -1
- package/remix.js +39 -6
- package/remix.js.map +1 -1
- package/types.d.ts +37 -0
- package/types.d.ts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
package/README.md
CHANGED
|
@@ -50,7 +50,6 @@ npm install inngest # or yarn install inngest
|
|
|
50
50
|
**Writing functions**: Write serverless functions and background jobs right in your own code:
|
|
51
51
|
|
|
52
52
|
```ts
|
|
53
|
-
|
|
54
53
|
import { createFunction } from "inngest";
|
|
55
54
|
|
|
56
55
|
export default createFunction(
|
|
@@ -62,13 +61,12 @@ export default createFunction(
|
|
|
62
61
|
);
|
|
63
62
|
```
|
|
64
63
|
|
|
65
|
-
Functions listen to events which can be triggered by API calls, webhooks, integrations, or external services.
|
|
64
|
+
Functions listen to events which can be triggered by API calls, webhooks, integrations, or external services. When a matching event is received, the serverless function runs automatically, with built in retries.
|
|
66
65
|
|
|
67
66
|
<br />
|
|
68
67
|
|
|
69
68
|
**Triggering functions by events:**
|
|
70
69
|
|
|
71
|
-
|
|
72
70
|
```ts
|
|
73
71
|
// Send events
|
|
74
72
|
import { Inngest } from "inngest";
|
|
@@ -78,20 +76,19 @@ const inngest = new Inngest({ name: "My App" });
|
|
|
78
76
|
inngest.send("app/user.created", { data: { id: 123 } });
|
|
79
77
|
```
|
|
80
78
|
|
|
81
|
-
Events trigger any number of functions automatically, in parallel, in the background.
|
|
82
|
-
|
|
79
|
+
Events trigger any number of functions automatically, in parallel, in the background. Inngest also stores a history of all events for observability, testing, and replay.
|
|
83
80
|
|
|
84
81
|
<br />
|
|
85
82
|
|
|
86
83
|
## Features
|
|
87
84
|
|
|
88
|
-
- **Fully serverless:**
|
|
89
|
-
- **Deploy anywhere**:
|
|
90
|
-
- **Use your existing code:**
|
|
91
|
-
- **A complete platform**:
|
|
92
|
-
- **Fully typed**:
|
|
93
|
-
- **Observable**:
|
|
94
|
-
- **Any language:**
|
|
85
|
+
- **Fully serverless:** Run background jobs, scheduled functions, and build event-driven systems without any servers, state, or setup
|
|
86
|
+
- **Deploy anywhere**: works with NextJS, Netlify, Vercel, Redwood, Express, Cloudflare, and Lambda
|
|
87
|
+
- **Use your existing code:** write functions within your current project, zero learning required
|
|
88
|
+
- **A complete platform**: complex functionality built in, such as **event replay**, **canary deploys**, **version management** and **git integration**
|
|
89
|
+
- **Fully typed**: Event schemas, versioning, and governance out of the box
|
|
90
|
+
- **Observable**: A full UI for managing and inspecting your functions
|
|
91
|
+
- **Any language:** Use our CLI to write functions using any language
|
|
95
92
|
|
|
96
93
|
<br />
|
|
97
94
|
|
package/cloudflare.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EACb,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EACb,MAAM,WAAW,CAAC;AAgHnB;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,YAOnB,CAAC"}
|
package/cloudflare.js
CHANGED
|
@@ -8,10 +8,11 @@ const landing_1 = require("./landing");
|
|
|
8
8
|
class CloudflareCommHandler extends express_1.InngestCommHandler {
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
11
|
-
this.frameworkName = "
|
|
11
|
+
this.frameworkName = "cloudflare-pages";
|
|
12
12
|
}
|
|
13
13
|
createHandler() {
|
|
14
14
|
return async ({ request: req, env, }) => {
|
|
15
|
+
const headers = { "x-inngest-sdk": this.sdkHeader.join("") };
|
|
15
16
|
let reqUrl;
|
|
16
17
|
let isIntrospection;
|
|
17
18
|
try {
|
|
@@ -22,33 +23,35 @@ class CloudflareCommHandler extends express_1.InngestCommHandler {
|
|
|
22
23
|
catch (err) {
|
|
23
24
|
return new Response(JSON.stringify(err), {
|
|
24
25
|
status: 500,
|
|
26
|
+
headers,
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
if (!this.signingKey && env[consts_1.envKeys.SigningKey]) {
|
|
28
30
|
this.signingKey = env[consts_1.envKeys.SigningKey];
|
|
29
31
|
}
|
|
32
|
+
this._isProd = env.CF_PAGES === "1" || env.ENVIRONMENT === "production";
|
|
30
33
|
switch (req.method) {
|
|
31
34
|
case "GET": {
|
|
32
35
|
const showLandingPage = this.shouldShowLandingPage(env[consts_1.envKeys.LandingPage]);
|
|
33
36
|
if (!showLandingPage)
|
|
34
37
|
break;
|
|
35
38
|
if (isIntrospection) {
|
|
36
|
-
|
|
39
|
+
const introspection = Object.assign(Object.assign({}, this.registerBody(reqUrl)), { hasSigningKey: Boolean(this.signingKey) });
|
|
40
|
+
return new Response(JSON.stringify(introspection), {
|
|
37
41
|
status: 200,
|
|
42
|
+
headers,
|
|
38
43
|
});
|
|
39
44
|
}
|
|
40
45
|
// Grab landing page and serve
|
|
41
46
|
return new Response(landing_1.landing, {
|
|
42
47
|
status: 200,
|
|
43
|
-
headers: {
|
|
44
|
-
"content-type": "text/html;charset=UTF-8",
|
|
45
|
-
},
|
|
48
|
+
headers: Object.assign(Object.assign({}, headers), { "content-type": "text/html;charset=UTF-8" }),
|
|
46
49
|
});
|
|
47
50
|
}
|
|
48
51
|
case "PUT": {
|
|
49
52
|
// Push config to Inngest.
|
|
50
|
-
const { status, message } = await this.register(reqUrl);
|
|
51
|
-
return new Response(JSON.stringify({ message }), { status });
|
|
53
|
+
const { status, message } = await this.register(reqUrl, env[consts_1.envKeys.DevServerUrl]);
|
|
54
|
+
return new Response(JSON.stringify({ message }), { status, headers });
|
|
52
55
|
}
|
|
53
56
|
case "POST": {
|
|
54
57
|
// Inngest is trying to run a step; confirm signed and run.
|
|
@@ -65,14 +68,16 @@ class CloudflareCommHandler extends express_1.InngestCommHandler {
|
|
|
65
68
|
if (stepRes.status === 500) {
|
|
66
69
|
return new Response(JSON.stringify(stepRes.error), {
|
|
67
70
|
status: stepRes.status,
|
|
71
|
+
headers,
|
|
68
72
|
});
|
|
69
73
|
}
|
|
70
74
|
return new Response(JSON.stringify(stepRes.body), {
|
|
71
75
|
status: stepRes.status,
|
|
76
|
+
headers,
|
|
72
77
|
});
|
|
73
78
|
}
|
|
74
79
|
}
|
|
75
|
-
return new Response(null, { status: 405 });
|
|
80
|
+
return new Response(null, { status: 405, headers });
|
|
76
81
|
};
|
|
77
82
|
}
|
|
78
83
|
}
|
|
@@ -82,8 +87,8 @@ class CloudflareCommHandler extends express_1.InngestCommHandler {
|
|
|
82
87
|
*
|
|
83
88
|
* @public
|
|
84
89
|
*/
|
|
85
|
-
const serve = (nameOrInngest,
|
|
86
|
-
return (0, express_1.serve)(new CloudflareCommHandler(nameOrInngest,
|
|
90
|
+
const serve = (nameOrInngest, fns, opts) => {
|
|
91
|
+
return (0, express_1.serve)(new CloudflareCommHandler(nameOrInngest, fns, Object.assign({ fetch: fetch.bind(globalThis) }, opts)));
|
|
87
92
|
};
|
|
88
93
|
exports.serve = serve;
|
|
89
94
|
//# sourceMappingURL=cloudflare.js.map
|
package/cloudflare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,uCAImB;AACnB,6CAAsD;AACtD,uCAAoC;
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"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"}
|
package/express.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Inngest } from "./components/Inngest";
|
|
2
2
|
import { InngestFunction } from "./components/InngestFunction";
|
|
3
|
-
import {
|
|
3
|
+
import type { FunctionConfig, RegisterOptions, RegisterRequest, StepRunResponse } from "./types";
|
|
4
4
|
/**
|
|
5
5
|
* A handler for serving Inngest functions. This type should be used
|
|
6
6
|
* whenever a handler for a new framework is being added to enforce that the
|
|
@@ -15,12 +15,14 @@ export declare type ServeHandler = (
|
|
|
15
15
|
*/
|
|
16
16
|
nameOrInngest: string | Inngest<any>,
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
* An array of the functions to serve and register with Inngest.
|
|
19
|
+
*/
|
|
20
|
+
functions: InngestFunction<any>[],
|
|
21
|
+
/**
|
|
22
|
+
* A set of options to further configure the registration of Inngest
|
|
23
|
+
* functions.
|
|
22
24
|
*/
|
|
23
|
-
|
|
25
|
+
opts?: RegisterOptions) => any;
|
|
24
26
|
/**
|
|
25
27
|
* Serve and register any declared functions with Inngest, making them available
|
|
26
28
|
* to be triggered by events.
|
|
@@ -30,7 +32,7 @@ signingKey: string, functions: InngestFunction<any>[], opts?: RegisterOptions) =
|
|
|
30
32
|
*
|
|
31
33
|
* @public
|
|
32
34
|
*/
|
|
33
|
-
export declare const serve:
|
|
35
|
+
export declare const serve: (...args: Parameters<ServeHandler> | [commHandler: InngestCommHandler]) => any;
|
|
34
36
|
/**
|
|
35
37
|
* TODO Instead of `createHandler`, expose `createRequest` and `handleResponse`
|
|
36
38
|
*
|
|
@@ -58,6 +60,13 @@ export declare class InngestCommHandler {
|
|
|
58
60
|
private readonly inngestRegisterUrl;
|
|
59
61
|
protected readonly frameworkName: string;
|
|
60
62
|
protected signingKey: string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* A property that can be set to indicate whether or not we believe we are in
|
|
65
|
+
* production mode.
|
|
66
|
+
*
|
|
67
|
+
* Should be set every time a request is received.
|
|
68
|
+
*/
|
|
69
|
+
protected _isProd: boolean;
|
|
61
70
|
private readonly headers;
|
|
62
71
|
private readonly fetch;
|
|
63
72
|
/**
|
|
@@ -72,16 +81,28 @@ export declare class InngestCommHandler {
|
|
|
72
81
|
* to find and register functions when interacting with Inngest Cloud.
|
|
73
82
|
*/
|
|
74
83
|
private readonly fns;
|
|
75
|
-
constructor(nameOrInngest: string | Inngest<any>,
|
|
84
|
+
constructor(nameOrInngest: string | Inngest<any>, functions: InngestFunction<any>[], { inngestRegisterUrl, fetch, landingPage, signingKey }?: RegisterOptions);
|
|
76
85
|
private get hashedSigningKey();
|
|
77
86
|
createHandler(): any;
|
|
78
87
|
protected runStep(functionId: string, stepId: string, data: any): Promise<StepRunResponse>;
|
|
79
88
|
protected configs(url: URL): FunctionConfig[];
|
|
89
|
+
/**
|
|
90
|
+
* Returns an SDK header split in to three parts so that they can be used for
|
|
91
|
+
* different purposes.
|
|
92
|
+
*
|
|
93
|
+
* To use the entire string, run `this.sdkHeader.join("")`.
|
|
94
|
+
*/
|
|
95
|
+
protected get sdkHeader(): [
|
|
96
|
+
prefix: string,
|
|
97
|
+
version: RegisterRequest["sdk"],
|
|
98
|
+
suffix: string
|
|
99
|
+
];
|
|
80
100
|
protected registerBody(url: URL): RegisterRequest;
|
|
81
|
-
protected register(url: URL): Promise<{
|
|
101
|
+
protected register(url: URL, devServerHost: string | undefined): Promise<{
|
|
82
102
|
status: number;
|
|
83
103
|
message: string;
|
|
84
104
|
}>;
|
|
105
|
+
private get isProd();
|
|
85
106
|
protected shouldShowLandingPage(strEnvVar: string | undefined): boolean;
|
|
86
107
|
protected validateSignature(): boolean;
|
|
87
108
|
protected signResponse(): string;
|
package/express.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAK/D,OAAO,KAAK,EACV,cAAc,EAEd,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,SAAS,CAAC;AAgBjB;;;;;;GAMG;AACH,oBAAY,YAAY,GAAG;AACzB;;;GAGG;AACH,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;AAEpC;;GAEG;AACH,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;AAEjC;;;GAGG;AACH,IAAI,CAAC,EAAE,eAAe,KACnB,GAAG,CAAC;AAET;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,YACP,WAAW,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,QAYtE,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAkB;IACtB,IAAI,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAEzC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAa;IACrD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,UAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4C;gBAG9D,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EACpC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EACjC,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GAAE,eAAoB;IAyC9E,OAAO,KAAK,gBAAgB,GAW3B;IAEM,aAAa,IAAI,GAAG;cAkFX,OAAO,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,eAAe,CAAC;IA4B3B,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,EAAE;IAI7C;;;;;OAKG;IACH,SAAS,KAAK,SAAS,IAAI;QACzB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,MAAM;KACf,CAEA;IAED,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,eAAe;cAYjC,QAAQ,CACtB,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA0D/C,OAAO,KAAK,MAAM,GAEjB;IAED,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAIvE,SAAS,CAAC,iBAAiB,IAAI,OAAO;IAItC,SAAS,CAAC,YAAY,IAAI,MAAM;CAGjC"}
|
package/express.js
CHANGED
|
@@ -7,9 +7,13 @@ exports.InngestCommHandler = exports.serve = void 0;
|
|
|
7
7
|
const sha_js_1 = __importDefault(require("sha.js"));
|
|
8
8
|
const zod_1 = require("zod");
|
|
9
9
|
const consts_1 = require("./helpers/consts");
|
|
10
|
+
const devserver_1 = require("./helpers/devserver");
|
|
10
11
|
const scalar_1 = require("./helpers/scalar");
|
|
11
12
|
const landing_1 = require("./landing");
|
|
12
13
|
const version_1 = require("./version");
|
|
14
|
+
/**
|
|
15
|
+
* A schema for the response from Inngest when registering.
|
|
16
|
+
*/
|
|
13
17
|
const registerResSchema = zod_1.z.object({
|
|
14
18
|
status: zod_1.z.number().default(200),
|
|
15
19
|
error: zod_1.z.string().default("Successfully registered"),
|
|
@@ -28,8 +32,8 @@ const serve = (...args) => {
|
|
|
28
32
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
29
33
|
return args[0].createHandler();
|
|
30
34
|
}
|
|
31
|
-
const [nameOrInngest,
|
|
32
|
-
const handler = new InngestCommHandler(nameOrInngest,
|
|
35
|
+
const [nameOrInngest, fns, opts] = args;
|
|
36
|
+
const handler = new InngestCommHandler(nameOrInngest, fns, opts);
|
|
33
37
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
34
38
|
return handler.createHandler();
|
|
35
39
|
};
|
|
@@ -54,8 +58,15 @@ exports.serve = serve;
|
|
|
54
58
|
* @public
|
|
55
59
|
*/
|
|
56
60
|
class InngestCommHandler {
|
|
57
|
-
constructor(nameOrInngest,
|
|
58
|
-
this.frameworkName = "
|
|
61
|
+
constructor(nameOrInngest, functions, { inngestRegisterUrl, fetch, landingPage, signingKey } = {}) {
|
|
62
|
+
this.frameworkName = "express";
|
|
63
|
+
/**
|
|
64
|
+
* A property that can be set to indicate whether or not we believe we are in
|
|
65
|
+
* production mode.
|
|
66
|
+
*
|
|
67
|
+
* Should be set every time a request is received.
|
|
68
|
+
*/
|
|
69
|
+
this._isProd = false;
|
|
59
70
|
/**
|
|
60
71
|
* A private collection of functions that are being served. This map is used
|
|
61
72
|
* to find and register functions when interacting with Inngest Cloud.
|
|
@@ -75,7 +86,7 @@ class InngestCommHandler {
|
|
|
75
86
|
this.showLandingPage = landingPage;
|
|
76
87
|
this.headers = {
|
|
77
88
|
"Content-Type": "application/json",
|
|
78
|
-
"User-Agent": `
|
|
89
|
+
"User-Agent": `inngest-js:v${version_1.version} (${this.frameworkName})`,
|
|
79
90
|
};
|
|
80
91
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
81
92
|
this.fetch = fetch || require("cross-fetch");
|
|
@@ -94,6 +105,7 @@ class InngestCommHandler {
|
|
|
94
105
|
}
|
|
95
106
|
createHandler() {
|
|
96
107
|
return async (req, res) => {
|
|
108
|
+
res.setHeader("x-inngest-sdk", this.sdkHeader.join(""));
|
|
97
109
|
const hostname = req.hostname || req.headers["host"];
|
|
98
110
|
const protocol = (hostname === null || hostname === void 0 ? void 0 : hostname.includes("://")) ? "" : `${req.protocol}://`;
|
|
99
111
|
let reqUrl;
|
|
@@ -106,20 +118,25 @@ class InngestCommHandler {
|
|
|
106
118
|
console.error(message);
|
|
107
119
|
return res.status(500).json({ message });
|
|
108
120
|
}
|
|
121
|
+
if (!this.signingKey && process.env[consts_1.envKeys.SigningKey]) {
|
|
122
|
+
this.signingKey = process.env[consts_1.envKeys.SigningKey];
|
|
123
|
+
}
|
|
124
|
+
this._isProd = process.env.ENVIRONMENT === "production";
|
|
109
125
|
switch (req.method) {
|
|
110
126
|
case "GET": {
|
|
111
127
|
const showLandingPage = this.shouldShowLandingPage(process.env[consts_1.envKeys.LandingPage]);
|
|
112
128
|
if (!showLandingPage)
|
|
113
129
|
break;
|
|
114
130
|
if (Object.hasOwnProperty.call(req.query, consts_1.queryKeys.Introspect)) {
|
|
115
|
-
|
|
131
|
+
const introspection = Object.assign(Object.assign({}, this.registerBody(reqUrl)), { hasSigningKey: Boolean(this.signingKey) });
|
|
132
|
+
return void res.status(200).json(introspection);
|
|
116
133
|
}
|
|
117
134
|
// Grab landing page and serve
|
|
118
135
|
return void res.status(200).send(landing_1.landing);
|
|
119
136
|
}
|
|
120
137
|
case "PUT": {
|
|
121
138
|
// Push config to Inngest.
|
|
122
|
-
const { status, message } = await this.register(reqUrl);
|
|
139
|
+
const { status, message } = await this.register(reqUrl, process.env[consts_1.envKeys.DevServerUrl]);
|
|
123
140
|
return void res.status(status).json({ message });
|
|
124
141
|
}
|
|
125
142
|
case "POST": {
|
|
@@ -171,6 +188,15 @@ class InngestCommHandler {
|
|
|
171
188
|
configs(url) {
|
|
172
189
|
return Object.values(this.fns).map((fn) => fn["getConfig"](url, this.name));
|
|
173
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Returns an SDK header split in to three parts so that they can be used for
|
|
193
|
+
* different purposes.
|
|
194
|
+
*
|
|
195
|
+
* To use the entire string, run `this.sdkHeader.join("")`.
|
|
196
|
+
*/
|
|
197
|
+
get sdkHeader() {
|
|
198
|
+
return ["inngest-", `js:v${version_1.version}`, ` (${this.frameworkName})`];
|
|
199
|
+
}
|
|
174
200
|
registerBody(url) {
|
|
175
201
|
return {
|
|
176
202
|
url: url.href,
|
|
@@ -178,15 +204,24 @@ class InngestCommHandler {
|
|
|
178
204
|
framework: this.frameworkName,
|
|
179
205
|
appName: this.name,
|
|
180
206
|
functions: this.configs(url),
|
|
181
|
-
sdk:
|
|
207
|
+
sdk: this.sdkHeader[1],
|
|
182
208
|
v: "0.1",
|
|
183
209
|
};
|
|
184
210
|
}
|
|
185
|
-
async register(url) {
|
|
211
|
+
async register(url, devServerHost) {
|
|
186
212
|
const body = this.registerBody(url);
|
|
187
213
|
let res;
|
|
214
|
+
// Whenever we register, we check to see if the dev server is up. This
|
|
215
|
+
// is a noop and returns false in production.
|
|
216
|
+
let registerURL = this.inngestRegisterUrl;
|
|
217
|
+
if (!this.isProd) {
|
|
218
|
+
const hasDevServer = await (0, devserver_1.devServerAvailable)(devServerHost, this.fetch);
|
|
219
|
+
if (hasDevServer) {
|
|
220
|
+
registerURL = (0, devserver_1.devServerUrl)(devServerHost, "/fn/register");
|
|
221
|
+
}
|
|
222
|
+
}
|
|
188
223
|
try {
|
|
189
|
-
res = await this.fetch(
|
|
224
|
+
res = await this.fetch(registerURL.href, {
|
|
190
225
|
method: "POST",
|
|
191
226
|
body: JSON.stringify(body),
|
|
192
227
|
headers: Object.assign(Object.assign({}, this.headers), { Authorization: `Bearer ${this.hashedSigningKey}` }),
|
|
@@ -210,9 +245,12 @@ class InngestCommHandler {
|
|
|
210
245
|
console.warn("Couldn't unpack register response:", err);
|
|
211
246
|
}
|
|
212
247
|
const { status, error } = registerResSchema.parse(data);
|
|
213
|
-
console.log("Registered:", res.status, res.statusText, data);
|
|
248
|
+
console.log("Registered Inngest functions:", res.status, res.statusText, data);
|
|
214
249
|
return { status, message: error };
|
|
215
250
|
}
|
|
251
|
+
get isProd() {
|
|
252
|
+
return this._isProd;
|
|
253
|
+
}
|
|
216
254
|
shouldShowLandingPage(strEnvVar) {
|
|
217
255
|
var _a, _b;
|
|
218
256
|
return (_b = (_a = this.showLandingPage) !== null && _a !== void 0 ? _a : (0, scalar_1.strBoolean)(strEnvVar)) !== null && _b !== void 0 ? _b : true;
|
package/express.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":";;;;;;AACA,oDAA2B;AAC3B,6BAAwB;AAGxB,6CAAsD;AACtD,6CAA8C;AAC9C,uCAAoC;AAQpC,uCAAoC;AAEpC,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC/B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;CACrD,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"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"}
|
package/helpers/consts.d.ts
CHANGED
|
@@ -6,6 +6,13 @@ export declare enum queryKeys {
|
|
|
6
6
|
export declare enum envKeys {
|
|
7
7
|
SigningKey = "INNGEST_SIGNING_KEY",
|
|
8
8
|
EventKey = "INNGEST_EVENT_KEY",
|
|
9
|
-
LandingPage = "INNGEST_LANDING_PAGE"
|
|
9
|
+
LandingPage = "INNGEST_LANDING_PAGE",
|
|
10
|
+
DevServerUrl = "INNGEST_DEVSERVER_URL"
|
|
10
11
|
}
|
|
12
|
+
export declare enum prodEnvKeys {
|
|
13
|
+
NodeEnvKey = "NODE_ENV",
|
|
14
|
+
VercelEnvKey = "VERCEL_ENV",
|
|
15
|
+
NetlifyEnvKey = "CONTEXT"
|
|
16
|
+
}
|
|
17
|
+
export declare const defaultDevServerHost = "http://127.0.0.1:8288/";
|
|
11
18
|
//# sourceMappingURL=consts.d.ts.map
|
package/helpers/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/helpers/consts.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,oBAAY,OAAO;IACjB,UAAU,wBAAwB;IAClC,QAAQ,sBAAsB;IAC9B,WAAW,yBAAyB;
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/helpers/consts.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,oBAAY,OAAO;IACjB,UAAU,wBAAwB;IAClC,QAAQ,sBAAsB;IAC9B,WAAW,yBAAyB;IACpC,YAAY,0BAA0B;CACvC;AAED,oBAAY,WAAW;IACrB,UAAU,aAAa;IACvB,YAAY,eAAe;IAC3B,aAAa,YAAY;CAC1B;AAED,eAAO,MAAM,oBAAoB,2BAA2B,CAAC"}
|
package/helpers/consts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.envKeys = exports.queryKeys = void 0;
|
|
3
|
+
exports.defaultDevServerHost = exports.prodEnvKeys = exports.envKeys = exports.queryKeys = void 0;
|
|
4
4
|
var queryKeys;
|
|
5
5
|
(function (queryKeys) {
|
|
6
6
|
queryKeys["FnId"] = "fnId";
|
|
@@ -12,5 +12,13 @@ var envKeys;
|
|
|
12
12
|
envKeys["SigningKey"] = "INNGEST_SIGNING_KEY";
|
|
13
13
|
envKeys["EventKey"] = "INNGEST_EVENT_KEY";
|
|
14
14
|
envKeys["LandingPage"] = "INNGEST_LANDING_PAGE";
|
|
15
|
+
envKeys["DevServerUrl"] = "INNGEST_DEVSERVER_URL";
|
|
15
16
|
})(envKeys = exports.envKeys || (exports.envKeys = {}));
|
|
17
|
+
var prodEnvKeys;
|
|
18
|
+
(function (prodEnvKeys) {
|
|
19
|
+
prodEnvKeys["NodeEnvKey"] = "NODE_ENV";
|
|
20
|
+
prodEnvKeys["VercelEnvKey"] = "VERCEL_ENV";
|
|
21
|
+
prodEnvKeys["NetlifyEnvKey"] = "CONTEXT";
|
|
22
|
+
})(prodEnvKeys = exports.prodEnvKeys || (exports.prodEnvKeys = {}));
|
|
23
|
+
exports.defaultDevServerHost = "http://127.0.0.1:8288/";
|
|
16
24
|
//# sourceMappingURL=consts.js.map
|
package/helpers/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/helpers/consts.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,sCAAyB,CAAA;AAC3B,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/helpers/consts.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,sCAAyB,CAAA;AAC3B,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,6CAAkC,CAAA;IAClC,yCAA8B,CAAA;IAC9B,+CAAoC,CAAA;IACpC,iDAAsC,CAAA;AACxC,CAAC,EALW,OAAO,GAAP,eAAO,KAAP,eAAO,QAKlB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAEY,QAAA,oBAAoB,GAAG,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { FunctionConfig } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* A simple type map that we can transparently use `fetch` later without having
|
|
4
|
+
* to fall in to the self-referencing `const fetch: typeof fetch = ...` which
|
|
5
|
+
* fails.
|
|
6
|
+
*/
|
|
7
|
+
declare type FetchT = typeof fetch;
|
|
8
|
+
/**
|
|
9
|
+
* Attempts to contact the dev server, returning a boolean indicating whether or
|
|
10
|
+
* not it was successful.
|
|
11
|
+
*/
|
|
12
|
+
export declare const devServerAvailable: (host: string | undefined, fetch: FetchT) => Promise<boolean>;
|
|
13
|
+
export declare const devServerUrl: (host?: string, pathname?: string) => URL;
|
|
14
|
+
export declare type InfoResponse = {
|
|
15
|
+
version: string;
|
|
16
|
+
startOpts: {
|
|
17
|
+
sdkURLs: string[];
|
|
18
|
+
};
|
|
19
|
+
authed: boolean;
|
|
20
|
+
workspaces: {
|
|
21
|
+
prod: WorkspaceResponse;
|
|
22
|
+
test: WorkspaceResponse;
|
|
23
|
+
};
|
|
24
|
+
functions: FunctionConfig[];
|
|
25
|
+
handlers: SDKHandler[];
|
|
26
|
+
};
|
|
27
|
+
declare type WorkspaceResponse = {
|
|
28
|
+
signingKey: string;
|
|
29
|
+
eventKeys: Array<{
|
|
30
|
+
name: string;
|
|
31
|
+
key: string;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
declare type SDKHandler = {
|
|
35
|
+
functionIDs: Array<string>;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
updatedAt: string;
|
|
38
|
+
errors: Array<string>;
|
|
39
|
+
sdk: {
|
|
40
|
+
url: string;
|
|
41
|
+
language: string;
|
|
42
|
+
version: string;
|
|
43
|
+
framework?: string;
|
|
44
|
+
app: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=devserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devserver.d.ts","sourceRoot":"","sources":["../../src/helpers/devserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C;;;;GAIG;AACH,aAAK,MAAM,GAAG,OAAO,KAAK,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,kBAAkB,oCAUtB,MAAM,KACZ,QAAQ,OAAO,CAUjB,CAAC;AAEF,eAAO,MAAM,YAAY,wCAGtB,GAEF,CAAC;AAGF,oBAAY,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE;QACV,IAAI,EAAE,iBAAiB,CAAC;QACxB,IAAI,EAAE,iBAAiB,CAAC;KACzB,CAAC;IAEF,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,aAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;CACJ,CAAC;AAEF,aAAK,UAAU,GAAG;IAChB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.devServerUrl = exports.devServerAvailable = void 0;
|
|
4
|
+
const consts_1 = require("./consts");
|
|
5
|
+
/**
|
|
6
|
+
* Attempts to contact the dev server, returning a boolean indicating whether or
|
|
7
|
+
* not it was successful.
|
|
8
|
+
*/
|
|
9
|
+
const devServerAvailable = async (
|
|
10
|
+
/**
|
|
11
|
+
* The host of the dev server. You should pass in an environment variable as
|
|
12
|
+
* this parameter.
|
|
13
|
+
*/
|
|
14
|
+
host = consts_1.defaultDevServerHost,
|
|
15
|
+
/**
|
|
16
|
+
* The fetch implementation to use to communicate with the dev server.
|
|
17
|
+
*/
|
|
18
|
+
fetch) => {
|
|
19
|
+
try {
|
|
20
|
+
const url = (0, exports.devServerUrl)(host, "/dev");
|
|
21
|
+
const result = await fetch(url.toString());
|
|
22
|
+
await result.json();
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.devServerAvailable = devServerAvailable;
|
|
30
|
+
const devServerUrl = (host = consts_1.defaultDevServerHost, pathname = "") => {
|
|
31
|
+
return new URL(pathname, host.includes("://") ? host : `http://${host}`);
|
|
32
|
+
};
|
|
33
|
+
exports.devServerUrl = devServerUrl;
|
|
34
|
+
//# sourceMappingURL=devserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devserver.js","sourceRoot":"","sources":["../../src/helpers/devserver.ts"],"names":[],"mappings":";;;AACA,qCAAgD;AAShD;;;GAGG;AACI,MAAM,kBAAkB,GAAG,KAAK;AACrC;;;GAGG;AACH,IAAI,GAAG,6BAAoB;AAE3B;;GAEG;AACH,KAAa,EACK,EAAE;IACpB,IAAI;QACF,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AArBW,QAAA,kBAAkB,sBAqB7B;AAEK,MAAM,YAAY,GAAG,CAC1B,IAAI,GAAG,6BAAoB,EAC3B,QAAQ,GAAG,EAAE,EACR,EAAE;IACP,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB"}
|