Skip to content

Defined in: adapters/GoogleSheetsAdapter.ts:34

Google Sheets implementation of the SheetsAdapter contract.

Delegates to four internal services — authentication, spreadsheet metadata, worksheet management, and row operations — each responsible for a focused area of the Google Sheets API.

Example

ts
import { GoogleSheetsAdapter } from 'open-sheets-orm';

const adapter = new GoogleSheetsAdapter(credentials, 'spreadsheet-id');
await adapter.connect();

const info = await adapter.getSpreadsheet();
const rows = await adapter.readSheet();

await adapter.disconnect();

Extends

Constructors

Constructor

new GoogleSheetsAdapter(credentials, spreadsheetId, sheetName?): GoogleSheetsAdapter

Defined in: adapters/GoogleSheetsAdapter.ts:47

Parameters

credentials

JWTInput

Google service account credentials (JWT) or external account credentials.

spreadsheetId

string

The unique ID of the target spreadsheet.

sheetName?

string

The default sheet to operate on. When omitted, the first sheet is used.

Returns

GoogleSheetsAdapter

Overrides

SheetsAdapter.constructor

Properties

_connected

protected _connected: boolean = false

Defined in: adapters/SheetsAdapter.ts:33

Whether the adapter has been successfully connected.

Set to true by connect and false by disconnect. Checked in ensureConnected before every data operation.

Inherited from

SheetsAdapter._connected


config

protected config: SheetConfig

Defined in: adapters/SheetsAdapter.ts:25

The spreadsheet configuration for this adapter instance.

Inherited from

SheetsAdapter.config

Methods

appendRow()

appendRow(row, sheetName?): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:178

Appends a new row after the last existing row in the sheet.

Parameters

row

unknown[]

The cell values for the new row.

sheetName?

string

The target sheet. Falls back to the sheet name provided at construction time.

Returns

Promise<void>

Overrides

SheetsAdapter.appendRow


connect()

connect(): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:61

Authenticates and initializes all internal services.

Must be called before any other adapter method.

Returns

Promise<void>

Overrides

SheetsAdapter.connect


createSheet()

createSheet(title): Promise<SheetInfo>

Defined in: adapters/GoogleSheetsAdapter.ts:95

Creates a new sheet (tab) within the configured spreadsheet.

Parameters

title

string

The title for the new sheet.

Returns

Promise<SheetInfo>

Metadata for the newly created sheet.

Overrides

SheetsAdapter.createSheet


deleteRow()

deleteRow(rowIndex, sheetName?): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:216

Deletes a row by its zero-based data index.

Parameters

rowIndex

number

Zero-based index of the row to delete.

sheetName?

string

The target sheet. Falls back to the sheet name provided at construction time.

Returns

Promise<void>

Overrides

SheetsAdapter.deleteRow


deleteSheet()

deleteSheet(sheetName): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:116

Deletes a sheet (tab) from the configured spreadsheet.

Parameters

sheetName

string

The title of the sheet to delete.

Returns

Promise<void>

Overrides

SheetsAdapter.deleteSheet


disconnect()

disconnect(): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:75

Releases resources held by this adapter.

The Google Sheets API does not require explicit cleanup. Service references are preserved for reuse on next connect.

Returns

Promise<void>

Overrides

SheetsAdapter.disconnect


ensureConnected()

protected ensureConnected(methodName): void

Defined in: adapters/SheetsAdapter.ts:66

Guards data-access methods against being called before connect.

Parameters

methodName

string

The name of the calling method, included in the error message for diagnostic clarity.

Returns

void

Throws

If the adapter has not been connected.

Inherited from

SheetsAdapter.ensureConnected


ensureSheet()

ensureSheet(sheetName): Promise<SheetInfo>

Defined in: adapters/GoogleSheetsAdapter.ts:106

Ensures a sheet exists, creating it if missing.

Parameters

sheetName

string

The title of the sheet to ensure exists.

Returns

Promise<SheetInfo>

Metadata for the sheet.

Overrides

SheetsAdapter.ensureSheet


getHeaders()

getHeaders(sheetName?): Promise<string[]>

Defined in: adapters/GoogleSheetsAdapter.ts:128

Reads the header row from the specified (or default) sheet.

Parameters

sheetName?

string

The sheet to read from. Falls back to the sheet name provided at construction time.

Returns

Promise<string[]>

An array of header cell values.

Overrides

SheetsAdapter.getHeaders


getSpreadsheet()

getSpreadsheet(): Promise<SpreadsheetInfo>

Defined in: adapters/GoogleSheetsAdapter.ts:84

Retrieves metadata for the configured spreadsheet.

Returns

Promise<SpreadsheetInfo>

The spreadsheet's title, URL, and contained sheet summaries.

Overrides

SheetsAdapter.getSpreadsheet


readSheet()

readSheet<T>(sheetName?): Promise<T[]>

Defined in: adapters/GoogleSheetsAdapter.ts:161

Reads all data rows from the specified (or default) sheet, mapped to objects keyed by header values.

Type Parameters

T

T extends Record<string, string> = Record<string, string>

Parameters

sheetName?

string

The sheet to read from. Falls back to the sheet name provided at construction time.

Returns

Promise<T[]>

An array of row objects keyed by header values.

Overrides

SheetsAdapter.readSheet


updateRow()

updateRow(rowIndex, row, sheetName?): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:195

Updates an existing row by its zero-based data index.

Parameters

rowIndex

number

Zero-based index of the row to update.

row

unknown[]

The new cell values for the row.

sheetName?

string

The target sheet. Falls back to the sheet name provided at construction time.

Returns

Promise<void>

Overrides

SheetsAdapter.updateRow


writeHeaders()

writeHeaders(headers, sheetName?): Promise<void>

Defined in: adapters/GoogleSheetsAdapter.ts:143

Writes header values to row 1 of the specified (or default) sheet.

Parameters

headers

string[]

The header values to write.

sheetName?

string

The target sheet. Falls back to the sheet name provided at construction time.

Returns

Promise<void>

Overrides

SheetsAdapter.writeHeaders

Released under the MIT License.