Skip to content

Commit 02c8eca

Browse files
authored
fix(sdk): fix default types for waitForCallback to return string (#325)
*Issue #, if available:* *Description of changes:* The types for waitForCallback and createCallback defaulted to `unknown`, which makes it seem like it's an object. By default, it's actually `string`. Our example tests also all passed objects into the type parameter, but all of them are actually returning strings and not objects. By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
1 parent 0c8c2be commit 02c8eca

File tree

11 files changed

+43
-46
lines changed

11 files changed

+43
-46
lines changed

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/anonymous/wait-for-callback-anonymous.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const config: ExampleConfig = {
1212

1313
export const handler = withDurableExecution(
1414
async (event: unknown, context: DurableContext) => {
15-
const result = await context.waitForCallback<{ data: string }>(async () => {
15+
const result = await context.waitForCallback(async () => {
1616
await new Promise((resolve) => setTimeout(resolve, 1000));
1717
return Promise.resolve();
1818
});

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/failing-submitter/wait-for-callback-failing-submitter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const config: ExampleConfig = {
1313
export const handler = withDurableExecution(
1414
async (event: unknown, context: DurableContext) => {
1515
try {
16-
const result = await context.waitForCallback<{ data: string }>(
16+
const result = await context.waitForCallback(
1717
"failing-submitter-callback",
1818
async () => {
1919
await new Promise((resolve) => setTimeout(resolve, 500));

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/failures/wait-for-callback-failures.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ export const config: ExampleConfig = {
1313
export const handler = withDurableExecution(
1414
async (event: unknown, context: DurableContext) => {
1515
try {
16-
const result = await context.waitForCallback<{ data: string }>(
17-
async () => {
18-
await new Promise((resolve) => setTimeout(resolve, 1000));
19-
// Submitter succeeds - simulates successful external API call setup
20-
return Promise.resolve();
21-
},
22-
);
16+
const result = await context.waitForCallback(async () => {
17+
await new Promise((resolve) => setTimeout(resolve, 1000));
18+
// Submitter succeeds - simulates successful external API call setup
19+
return Promise.resolve();
20+
});
2321

2422
return {
2523
callbackResult: result,

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/heartbeat-sends/wait-for-callback-heartbeat-sends.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export const handler = withDurableExecution(
1717
},
1818
context: DurableContext,
1919
) => {
20-
const result = await context.waitForCallback<{ processed: number }>(
20+
const result = await context.waitForCallback(
2121
async () => {
2222
// Simulate long-running submitter function
2323
await new Promise((resolve) =>

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/mixed-ops/wait-for-callback-mixed-ops.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ export const handler = withDurableExecution(
1919
return Promise.resolve({ userId: 123, name: "John Doe" });
2020
});
2121

22-
const callbackResult = await context.waitForCallback<{
23-
processed: boolean;
24-
}>("wait-for-callback", async () => {
25-
// Submitter uses data from previous step
26-
await new Promise((resolve) => setTimeout(resolve, 100));
27-
return Promise.resolve();
28-
});
22+
const callbackResult = await context.waitForCallback(
23+
"wait-for-callback",
24+
async () => {
25+
// Submitter uses data from previous step
26+
await new Promise((resolve) => setTimeout(resolve, 100));
27+
return Promise.resolve();
28+
},
29+
);
2930

3031
await context.wait("final-wait", { seconds: 2 });
3132

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/nested/wait-for-callback-nested.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const config: ExampleConfig = {
1212

1313
export const handler = withDurableExecution(
1414
async (event: unknown, context: DurableContext) => {
15-
const outerResult = await context.waitForCallback<{ level: string }>(
15+
const outerResult = await context.waitForCallback(
1616
"outer-callback-op",
1717
async () => {
1818
return Promise.resolve();
@@ -22,11 +22,12 @@ export const handler = withDurableExecution(
2222
const nestedResult = await context.runInChildContext(
2323
"outer-child-context",
2424
async (outerChildContext) => {
25-
const innerResult = await outerChildContext.waitForCallback<{
26-
level: string;
27-
}>("inner-callback-op", async () => {
28-
return Promise.resolve();
29-
});
25+
const innerResult = await outerChildContext.waitForCallback(
26+
"inner-callback-op",
27+
async () => {
28+
return Promise.resolve();
29+
},
30+
);
3031

3132
// Nested child context with another callback
3233
const deepNestedResult = await outerChildContext.runInChildContext(
@@ -35,11 +36,12 @@ export const handler = withDurableExecution(
3536
await innerChildContext.wait("deep-wait", { seconds: 5 });
3637

3738
const nestedCallbackResult =
38-
await innerChildContext.waitForCallback<{
39-
level: string;
40-
}>("nested-callback-op", async () => {
41-
return Promise.resolve();
42-
});
39+
await innerChildContext.waitForCallback(
40+
"nested-callback-op",
41+
async () => {
42+
return Promise.resolve();
43+
},
44+
);
4345

4446
return {
4547
nestedCallback: nestedCallbackResult,

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/submitter-failure-catchable/wait-for-callback-submitter-failure-catchable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const config: ExampleConfig = {
1313
export const handler = withDurableExecution(
1414
async (_event: unknown, context: DurableContext) => {
1515
try {
16-
const result = await context.waitForCallback<{ data: string }>(
16+
const result = await context.waitForCallback(
1717
"failing-submitter-callback",
1818
async () => {
1919
await new Promise((resolve) => setTimeout(resolve, 500));

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/submitter-retry-success/wait-for-callback-submitter-retry-success.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const handler = withDurableExecution(
1414
async (event: { shouldFail?: boolean }, context: DurableContext) => {
1515
const shouldFail = event.shouldFail ?? false;
1616

17-
const result = await context.waitForCallback<{ data: string }>(
17+
const result = await context.waitForCallback(
1818
"retry-submitter-callback",
1919
async (callbackId, ctx) => {
2020
ctx.logger.info("Submitting callback to external system", {

packages/aws-durable-execution-sdk-js-examples/src/examples/wait-for-callback/timeout/wait-for-callback-timeout.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const config: ExampleConfig = {
1212
export const handler = withDurableExecution(
1313
async (event: unknown, context: DurableContext) => {
1414
try {
15-
const result = await context.waitForCallback<{ data: string }>(
15+
const result = await context.waitForCallback(
1616
async () => {
1717
// Submitter succeeds but callback never completes
1818
return Promise.resolve();

packages/aws-durable-execution-sdk-js-testing/src/test-runner/local/__tests__/integration/wait-for-callback-operations.integration.test.ts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,9 @@ describe("WaitForCallback Operations Integration", () => {
154154
const handler = withDurableExecution<unknown, unknown>(
155155
async (_event: unknown, context: DurableContext) => {
156156
try {
157-
const result = await context.waitForCallback<{ data: string }>(
158-
() => {
159-
throw new Error("Submitter failed immediately");
160-
},
161-
);
157+
const result = await context.waitForCallback(() => {
158+
throw new Error("Submitter failed immediately");
159+
});
162160

163161
return {
164162
callbackResult: result,
@@ -197,11 +195,9 @@ describe("WaitForCallback Operations Integration", () => {
197195
const handler = withDurableExecution<unknown, unknown>(
198196
async (_event: unknown, context: DurableContext) => {
199197
try {
200-
const result = await context.waitForCallback<{ data: string }>(
201-
() => {
202-
return Promise.reject(new Error("Async submitter failure"));
203-
},
204-
);
198+
const result = await context.waitForCallback(() => {
199+
return Promise.reject(new Error("Async submitter failure"));
200+
});
205201

206202
return {
207203
callbackResult: result,
@@ -244,7 +240,7 @@ describe("WaitForCallback Operations Integration", () => {
244240
const handler = withDurableExecution<unknown, unknown>(
245241
async (_event: unknown, context: DurableContext) => {
246242
try {
247-
const result = await context.waitForCallback<{ data: string }>(
243+
const result = await context.waitForCallback(
248244
async (id) => {
249245
callbackId = id;
250246

0 commit comments

Comments
 (0)