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 überrequire()geladen werden soll.defaultModule: Object: (Optional) Das Fallback-Objekt, welches zurückgegeben werden soll, wenn das Skript nicht existiertoptions.merge: (Optional) Ist dieses Flag aktiviert, so wird das geladene Skript und das Objekt ausdefaultModulein 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",
// }