From 0fd45c69d07f01814d32c0c59c1cb09dfbf6e61a Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Mon, 22 Sep 2025 14:13:25 -0400 Subject: [PATCH] add metadataOnly prop --- .../gmail/actions/find-email/find-email.mjs | 34 +++++++++++++------ components/gmail/package.json | 2 +- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/components/gmail/actions/find-email/find-email.mjs b/components/gmail/actions/find-email/find-email.mjs index 322bd1806a3f9..60105aa10d6d6 100644 --- a/components/gmail/actions/find-email/find-email.mjs +++ b/components/gmail/actions/find-email/find-email.mjs @@ -5,7 +5,7 @@ export default { key: "gmail-find-email", name: "Find Email", description: "Find an email using Google's Search Engine. [See the docs](https://developers.google.com/gmail/api/reference/rest/v1/users.messages/list)", - version: "0.1.5", + version: "0.1.6", type: "action", props: { gmail, @@ -21,6 +21,13 @@ export default { description: "Convert the payload response into a single text field. **This reduces the size of the payload and makes it easier for LLMs work with.**", default: false, }, + metadataOnly: { + type: "boolean", + label: "Metadata Only", + description: "Only return metadata for the messages. This reduces the size of the payload and makes it easier for LLMs work with.", + optional: true, + default: false, + }, labels: { propDefinition: [ gmail, @@ -41,8 +48,8 @@ export default { maxResults: { type: "integer", label: "Max Results", - description: "Maximum number of messages to return. Defaults to `100`.", - default: 100, + description: "Maximum number of messages to return. Defaults to `20`.", + default: 20, optional: true, }, }, @@ -90,15 +97,20 @@ export default { message.subject = subjectHeader.value; } - const parsedMessage = utils.validateTextPayload(message, this.withTextPayload); - if (parsedMessage) { - message = parsedMessage; + if (this.metadataOnly) { + delete message.payload; + delete message.snippet; } else { - if (message.payload?.body?.data && !Array.isArray(message.payload.parts)) { - message.payload.body.text = utils.decodeBase64Url(message.payload.body.data); - } - if (Array.isArray(message.payload?.parts)) { - utils.attachTextToParts(message.payload.parts); + const parsedMessage = utils.validateTextPayload(message, this.withTextPayload); + if (parsedMessage) { + message = parsedMessage; + } else { + if (message.payload?.body?.data && !Array.isArray(message.payload.parts)) { + message.payload.body.text = utils.decodeBase64Url(message.payload.body.data); + } + if (Array.isArray(message.payload?.parts)) { + utils.attachTextToParts(message.payload.parts); + } } } } diff --git a/components/gmail/package.json b/components/gmail/package.json index 28f76de70285b..adfa5d25f5685 100644 --- a/components/gmail/package.json +++ b/components/gmail/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/gmail", - "version": "1.3.1", + "version": "1.3.2", "description": "Pipedream Gmail Components", "main": "gmail.app.mjs", "keywords": [