Skip to content

Defined in: adapters/SheetsAdapter.ts:23

Abstract base class defining the contract for sheets adapter implementations.

Subclasses must implement all abstract methods to provide concrete spreadsheet operations (connection, metadata, sheet management, and row-level CRUD).

Example

ts
const adapter = new GoogleSheetsAdapter(credentials, 'id');
await adapter.connect();
const data = await adapter.readSheet<MyRow>();

Extended by

Constructors

Constructor

new SheetsAdapter(config): SheetsAdapter

Defined in: adapters/SheetsAdapter.ts:39

Parameters

config

SheetConfig

Configuration identifying the target spreadsheet and optional default sheet name.

Returns

SheetsAdapter

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.


config

protected config: SheetConfig

Defined in: adapters/SheetsAdapter.ts:25

The spreadsheet configuration for this adapter instance.

Methods

appendRow()

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

Defined in: adapters/SheetsAdapter.ts:151

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. When omitted, the default sheet from SheetConfig is used.

Returns

Promise<void>


connect()

abstract connect(): Promise<void>

Defined in: adapters/SheetsAdapter.ts:49

Establishes a connection with the underlying spreadsheet API.

Must be called before any other method. Implementations should initialize authentication and any required API clients.

Returns

Promise<void>


createSheet()

abstract createSheet(title): Promise<SheetInfo>

Defined in: adapters/SheetsAdapter.ts:89

Creates a new sheet (tab) within the spreadsheet.

Parameters

title

string

The title for the new sheet. Must be unique within the spreadsheet.

Returns

Promise<SheetInfo>

Metadata for the newly created sheet.


deleteRow()

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

Defined in: adapters/SheetsAdapter.ts:180

Deletes a row by its zero-based data index.

Row index 0 refers to the first data row (the row immediately after the header row). Rows below the deleted row shift up.

Parameters

rowIndex

number

Zero-based index of the row to delete.

sheetName?

string

The target sheet. When omitted, the default sheet from SheetConfig is used.

Returns

Promise<void>


deleteSheet()

abstract deleteSheet(sheetName): Promise<void>

Defined in: adapters/SheetsAdapter.ts:110

Deletes a sheet (tab) from the spreadsheet by its title.

Parameters

sheetName

string

The title of the sheet to delete.

Returns

Promise<void>

Throws

If a sheet with the given name does not exist.


disconnect()

abstract disconnect(): Promise<void>

Defined in: adapters/SheetsAdapter.ts:57

Releases resources held by the adapter.

After calling disconnect, subsequent operations may throw until connect is called again.

Returns

Promise<void>


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.


ensureSheet()

abstract ensureSheet(sheetName): Promise<SheetInfo>

Defined in: adapters/SheetsAdapter.ts:101

Ensures a sheet exists, creating it if missing.

When the sheet already exists this is a no-op that returns its metadata. When it does not exist, a new sheet (tab) is created with the given title.

Parameters

sheetName

string

The title of the sheet to ensure exists.

Returns

Promise<SheetInfo>

Metadata for the sheet.


getHeaders()

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

Defined in: adapters/SheetsAdapter.ts:119

Reads the header row (row 1) from the specified sheet.

Parameters

sheetName?

string

The sheet to read headers from. When omitted, the default sheet from SheetConfig is used.

Returns

Promise<string[]>

An array of header cell values.


getSpreadsheet()

abstract getSpreadsheet(): Promise<SpreadsheetInfo>

Defined in: adapters/SheetsAdapter.ts:80

Retrieves metadata for the spreadsheet, including its title, URL, and contained sheets.

Returns

Promise<SpreadsheetInfo>

The spreadsheet metadata including sheet summaries.


readSheet()

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

Defined in: adapters/SheetsAdapter.ts:140

Reads all data rows from the specified sheet, mapped to objects using the header row as keys.

Type Parameters

T

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

Parameters

sheetName?

string

The sheet to read from. When omitted, the default sheet from SheetConfig is used.

Returns

Promise<T[]>

An array of row objects keyed by header values.


updateRow()

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

Defined in: adapters/SheetsAdapter.ts:164

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

Row index 0 refers to the first data row (the row immediately after the header row).

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. When omitted, the default sheet from SheetConfig is used.

Returns

Promise<void>


writeHeaders()

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

Defined in: adapters/SheetsAdapter.ts:130

Writes header values to row 1 of the specified sheet.

Overwrites any existing content in the header row.

Parameters

headers

string[]

The header values to write.

sheetName?

string

The target sheet. When omitted, the default sheet from SheetConfig is used.

Returns

Promise<void>

Released under the MIT License.