google-spreadsheet — a Google Sheets API wrapper for Node.js (published as google-spreadsheet on npm).
Goal of the project is to provide a simplified, more ergonomic interface compared to Google's official SDKs.
- TypeScript (strict mode), ESM module
- Built with
tsdown(outputs CJS + ESM todist/) - Tested with
vitest - Linted with
eslint - Uses
bunas package manager - Versioning/releases managed with
changesets
bun test— run tests (vitest in watch mode)bun run test <file>— run specific test file (e.g.,bun run test src/test/data-operations.test.ts)bun run test:ci— run tests oncebun run build— build with tsdownbun run lint— run eslintbun run lint:fix— run eslint with auto-fixbun changeset— create a changeset for version bumps
src/— source codesrc/index.ts— package entry pointsrc/lib/— internal utilities and helperssrc/lib/GoogleSpreadsheet.ts— main document classsrc/lib/GoogleSpreadsheetWorksheet.ts— worksheet classsrc/lib/GoogleSpreadsheetRow.ts— row classsrc/lib/GoogleSpreadsheetCell.ts— cell class
src/test/— test files (*.test.ts)
docs/— docsify documentation site
- Always run
bun run lintbefore committing to catch lint errors. - Always add a changeset (
bun changeset) for new features and bug fixes.
- Tests hit real Google APIs against test documents — they are integration tests, not mocked.
- Tests run sequentially (
fileParallelism: falsein vitest config). - Test files:
src/test/*.test.ts