gas-convert

gas-convert mengonversi dan mengoptimalkan kode JavaScript agar kompatibel dengan Google Apps Script.

Instalasi

npm install -g gas-convert

Sebelum menggunakan pastikan @google/clasp sudah terinstall di sistem operasi Anda, jika belum terinstall maka install terlebih dahulu.

npm install -g @google/clasp

Setelah itu login

clasp login

Kemudian buat project di direktori saat ini

clasp create

Atau di direktori src

mkdir src && clasp create --rootDir src && mv src/.clasp.json .

Atau clone di direktori saat ini jika Anda sudah membuat project sebelumnya

clasp clone <scriptId> --rootDir .

Atau clone di direktori src jika Anda sudah membuat project sebelumnya

mkdir src && clasp clone <scriptId> --rootDir src && mv src/.clasp.json .

Sintaks CLI gas-convert

gasc <inputFile> <outputFile>

gasc index.js Kode.js

Atau:

gasc index.js src/Kode.js

Unggah hasil konversi ke Google Apps Script

clasp push

Contoh project

Ada 3 cara untuk konversi

Buat file sumber terlebih dahulu, misalnya (utils.js, logger.js, dan index.js), lalu gabungkan menjadi satu file.

Cara ke 1.

// utils.js
export function sayHello(name) {
  console.log(`Halo, ${name}!`);
}
// logger.js
export function logMessage(message) {
  console.log(`LOG: ${message}`);
}
// index.js
import { sayHello } from './utils.js';
import { logMessage } from './logger.js';

console.log('Program dimulai');
sayHello('GAS');
logMessage('Ini adalah pesan log');
console.log('Program selesai');

Cara ke 2.

// utils.js
export function sayHello(name) {
  console.log(`Halo, ${name}!`);
}
// logger.js
export function logMessage(message) {
  console.log(`LOG: ${message}`);
}
// index.js
import { sayHello } from './utils.js';
import { logMessage } from './logger.js';

console.log('Program dimulai');
sayHello('GAS');
logMessage('Ini adalah pesan log');
console.log('Program selesai');

// Tambahkan fungsi ke globalThis agar bisa diakses di mana saja
globalThis.sayHello = sayHello;
globalThis.logMessage = logMessage;

Cara ke 3.

// utils.js
export function sayHello(name) {
  console.log(`Halo, ${name}!`);
}
// logger.js
export function logMessage(message) {
  console.log(`LOG: ${message}`);
}
// index.js
import { sayHello } from './utils.js';
import { logMessage } from './logger.js';

console.log('Program dimulai');

function doPost(e) {
  console.log('App Started');

  // Daftarkan fungsi ke globalThis saat doPost dipanggil
  globalThis.sayHello = sayHello;
  globalThis.logMessage = logMessage;

  // Contoh pemanggilan fungsi setelah terdaftar di globalThis
  sayHello('GAS');
  logMessage('Ini adalah pesan log');

  console.log('Program selesai');
}
globalThis.doPost = doPost;

Penjelasan Hasil konversi Satu per Satu

1️⃣ Hasil Konversi Pertama

Penjelasan:

2️⃣ Hasil Konversi Kedua

Penjelasan:

sayHello('GAS'); // Bisa dipanggil di Google Apps Script
logMessage('Pesan baru');

3️⃣ Hasil Konversi Ketiga

Penjelasan:

  1. Logger.log("App Started") dieksekusi.
  2. sayHello dan logMessage ditambahkan ke globalThis.
  3. Fungsi dipanggil untuk menunjukkan bahwa mereka bekerja.
  4. Logger.log("Program selesai") dicetak di akhir.

Kesimpulan

VersiKapan Kode Berjalan?Bisa Pakai globalThis?Cocok Untuk?
Cara ke 1Langsung saat script dijalankan❌ TidakSkrip mandiri
Cara ke 2Langsung saat script dijalankan✅ YaBisa diakses di luar file, tapi tetap langsung berjalan
Cara ke 3Hanya saat doPost() dipanggil✅ YaGoogle Apps Script, lebih fleksibel
💡 Rekomendasi: Gunakan Cara ke 3 untuk Google Apps Script, karena lebih fleksibel dan tidak langsung berjalan sebelum doPost() dipanggil.