Как сгенерировать глобальные именованные функции javascript в coffeescript для скрипта Google Apps

Я хотел бы написать сценарии Javascript для Google Apps Script с использованием CoffeeScript, и у меня возникают проблемы с созданием функций в ожидаемой форме.

Скрипт Google Apps ожидает, что скрипт будет содержать именованные функции верхнего уровня. (Возможно, я использую неправильную терминологию, поэтому я проиллюстрирую, что я имею в виду, на примерах ...)

Например, эта функция успешно распознается скриптом Google Apps:

function triggerableFunction() {
   // ...
}

...в то время как этой функции нет (она будет анализировать, но вы не сможете ее запустить):

var nonTriggerableFunction;

nonTriggerableFunction = function() {
  // ...
};

Я обнаружил, что с CoffeeScript ближайшая, что я могу получить, - это nonTriggerableFunction форма выше. Какой лучший подход к созданию именованной функции, такой как triggerableFunction выше?

Я уже использую «голый» параметр (переключатель -b ) для компиляции без оболочки безопасности функций верхнего уровня.

В Интернете я нашел один проект, сочетающий CoffeeScript и Google App Script, - это Gmail GTD Bot , который, похоже, делает это с помощью комбинации обратных тиков и просит пользователя вручную удалите несколько строк из полученного кода. (См. Конец сценария и раздел «Установка» в README ). Я надеюсь на более простое и чистое решение.

9
задан mattbh 30 January 2012 в 04:50
поделиться