lang sind die sprachnahen Werkzeuge — der Teil der Bibliothek, der nichts von Google Apps Script weiß und überall läuft, wo JavaScript läuft.
Pakete
Paket
Enthält
lang/base
die Prüfungen isX/nonX/requireX für die eingebauten Typen
lang/array
Formprüfungen für Arrays und Umformungen
lang/number
Einordnung und Umwandlung von Zahlen
lang/object
Hashing, Vergleich und Pfadzugriff in Objekten
lang/string
Schreibweisen, Prüfungen und Versionsvergleich
Neben lang liefert die Bibliothek html, json und time. Sie sind ebenso laufzeitunabhängig und stehen gemeinsam mit lang in Basis-Werkzeuge.
Typprüfungen
lang/base ist das größte Paket und dasjenige, das fast jeder Code berührt. Vollständig behandelt wird es in Konventionen der Prüfungen; kurz gesagt: isX und nonX beantworten eine Frage, requireX prüft und gibt zurück.
import { requireString, toKebabCase } from "apps-script-utils";
function slugify(input: unknown): string {
return toKebabCase(requireString(input));
}
isConsistent2DArray ist die Prüfung, die vor dem Schreiben in ein Blatt lohnt: Range.setValues() verlangt, dass alle Zeilen gleich lang sind, und eine ungleichmäßige Matrix scheitert erst an der Dienstgrenze, mit einer Meldung, die die betroffene Zeile nicht nennt.
Zahlen
import { isCountable, isFloat, isInteger, toInteger } from "apps-script-utils";
isInteger(42); // true
isInteger(42.5); // false
isFloat(42.5); // true
isCountable(3); // true — eine nicht negative ganze Zahl
isCountable(-1); // false
Zeilen- und Spaltenargumente der Sheets-API sind Anzahlen, keine beliebigen Zahlen — dafür gibt es isCountable und requireCountable.
escapeRegExp macht eine vom Nutzer gelieferte Zeichenkette sicher für ein Muster — lohnt sich immer, wenn ein Suchbegriff aus einer Zelle oder einem Formular kommt:
import { escapeRegExp } from "apps-script-utils";
const pattern = new RegExp(escapeRegExp(searchTerm), "gi");
objectToString meldet den internen Tag statt String(value) und ist damit der verlässliche Weg, ein Array von einem Datum und von einem einfachen Objekt zu unterscheiden — der Tag übersteht einen Frame-Wechsel, instanceof nicht.