diff --git a/components/google_sheets/package.json b/components/google_sheets/package.json index 7a7be6eba48d2..d19b2c8738d93 100644 --- a/components/google_sheets/package.json +++ b/components/google_sheets/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/google_sheets", - "version": "0.8.8", + "version": "0.8.9", "description": "Pipedream Google_sheets Components", "main": "google_sheets.app.mjs", "keywords": [ diff --git a/components/google_sheets/sources/common/new-row-added.mjs b/components/google_sheets/sources/common/new-row-added.mjs index 7b360d43ad2d6..b2f7b2c78160e 100644 --- a/components/google_sheets/sources/common/new-row-added.mjs +++ b/components/google_sheets/sources/common/new-row-added.mjs @@ -23,14 +23,14 @@ export default { hasHeaders: { type: "boolean", label: "Has Headers", - description: "Set to true if your spreadsheet contains column headers. When enabled, webhook responses will use column headers as keys instead of positional array indices.", + description: "Set to `true` if your spreadsheet contains column headers. When enabled, an additional `rowAsObject` field will be included in webhook responses with column headers as keys. The original `newRow` array format is always preserved for backward compatibility.", default: false, optional: true, }, headerRow: { type: "integer", label: "Header Row Number", - description: "The row number containing the column headers (e.g., 1 for the first row). Only used when 'Has Headers' is enabled.", + description: "The row number containing the column headers (e.g., `1` for the first row). Only used when **Has Headers** is enabled.", default: 1, optional: true, }, @@ -233,15 +233,23 @@ export default { rowHashes[rowHashString] = true; // Transform row to object using headers if enabled - const transformedRow = this._transformRowToObject(newRow, headers); + const rowAsObject = this._transformRowToObject(newRow, headers); + + // Emit event with backward-compatible structure + const eventData = { + newRow, // Always keep the original array format for backward compatibility + range, + worksheet, + rowNumber, + }; + + // Only add rowAsObject if headers are enabled and transformation resulted in an object + if (this.hasHeaders && typeof rowAsObject === "object" && !Array.isArray(rowAsObject)) { + eventData.rowAsObject = rowAsObject; + } this.$emit( - { - newRow: transformedRow, - range, - worksheet, - rowNumber, - }, + eventData, this.getMeta(worksheet, rowNumber, rowHashString), ); } diff --git a/components/google_sheets/sources/new-row-added-polling/new-row-added-polling.mjs b/components/google_sheets/sources/new-row-added-polling/new-row-added-polling.mjs index 3bac3ad0ef23b..4e1a3c0f0eb0f 100644 --- a/components/google_sheets/sources/new-row-added-polling/new-row-added-polling.mjs +++ b/components/google_sheets/sources/new-row-added-polling/new-row-added-polling.mjs @@ -8,7 +8,7 @@ export default { key: "google_sheets-new-row-added-polling", name: "New Row Added", description: "Emit new event each time a row or rows are added to the bottom of a spreadsheet.", - version: "0.0.7", + version: "0.0.8", dedupe: "unique", type: "source", props: { diff --git a/components/google_sheets/sources/new-row-added/new-row-added.mjs b/components/google_sheets/sources/new-row-added/new-row-added.mjs index b55ebff49b100..085fb9711bf6b 100644 --- a/components/google_sheets/sources/new-row-added/new-row-added.mjs +++ b/components/google_sheets/sources/new-row-added/new-row-added.mjs @@ -8,7 +8,7 @@ export default { key: "google_sheets-new-row-added", name: "New Row Added (Instant)", description: "Emit new event each time a row or rows are added to the bottom of a spreadsheet.", - version: "0.1.15", + version: "0.1.16", dedupe: "unique", type: "source", props: { diff --git a/components/google_sheets/sources/new-row-added/test-event.mjs b/components/google_sheets/sources/new-row-added/test-event.mjs index 2239367a5615b..794e573e4aaa3 100644 --- a/components/google_sheets/sources/new-row-added/test-event.mjs +++ b/components/google_sheets/sources/new-row-added/test-event.mjs @@ -1,5 +1,10 @@ export default { - "newRow": { + "newRow": [ + "John Doe", + "john@example.com", + "30" + ], + "rowAsObject": { "Name": "John Doe", "Email": "john@example.com", "Age": "30"