gsheetorm
v1.0.4
Published
Lightweight ORM for Google Spreadsheet with SQL-like queries
Maintainers
Readme
GSheetORM
GSheetORM adalah sebuah ORM ringan untuk Google Spreadsheet yang memungkinkan kamu melakukan query seperti SELECT, INSERT, UPDATE, dan DELETE dengan cara yang mirip dengan ORM tradisional seperti Entity Framework. Dengan GSheetORM, kamu dapat mengelola data di Google Sheets menggunakan sintaks query SQL-like, tanpa harus mengkhawatirkan implementasi teknis API Google Sheets.
Fitur
- SELECT dengan opsi
WHEREdanORDER BY - LEFT JOIN antar sheet
- INSERT (satu atau banyak data)
- UPDATE berdasarkan kondisi
- DELETE berdasarkan kondisi
- Autentikasi dan konfigurasi langsung di dalam library
Cara Install
Install package via npm:
npm install gsheetormInstall googleapis
npm install googleapis
Cara Penggunaan
- Autentikasi dan Konfigurasi
Untuk mulai menggunakan GSheetORM, kamu perlu mengonfigurasi autentikasi dengan GoogleAuth menggunakan kredensial JSON yang kamu dapatkan dari Google Cloud Console.
const GSheetORM = require('gsheetorm'); const orm = await GSheetORM.authenticate({ credentials: require('./path-to-your-credentials.json'), spreadsheetId: 'spreadsheetId', // ID dari spreadsheet sheetName: 'Sheet1', // Nama sheet di spreadsheet }); - SELECT Data
Untuk mengambil data dari Google Sheets dengan filter dan urutan tertentu, gunakan method select() yang bisa di-chain dengan where() dan orderBy().
// Ambil kolom Name dan Age, lalu filter hanya yang umur > 20 dan urutkan berdasarkan Name const data = await orm.select(['Name', 'Age']) .where(row => row.Age > 20) .orderBy('Name') .run(); console.log(data); - LEFT JOIN antar Sheet
Kamu bisa menggabungkan data dari sheet lain menggunakan method leftJoin().
const data = await orm.select(['Name', 'Age']) .leftJoin({ sheetName: 'AnotherSheet', key: 'Name', foreignKey: 'EmployeeName', alias: 'employeeDetails' }).run(); console.log(data); - INSERT Data
Menambahkan data ke Google Sheets bisa dilakukan dengan insert(). Kamu bisa menambah satu atau banyak data sekaligus.
// Insert satu data await orm.insertOne({ Name: 'John Doe', Age: 30 }); // Insert banyak data await orm.insertMany([{ Name: 'Jane Doe', Age: 25 }, { Name: 'Alex', Age: 28 }]); - UPDATE Data
Untuk mengupdate data berdasarkan kondisi, gunakan update().
await orm.update( { "Name": "Jhon Doe" }, // kondisi yang sesuai dengan data { "Age": 31 }) // update data ); - DELETE Data
Untuk menghapus data berdasarkan kondisi, gunakan delete().
await orm.delete({ "ID": 1 });
Kontribusi
Jika kamu menemukan bug atau ingin menambahkan fitur baru, silakan buka issue atau buat pull request di GitHub.
