From 0c820cb819bf11c4ad7dcdf2481442b28e8c577e Mon Sep 17 00:00:00 2001 From: Pranay Prakash Date: Wed, 5 Nov 2025 00:12:20 -0800 Subject: [PATCH] Support directives in nested functions/closure tracking --- .../transform/tests/fixture/ai-sdk-tool/input.js | 16 ++++++++++++++++ .../tests/fixture/ai-sdk-tool/output-client.js | 13 +++++++++++++ .../tests/fixture/ai-sdk-tool/output-step.js | 13 +++++++++++++ .../tests/fixture/ai-sdk-tool/output-workflow.js | 13 +++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/input.js create mode 100644 packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-client.js create mode 100644 packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-step.js create mode 100644 packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-workflow.js diff --git a/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/input.js b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/input.js new file mode 100644 index 000000000..14864d5e6 --- /dev/null +++ b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/input.js @@ -0,0 +1,16 @@ +import { tool } from 'ai'; +import { z } from 'zod'; + +export const weatherTool = tool({ + description: 'Get the weather in a location', + parameters: z.object({ + location: z.string().describe('The location to get the weather for'), + }), + execute: async ({ location }) => { + 'use step'; + const response = await fetch( + `https://api.weather.com/v1/current?location=${location}` + ); + return response.json(); + }, +}); diff --git a/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-client.js b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-client.js new file mode 100644 index 000000000..23e7814a3 --- /dev/null +++ b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-client.js @@ -0,0 +1,13 @@ +import { tool } from 'ai'; +import { z } from 'zod'; +export const weatherTool = tool({ + description: 'Get the weather in a location', + parameters: z.object({ + location: z.string().describe('The location to get the weather for') + }), + execute: async ({ location })=>{ + 'use step'; + const response = await fetch(`https://api.weather.com/v1/current?location=${location}`); + return response.json(); + } +}); diff --git a/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-step.js b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-step.js new file mode 100644 index 000000000..23e7814a3 --- /dev/null +++ b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-step.js @@ -0,0 +1,13 @@ +import { tool } from 'ai'; +import { z } from 'zod'; +export const weatherTool = tool({ + description: 'Get the weather in a location', + parameters: z.object({ + location: z.string().describe('The location to get the weather for') + }), + execute: async ({ location })=>{ + 'use step'; + const response = await fetch(`https://api.weather.com/v1/current?location=${location}`); + return response.json(); + } +}); diff --git a/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-workflow.js b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-workflow.js new file mode 100644 index 000000000..23e7814a3 --- /dev/null +++ b/packages/swc-plugin-workflow/transform/tests/fixture/ai-sdk-tool/output-workflow.js @@ -0,0 +1,13 @@ +import { tool } from 'ai'; +import { z } from 'zod'; +export const weatherTool = tool({ + description: 'Get the weather in a location', + parameters: z.object({ + location: z.string().describe('The location to get the weather for') + }), + execute: async ({ location })=>{ + 'use step'; + const response = await fetch(`https://api.weather.com/v1/current?location=${location}`); + return response.json(); + } +});