inngest 0.1.0-beta1.0 → 0.3.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 +15 -0
- package/dist/index.d.ts +42 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -10
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +3 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +70 -0
- package/dist/init.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
npm install inngest
|
|
5
5
|
```
|
|
6
6
|
|
|
7
|
+
👋 _**Have a question or feature request? [Join our Discord](https://www.inngest.com/discord)!**_
|
|
8
|
+
|
|
7
9
|
## Usage
|
|
8
10
|
|
|
9
11
|
```js
|
|
@@ -14,6 +16,7 @@ const { Inngest } = require("inngest");
|
|
|
14
16
|
|
|
15
17
|
const inngest = new Inngest(process.env.INNGEST_SOURCE_API_KEY);
|
|
16
18
|
|
|
19
|
+
// Send a single event
|
|
17
20
|
await inngest.send({
|
|
18
21
|
name: "user.signup",
|
|
19
22
|
data: {
|
|
@@ -24,4 +27,16 @@ await inngest.send({
|
|
|
24
27
|
email: user.email,
|
|
25
28
|
},
|
|
26
29
|
});
|
|
30
|
+
|
|
31
|
+
// Send events in bulk
|
|
32
|
+
const events = ["+12125551234", "+13135555678"].map(phoneNumber => ({
|
|
33
|
+
name: "sms.response.requested",
|
|
34
|
+
data: {
|
|
35
|
+
message: "Are you available for work today? (y/n)"
|
|
36
|
+
},
|
|
37
|
+
user: {
|
|
38
|
+
phone: phoneNumber
|
|
39
|
+
}
|
|
40
|
+
}});
|
|
41
|
+
await inngest.send(events);
|
|
27
42
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An HTTP-like, standardised response format that allows Inngest to help
|
|
3
|
+
* orchestrate steps and retries.
|
|
4
|
+
*/
|
|
5
|
+
export interface InngestResponse {
|
|
6
|
+
/**
|
|
7
|
+
* A step response must contain an HTTP status code.
|
|
8
|
+
*
|
|
9
|
+
* A `2xx` response indicates success; this is not a failure and no retry is
|
|
10
|
+
* necessary.
|
|
11
|
+
*
|
|
12
|
+
* A `4xx` response indicates a bad request; this step will not be retried as
|
|
13
|
+
* it is deemed irrecoverable. Examples of this might be an event with
|
|
14
|
+
* insufficient data or concerning a user that no longer exists.
|
|
15
|
+
*
|
|
16
|
+
* A `5xx` status indicates a temporary internal error; this will be retried
|
|
17
|
+
* according to the step and function's retry policy (3 times, by default).
|
|
18
|
+
*
|
|
19
|
+
* @link https://www.inngest.com/docs/functions/function-input-and-output#response-format
|
|
20
|
+
* @link https://www.inngest.com/docs/functions/retries
|
|
21
|
+
*/
|
|
22
|
+
status: number;
|
|
23
|
+
/**
|
|
24
|
+
* The output of the function - the `body` - can be any arbitrary
|
|
25
|
+
* JSON-compatible data. It is then usable by any future steps.
|
|
26
|
+
*
|
|
27
|
+
* @link https://www.inngest.com/docs/functions/function-input-and-output#response-format
|
|
28
|
+
*/
|
|
29
|
+
body?: any;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A single step within a function.
|
|
33
|
+
*/
|
|
34
|
+
export declare type InngestStep<Context = any> = (
|
|
35
|
+
/**
|
|
36
|
+
* The context for this step, including the triggering event and any previous
|
|
37
|
+
* step output.
|
|
38
|
+
*/
|
|
39
|
+
context: Context) => Promise<InngestResponse> | InngestResponse;
|
|
1
40
|
/**
|
|
2
41
|
* The event payload structure for sending data to Inngest
|
|
3
42
|
*/
|
|
@@ -73,10 +112,11 @@ declare class Inngest {
|
|
|
73
112
|
* @param apiKey - An API Key for the Inngest Source API
|
|
74
113
|
*/
|
|
75
114
|
constructor(apiKey: string, { inngestApiUrl }?: InngestClientOptions);
|
|
115
|
+
private getResponseError;
|
|
76
116
|
/**
|
|
77
|
-
* Send
|
|
117
|
+
* Send event(s) to Inngest
|
|
78
118
|
*/
|
|
79
|
-
send(payload: EventPayload): Promise<boolean>;
|
|
119
|
+
send(payload: EventPayload | EventPayload[]): Promise<boolean>;
|
|
80
120
|
}
|
|
81
121
|
export { Inngest };
|
|
82
122
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;GAEG;AACH,oBAAY,WAAW,CAAC,OAAO,GAAG,GAAG,IAAI;AACvC;;;GAGG;AACH,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,cAAM,OAAO;IACX;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,WAAW,CAAqB;IAExC;;OAEG;gBAED,MAAM,EAAE,MAAM,EACd,EAAE,aAAmC,EAAE,GAAE,oBAAyB;IAgBpE,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACU,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAW5E;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Inngest = void 0;
|
|
7
|
-
const url_1 = require("url");
|
|
8
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const url_1 = require("url");
|
|
9
9
|
/**
|
|
10
10
|
* A client for the Inngest Source API
|
|
11
11
|
*/
|
|
@@ -26,14 +26,7 @@ class Inngest {
|
|
|
26
26
|
maxRedirects: 0,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
* Send an event to Inngest
|
|
31
|
-
*/
|
|
32
|
-
async send(payload) {
|
|
33
|
-
const response = await axios_1.default.post(this.inngestApiUrl, payload, this.axiosConfig);
|
|
34
|
-
if (response.status >= 200 && response.status < 300) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
29
|
+
getResponseError(response) {
|
|
37
30
|
let errorMessage = "Unknown error";
|
|
38
31
|
switch (response.status) {
|
|
39
32
|
case 401:
|
|
@@ -62,7 +55,17 @@ class Inngest {
|
|
|
62
55
|
errorMessage = "Internal server error";
|
|
63
56
|
break;
|
|
64
57
|
}
|
|
65
|
-
|
|
58
|
+
return new Error(`Inngest API Error: ${response.status} ${errorMessage}`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Send event(s) to Inngest
|
|
62
|
+
*/
|
|
63
|
+
async send(payload) {
|
|
64
|
+
const response = await axios_1.default.post(this.inngestApiUrl, payload, this.axiosConfig);
|
|
65
|
+
if (response.status >= 200 && response.status < 300) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
throw this.getResponseError(response);
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
exports.Inngest = Inngest;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AACjE,6BAA0B;AAsG1B;;GAEG;AACH,MAAM,OAAO;IAgBX;;OAEG;IACH,YACE,MAAc,EACd,EAAE,aAAa,GAAG,mBAAmB,KAA2B,EAAE;QAElE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,SAAG,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEpE,IAAI,CAAC,WAAW,GAAG;YACjB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,iBAAiB;aAChC;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;YAC1B,YAAY,EAAE,CAAC;SAChB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,QAAuB;QAC9C,IAAI,YAAY,GAAG,eAAe,CAAC;QACnC,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACvB,KAAK,GAAG;gBACN,YAAY,GAAG,mBAAmB,CAAC;gBACnC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,8BAA8B,CAAC;gBAC9C,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,WAAW,CAAC;gBAC3B,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,mBAAmB,CAAC;gBACnC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,MAAM;YACR,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,YAAY,GAAG,6BAA6B,CAAC;gBAC7C,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,yBAAyB,CAAC;gBACzC,MAAM;YACR,KAAK,GAAG;gBACN,YAAY,GAAG,uBAAuB,CAAC;gBACvC,MAAM;SACT;QACD,OAAO,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,OAAsC;QACtD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,IAAI,CAAC,aAAa,EAClB,OAAO,EACP,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;YACnD,OAAO,IAAI,CAAC;SACb;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;CACF;AAEQ,0BAAO"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":""}
|
package/dist/init.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const path_1 = __importDefault(require("path"));
|
|
31
|
+
/**
|
|
32
|
+
* Init initializes the context for running the function. This calls
|
|
33
|
+
* start() when
|
|
34
|
+
*/
|
|
35
|
+
async function init() {
|
|
36
|
+
const [, , fnPath, rawContext] = process.argv;
|
|
37
|
+
// We pass the event in as an argument to the node function. Running
|
|
38
|
+
// npx ts-node "./foo.bar" means we have 2 arguments prior to the event.
|
|
39
|
+
// We'll also be adding stdin and lambda compatibility soon.
|
|
40
|
+
const context = JSON.parse(rawContext);
|
|
41
|
+
if (!context) {
|
|
42
|
+
throw new Error("unable to parse context");
|
|
43
|
+
}
|
|
44
|
+
// Import this asynchronously, such that any top-level
|
|
45
|
+
// errors in user code are caught.
|
|
46
|
+
const { run } = (await Promise.resolve().then(() => __importStar(require(path_1.default.join(process.cwd(), fnPath)))));
|
|
47
|
+
const result = await run(context);
|
|
48
|
+
/**
|
|
49
|
+
* We could also validate the response format (status code required) here and
|
|
50
|
+
* throw an error if it's not there?
|
|
51
|
+
*/
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
init()
|
|
55
|
+
.then((body) => {
|
|
56
|
+
if (typeof body === "string") {
|
|
57
|
+
console.log(JSON.stringify({ body }));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
console.log(JSON.stringify(body));
|
|
61
|
+
})
|
|
62
|
+
.catch((e) => {
|
|
63
|
+
// TODO: Log error and stack trace.
|
|
64
|
+
console.log(JSON.stringify({
|
|
65
|
+
error: e.stack || e.message,
|
|
66
|
+
status: 500,
|
|
67
|
+
}));
|
|
68
|
+
process.exit(1);
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAAwB;AAGxB;;;GAGG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,EAAE,AAAD,EAAG,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9C,qEAAqE;IACrE,wEAAwE;IACxE,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,sDAAsD;IACtD,kCAAkC;IAClC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,wDACf,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,GACjC,CAEA,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;IAElC;;;OAGG;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO;KACR;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;IAClB,mCAAmC;IACnC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO;QAC3B,MAAM,EAAE,GAAG;KACZ,CAAC,CACH,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "inngest",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Official SDK for Inngest.com",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"registry": "https://registry.npmjs.org"
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"inngest-init": "./dist/init.js"
|
|
12
|
+
},
|
|
7
13
|
"scripts": {
|
|
8
14
|
"build": "yarn run clean && tsc",
|
|
9
15
|
"test": "jest",
|
|
10
16
|
"clean": "rm -rf ./dist",
|
|
17
|
+
"prepare": "yarn run test && yarn run build",
|
|
11
18
|
"release": "yarn run np"
|
|
12
19
|
},
|
|
13
20
|
"homepage": "https://github.com/inngest/inngest-js#readme",
|
|
@@ -15,7 +22,7 @@
|
|
|
15
22
|
"type": "git",
|
|
16
23
|
"url": "git+https://github.com/inngest/inngest-js.git"
|
|
17
24
|
},
|
|
18
|
-
"author": "Dan Farrelly <
|
|
25
|
+
"author": "Dan Farrelly <dan@inngest.com>",
|
|
19
26
|
"license": "GPL-3.0",
|
|
20
27
|
"private": false,
|
|
21
28
|
"files": [
|