ObjectHelper
Diese Helferklasse ermöglicht die Erstellung von Objekten und das Rendern von handlebar-ähnlichen Strings.
ObjectHelper Members
assign Object
Mit der Methode assign werden die Werte aller Eigenschaften mehrerer Objekte zu einem neuen Objekt zusammengefasst.
Verhalten
- Gleichnamige Eigenschaften werden immer mit dem letzten Eintrag überschrieben.
- Gleichnamige Arrays werden aneinandergehängt.
ObjectHelper.assign<T>(init: T, ...sources: any[]): T
Parameter:
init: Das erste Objekt, das zur Initialisierung der Werte verwendet werden soll.sources: Weitere Quell-Objekte, aus denen die Eigenschaften zusammengefügt werden sollen.
context.enableModules();
const { ObjectHelper } = require("ou.sp.ObjectHelper");
context.returnValue = JSON.stringify(
ObjectHelper.assign(
{
prop1: {
deep: {
myProp: false,
array: [1, 2, 3],
},
},
},
{
prop1: {
deep: {
myProp: true,
otherProp: false,
array: [4, 5, 6],
},
},
}
)
);
// returnValue ==
// {
// "prop1": {
// "deep": {
// "myProp": true,
// "otherProp": false,
// "array": [1, 2, 3, 4, 5, 6]
// }
// }
// }
assignFromJSON Object
Die assignFromJSON-Methode nimm ein JSON-String, parsed diesen und kopiert die Werte aller Eigenschaften aus dem Zielobjekt und den Quell-Objekten in ein neues Objekt.
ObjectHelper.assignFromJSON<T>(init: T, json: string): T
static
Parameter:
init: Object: Das erste Objekt, das zur Initialisierung der Werte verwendet werden soll.json: string: Ein JSON-String, aus dem die Eigenschaften kopiert werden sollen.
Beispiel:
context.enableModules();
const { ObjectHelper } = require("ou.sp.ObjectHelper");
context.returnValue = JSON.stringify(
ObjectHelper.assignFromJson(
{
prop1: {
deep: {
myProp: true,
array: [1, 2, 3],
},
},
},
'{ "prop1": { "deep": { "otherProp": false, "array": [4, 5, 6] } } }'
)
);
// returnValue ==
// {
// "prop1": {
// "deep": {
// "myProp": true,
// "otherProp": false,
// "array": [1, 2, 3, 4, 5, 6]
// }
// }
// }
functionToString string
Konvertiert eine Funktion in ein String.
ObjectHelper.functionToString(func: Function): string
static
Parameter:
func: Funktion: Die gewünschte Funktion
context.enableModules();
const { ObjectHelper } = require("ou.sp.ObjectHelper");
function mySuperCoolFunction() {
// jep, does nothing...
}
const myFunctionAsString = ObjectHelper.functionToString(mySuperCoolFunction);
// myFunctionAsString ==
// "function mySuperCoolFunction() {\r\n
// // jep, does nothing...\r\n
// }"
renderTemplateString string
Kompiliert ein semantic templates String (Mustache templates) anhand des angegeben Daten-Objekts.
ObjectHelper.renderTemplateString(template: string, data: Object): string
static
Parameter:
template: string: Ein semantic template string mit Platzhalter, z.B."Hello my name is {{name}}"data: Object: Ein Objekt mit Eigenschaften, welches die Platzhalter ersetzen kann. z.B.{ name: "Chuck Norris" }
context.enableModules();
const { ObjectHelper } = require("ou.sp.ObjectHelper");
const template = "Hello my name is {{name}}"
const data = {
name: "Chuck Norris"
}
const myFunctionAsString = ObjectHelper.renderTemplateString(template, data);
// Hello my name is Chuck Norris
renderTemplateStringCustom string
Kompiliert ein semantic templates String (Mustache templates) anhand des angegeben Daten-Objekts.
ObjectHelper.renderTemplateStringCustom(template: string, replace: (key:string) => string): string
static
Parameter:
template: string: Ein semantic template string mit Platzhalter, z.B."Hello my name is {{name}}"replace: (key:string) => string: Eine Callback Funktion, welche den Platzhalter alsstringübergibt und einstringals Rückgabewert erwartet.
context.enableModules();
const { ObjectHelper } = require("ou.sp.ObjectHelper");
/** @type {ptpInvoice} */
const docFile = context.file // beinhaltet Feld netAmount1 und vatRate1
const template = "Netto {{netAmount1}}€ mit {{vatRate1}}% Steuer."
const myFunctionAsString = ObjectHelper.renderTemplateStringCustom(template, (placeholder) => {
return docFile.getFieldAutoText(placeholder)
});
// Netto 100,00€ mit 19,00% Steuer