Google Apps Script:
การทำงานร่วมกับ TOML

วิธีการ:

เนื่องจาก Google Apps Script เป็นพื้นฐานของ JavaScript ที่มีการเข้าถึงชุดแอปของ Google การทำงานกับ TOML โดยตรงภายใน Google Apps Script จำเป็นต้องใช้ความคิดสร้างสรรค์เล็กน้อย Google Apps Script ไม่รองรับการแยกวิเคราะห์ TOML โดยตรง แต่คุณสามารถใช้ประโยชน์จากไลบรารี JavaScript หรือเขียนตัวแยกวิเคราะห์อย่างง่ายเพื่อความต้องการพื้นฐาน

ลองแยกวิเคราะห์สตริงการกำหนดค่า TOML แบบง่ายเป็นตัวอย่าง:

// สตริง TOML
var tomlString = `
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
`;

// ฟังก์ชันแปลง TOML เป็น JSON อย่างง่าย
function parseTOML(tomlStr) {
  var result = {};
  var currentSection = result;
  tomlStr.split(/\r?\n/).forEach(line => {
    line = line.trim();
    if (line.startsWith('[')) { // ส่วนใหม่
      var sectionName = line.replace(/\[|\]/g, '');
      result[sectionName] = {};
      currentSection = result[sectionName];
    } else if (line) {
      var keyValue = line.split('=').map(part => part.trim());
      var key = keyValue[0];
      var value = eval(keyValue[1]); // ใช้ eval ด้วยความง่าย แต่ระวังในโค้ดการผลิต
      currentSection[key] = value;
    }
  });
  return result;
}

// ทดสอบตัวแยกวิเคราะห์
var configObject = parseTOML(tomlString);
console.log(configObject);

ผลลัพธ์จาก console.log จะดูเหมือนกับวัตถุ JSON ทำให้การเข้าถึงคุณสมบัติการกำหนดค่าใน Google Apps Script เป็นไปได้อย่างง่ายดาย:

{
  "database": {
    "server": "192.168.1.1",
    "ports": [8001, 8001, 8002],
    "connection_max": 5000,
    "enabled": true
  }
}

ลงรายละเอียด

TOML ถูกสร้างโดย Tom Preston-Werner หนึ่งในผู้ก่อตั้ง GitHub เพื่อให้เป็นมิตรกับมนุษย์มากกว่า JSON สำหรับไฟล์การกำหนดค่า โดยยังคงความสามารถในการถูกแยกวิเคราะห์อย่างไม่กำกวม เป้าหมายคือการทำให้ง่ายที่สุด ซึ่งตรงกับจรรยาบรรณของโครงการพัฒนามากมายที่มุ่งเน้นความเรียบง่ายและความอ่านง่ายในรหัสของพวกเขา

ในบริบทของ Google Apps Script การใช้ TOML อาจเพิ่มภาระงาน เนื่องจากไม่มีการสนับสนุนโดยตรงและจำเป็นต้องแยกวิเคราะห์ด้วยตนเองหรือผ่านไลบรารีบุคคลที่สาม สำหรับโครงการขนาดเล็กหรือโครงการที่ไม่ได้รวมเข้ากับระบบนิเวศของ Google อย่างลึกซึ้ง ทางเลือกอื่นเช่น JSON หรือแม้แต่โครงสร้างคู่คีย์-ค่าในคุณสมบัติสคริปต์อาจเพียงพอและง่ายต่อการนำไปใช้งาน อย่างไรก็ตาม สำหรับแอปพลิเคชันที่ให้ความสำคัญกับไฟล์การกำหนดค่าที่เป็นมิตรกับมนุษย์และมุ่งมั่นใช้ TOML การรวมการแยกวิเคราะห์ TOML ผ่านสคริปต์ที่กำหนดเองเพิ่มความยืดหยุ่นและใช้งานได้ยาวนานโดยไม่ต้องออกจากรูปแบบการกำหนดค่าที่ต้องการ