1.0.0 • Published 4 months ago

google-sheets-sql v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

GoogleSheetsDB

License

Библиотека JavaScript/TypeScript для использования Google Sheets как реляционной базы данных. Поддерживает методы CRUD (Create, Read, Update, Delete) и JOIN-запросы, аналогичные SQL.

Основные возможности

  • CRUD-операции: Вставка, выборка, обновление и удаление данных.
  • JOIN: Объединение таблиц (листов) на основе связей.
  • Инициализация таблиц: Создание таблиц с заданными заголовками.
  • Поддержка типизации: Полная поддержка TypeScript.
  • Простая интеграция: Использует официальную библиотеку googleapis.

Установка

  1. Установите библиотеку через npm:

    npm install google-sheets-db
  2. Убедитесь, что у вас есть учетные данные для доступа к Google Sheets API:

    • Создайте проект в Google Cloud Console.
    • Включите доступ к Google Sheets API.
    • Скачайте JSON-файл с учетными данными и сохраните его в вашем проекте (например, как credentials.json).
  3. Установите зависимости:

    npm install googleapis

Использование

1. Инициализация библиотеки

const GoogleSheetsDB = require('google-sheets-db');
const credentials = require('./credentials.json'); // JSON-файл с учетными данными
const db = new GoogleSheetsDB(credentials, 'YOUR_SPREADSHEET_ID');

2. Инициализация таблицы

Создайте таблицу (лист) с указанными заголовками:

await db.initTable('Users', ['id', 'name', 'age']);
await db.initTable('Orders', ['id', 'user_id', 'product', 'quantity']);

3. CRUD-операции

Вставка данных

await db.insert('Users', { id: 1, name: 'John Doe', age: 30 });
await db.insert('Orders', { id: 101, user_id: 1, product: 'Laptop', quantity: 1 });

Выборка данных

const users = await db.select('Users');
console.log(users);

// Выборка с условиями
const youngUsers = await db.select('Users', { age: 30 });
console.log(youngUsers);

Обновление данных

await db.update('Users', { id: 1 }, { age: 31 });

Удаление данных

await db.delete('Users', { id: 1 });

4. JOIN-запросы

Объедините две таблицы на основе связей:

const joinedData = await db.join('Users', 'Orders', 'id', 'user_id');
console.log(joinedData);

5. Пример полного использования

(async () => {
  // Инициализация таблиц
  await db.initTable('Users', ['id', 'name', 'age']);
  await db.initTable('Orders', ['id', 'user_id', 'product', 'quantity']);

  // Вставка данных
  await db.insert('Users', { id: 1, name: 'John Doe', age: 30 });
  await db.insert('Orders', { id: 101, user_id: 1, product: 'Laptop', quantity: 1 });

  // Выборка данных
  const users = await db.select('Users');
  console.log('Users:', users);

  // JOIN таблиц
  const joinedData = await db.join('Users', 'Orders', 'id', 'user_id');
  console.log('Joined Data:', joinedData);
})();

Типизация (TypeScript)

Библиотека поддерживает TypeScript. Для использования импортируйте типы:

import GoogleSheetsDB from 'google-sheets-db';

const credentials = require('./credentials.json');
const db = new GoogleSheetsDB(credentials, 'YOUR_SPREADSHEET_ID');

(async () => {
  await db.initTable('Users', ['id', 'name', 'age']);
  await db.insert('Users', { id: 1, name: 'John Doe', age: 30 });
  const users = await db.select('Users');
  console.log(users);
})();

Лицензия

Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.

Автор

Автор библиотеки: Borovlioff


Дополнительные разделы (по желанию)

Требования

  • Node.js версии 14 или выше.
  • Действующие учетные данные для Google Sheets API.

Помощь и поддержка

Если у вас возникли вопросы или проблемы, создайте issue в репозитории GitHub.


1.0.0

4 months ago