qstd 0.3.18 → 0.3.19
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/dist/server/aws/lambda/domain.d.ts +50 -1
- package/dist/server/aws/lambda/domain.d.ts.map +1 -1
- package/dist/server/aws/lambda/types.d.ts +10 -1
- package/dist/server/aws/lambda/types.d.ts.map +1 -1
- package/dist/server/index.cjs +21 -3
- package/dist/server/index.js +21 -3
- package/package.json +1 -1
|
@@ -13,5 +13,54 @@ export declare const createRestHandler: (fn: (event: import("aws-lambda").APIGat
|
|
|
13
13
|
* @returns
|
|
14
14
|
*/
|
|
15
15
|
export declare const createWebsocketHandler: (fn: (event: import("aws-lambda").APIGatewayProxyEvent) => Promise<_t.ApigwResult> | _t.ApigwResult) => (event: import("aws-lambda").APIGatewayProxyEvent) => Promise<_t.Response | _t.ApigwResult>;
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Creates a batch failures tracker for SQS handlers.
|
|
18
|
+
* Provides a simple `add(id)` method instead of pushing objects.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const failures = Lambda.withBatchFailures();
|
|
23
|
+
*
|
|
24
|
+
* for (const record of event.Records) {
|
|
25
|
+
* try {
|
|
26
|
+
* // process record
|
|
27
|
+
* } catch (err) {
|
|
28
|
+
* failures.add(record.messageId);
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
*
|
|
32
|
+
* return { batchItemFailures: failures.items };
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const withBatchFailures: () => {
|
|
36
|
+
/** Add a failed message by its ID */
|
|
37
|
+
add: (itemIdentifier: string) => void;
|
|
38
|
+
/** The failures array for the response */
|
|
39
|
+
items: import("aws-lambda").SQSBatchItemFailure[];
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Creates a type-safe SQS handler that enforces returning `{ batchItemFailures }`.
|
|
43
|
+
*
|
|
44
|
+
* Provides:
|
|
45
|
+
* - **Compile-time safety**: TypeScript enforces the return type
|
|
46
|
+
* - **Runtime safety**: Validates response shape before returning
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* export const handler = Lambda.createSqsHandler(async (event) => {
|
|
51
|
+
* const failures = Lambda.withBatchFailures();
|
|
52
|
+
*
|
|
53
|
+
* for (const record of event.Records) {
|
|
54
|
+
* try {
|
|
55
|
+
* // process record
|
|
56
|
+
* } catch (err) {
|
|
57
|
+
* failures.add(record.messageId);
|
|
58
|
+
* }
|
|
59
|
+
* }
|
|
60
|
+
*
|
|
61
|
+
* return { batchItemFailures: failures.items };
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const createSqsHandler: (fn: _t.SqsHandlerFn) => _t.SqsHandlerFn;
|
|
17
66
|
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,6GA+E5B,kDACA,0CAhFuE,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2GAwEjC,gDACA,0CAxE4C,CAAC;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB;IAG1B,qCAAqC;0BACf,MAAM;IAG5B,0CAA0C;;CAG7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,gBAAgB,GAC1B,IAAI,EAAE,CAAC,YAAY,KAAG,EAAE,CAAC,YAazB,CAAC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResultV2, SQSHandler as AwsSqsHandler, SQSBatchResponse, Callback, Context, SQSEvent } from "aws-lambda";
|
|
1
|
+
import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResultV2, SQSHandler as AwsSqsHandler, SQSBatchItemFailure, SQSBatchResponse, Callback, Context, SQSEvent } from "aws-lambda";
|
|
2
|
+
/** SQS batch response - return this from SQS handlers */
|
|
3
|
+
export type SqsBatchResponse = SQSBatchResponse;
|
|
4
|
+
/** Individual failure item - add to batchItemFailures array */
|
|
5
|
+
export type SqsBatchItemFailure = SQSBatchItemFailure;
|
|
6
|
+
/**
|
|
7
|
+
* Type-safe SQS handler that enforces returning { batchItemFailures }.
|
|
8
|
+
* Use with Lambda.createSqsHandler for compile + runtime safety.
|
|
9
|
+
*/
|
|
10
|
+
export type SqsHandlerFn = (event: SQSEvent) => Promise<SQSBatchResponse>;
|
|
2
11
|
export type Response = {
|
|
3
12
|
statusCode: number;
|
|
4
13
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,IAAI,aAAa,EAC3B,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,6BAA6B,EAAE,MAAM,CAAC;QACtC,8BAA8B,EAAE,MAAM,CAAC;QACvC,8BAA8B,EAAE,MAAM,CAAC;QACvC,kCAAkC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzE,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE/B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;SAGK;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,IAAI,aAAa,EAC3B,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE1E,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,6BAA6B,EAAE,MAAM,CAAC;QACtC,8BAA8B,EAAE,MAAM,CAAC;QACvC,8BAA8B,EAAE,MAAM,CAAC;QACvC,kCAAkC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzE,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE/B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;SAGK;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC"}
|
package/dist/server/index.cjs
CHANGED
|
@@ -659,7 +659,8 @@ __export(lambda_exports, {
|
|
|
659
659
|
createRestHandler: () => createRestHandler,
|
|
660
660
|
createSqsHandler: () => createSqsHandler,
|
|
661
661
|
createWebsocketHandler: () => createWebsocketHandler,
|
|
662
|
-
response: () => response
|
|
662
|
+
response: () => response,
|
|
663
|
+
withBatchFailures: () => withBatchFailures
|
|
663
664
|
});
|
|
664
665
|
|
|
665
666
|
// src/server/aws/lambda/literals.ts
|
|
@@ -728,8 +729,25 @@ var createHandlerFactory = () => (fn) => async (event) => {
|
|
|
728
729
|
// src/server/aws/lambda/domain.ts
|
|
729
730
|
var createRestHandler = createHandlerFactory();
|
|
730
731
|
var createWebsocketHandler = createHandlerFactory();
|
|
731
|
-
var
|
|
732
|
-
|
|
732
|
+
var withBatchFailures = () => {
|
|
733
|
+
const items = [];
|
|
734
|
+
return {
|
|
735
|
+
/** Add a failed message by its ID */
|
|
736
|
+
add: (itemIdentifier) => {
|
|
737
|
+
items.push({ itemIdentifier });
|
|
738
|
+
},
|
|
739
|
+
/** The failures array for the response */
|
|
740
|
+
items
|
|
741
|
+
};
|
|
742
|
+
};
|
|
743
|
+
var createSqsHandler = (fn) => async (event) => {
|
|
744
|
+
const result = await fn(event);
|
|
745
|
+
if (!result || !Array.isArray(result.batchItemFailures)) {
|
|
746
|
+
throw new Error(
|
|
747
|
+
"SQS handler must return { batchItemFailures: [] }. Return an empty array for success, or include failed messageIds for partial failures."
|
|
748
|
+
);
|
|
749
|
+
}
|
|
750
|
+
return result;
|
|
733
751
|
};
|
|
734
752
|
|
|
735
753
|
// src/server/aws/ddb/index.ts
|
package/dist/server/index.js
CHANGED
|
@@ -657,7 +657,8 @@ __export(lambda_exports, {
|
|
|
657
657
|
createRestHandler: () => createRestHandler,
|
|
658
658
|
createSqsHandler: () => createSqsHandler,
|
|
659
659
|
createWebsocketHandler: () => createWebsocketHandler,
|
|
660
|
-
response: () => response
|
|
660
|
+
response: () => response,
|
|
661
|
+
withBatchFailures: () => withBatchFailures
|
|
661
662
|
});
|
|
662
663
|
|
|
663
664
|
// src/server/aws/lambda/literals.ts
|
|
@@ -726,8 +727,25 @@ var createHandlerFactory = () => (fn) => async (event) => {
|
|
|
726
727
|
// src/server/aws/lambda/domain.ts
|
|
727
728
|
var createRestHandler = createHandlerFactory();
|
|
728
729
|
var createWebsocketHandler = createHandlerFactory();
|
|
729
|
-
var
|
|
730
|
-
|
|
730
|
+
var withBatchFailures = () => {
|
|
731
|
+
const items = [];
|
|
732
|
+
return {
|
|
733
|
+
/** Add a failed message by its ID */
|
|
734
|
+
add: (itemIdentifier) => {
|
|
735
|
+
items.push({ itemIdentifier });
|
|
736
|
+
},
|
|
737
|
+
/** The failures array for the response */
|
|
738
|
+
items
|
|
739
|
+
};
|
|
740
|
+
};
|
|
741
|
+
var createSqsHandler = (fn) => async (event) => {
|
|
742
|
+
const result = await fn(event);
|
|
743
|
+
if (!result || !Array.isArray(result.batchItemFailures)) {
|
|
744
|
+
throw new Error(
|
|
745
|
+
"SQS handler must return { batchItemFailures: [] }. Return an empty array for success, or include failed messageIds for partial failures."
|
|
746
|
+
);
|
|
747
|
+
}
|
|
748
|
+
return result;
|
|
731
749
|
};
|
|
732
750
|
|
|
733
751
|
// src/server/aws/ddb/index.ts
|