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",
// }