Zum Hauptinhalt springen

API

loadFailsafe : TModule | undefined​

Versucht das angebene Skript zu laden.

static loadFailsafe<TModule>(scriptName: string): LoadFailsafeReturn<TModule>;
static loadFailsafe<TModule>(scriptName: string, defaultModule?: TModule, options: LoadFailsafeOptions = { merge: false }): LoadFailsafeReturn<TModule>;

Parameter loadFailsafe​

  • scriptName: string: Der Skriptname, welches über require() geladen werden soll.
  • defaultModule: Object: (Optional) Das Fallback-Objekt, welches zurückgegeben werden soll, wenn das Skript nicht existiert
  • options.merge: (Optional) Ist dieses Flag aktiviert, so wird das geladene Skript und das Objekt aus defaultModule in ein neues Objekt zusammengefasst.

Einfaches Beispiel​

In folgendem Beispiel wird versucht ein Skript zu laden. War das erfolgreich, können wir die Funktionen aufrufen.

const { ScriptLoader } = require("ou.sp.ScriptLoader");
const myScript = ScriptLoader.loadFailsafe("ou.cust.demo.myscript");
if (myScript) {
myScript.sayHello();
}

Beispiel mit Fallback-Objekt​

Im nächsten Beispiel verwenden wir ein Fallback-Objekt, welches verwendet wird, wenn das gewünschte Skript nicht geladen werden konnte.

const { ScriptLoader } = require("ou.sp.ScriptLoader");
const myScript = ScriptLoader.loadFailsafe("ou.cust.demo.myscript", {
sayHello: () => util.log("Hello!"),
});
myScript.sayHello();
hinweis

Hier müssen wir nicht mehr auf die Existenz des Skriptes prüfen.

Beispiel mit Fallback-Objekt und merge-Flag​

Im nächsten Beispiel verwenden wir ein Fallback-Objekt, welches verwendet wird, wenn das gewünschte Skript nicht geladen werden konnte.

ou.spc.settings
context.enableModules();
const { ScriptLoader } = require("ou.sp.ScriptLoader");
module.exports = ScriptLoader.loadFailsafe(
"ou.cust.settings",
{
option1: "Option 1",
option2: "Option 1",
},
{ merge: true }
);

Dazu das passende cust-Skript

ou.cust.settings
context.enableModules();
module.exports = {
option1: "overridden",
otherOption: "blub",
};

Wird nun das spc geladen, sieht man dass die Einstellungen gemerged wurden.

ou.cust.myscript
context.enableModules();
const settings = require("ou.spc.settings");
// settings
// {
// option1: "overridden",
// otherOption: "blub",
// option2: "Option 1",
// }