API-Referenz
Vollständige Referenz für @powerduck/conf-patch mit Signaturen und Standardwerten aller exportierten Symbole.
Es gibt zwei Einstiegspunkte:
@powerduck/conf-patch— alle folgenden Funktionen: Kernschicht, Dateischicht, OpenAPI-Validierung und Hilfsfunktionen.@powerduck/conf-patch/core— nur der browsergeeignete Teil:patchContent,setContentValue,deleteContentValue,PatchContentOptions, die Prüffunktionen sowie die TypenConfigFormat,JsonPatchOp,JsonPathSegment.
Kernschicht (browsergeeignet)
patchContent
Wendet RFC-6902-Patch-Operationen auf eine Konfigurationszeichenfolge an. Reine Funktion ohne Dateisystemzugriff.
function patchContent(
content: string,
ops: JsonPatchOp[],
format: ConfigFormat,
options?: PatchContentOptions,
): string;
| Parameter | Typ | Beschreibung |
|---|---|---|
content | string | Roher Konfigurationsinhalt, der dem angegebenen format entsprechen muss. |
ops | JsonPatchOp[] | Der Reihe nach anzuwendende Operationen. Ein leeres Array gibt content unverändert zurück. |
format | ConfigFormat | "json" | "jsonc" | "yaml". |
options.strict | boolean | Bei true (Standard) lösen fehlgeschlagene Operationen Ausnahmen aus. Bei false werden sie übersprungen und mit console.warn gemeldet. |
Rückgabe: der geänderte Konfigurationsinhalt (string).
Ausnahmen: TypeError, wenn content keine Zeichenfolge oder ops ungültig ist; bei strict gleich true ein Fehler mit Beschreibung der fehlgeschlagenen Operation.
import { patchContent } from "@powerduck/conf-patch/core";
patchContent(
'{"name": "app"}',
[{ op: "add", path: ["version"], value: "1.0.0" }],
"json",
);
// => '{\n "name": "app",\n "version": "1.0.0"\n}'
setContentValue
Setzt oder erstellt einen einzelnen Wert. Ruft intern patchContent mit einer add-Operation auf. Nach RFC 6902 ersetzt add vorhandene Objekteigenschaften oder fügt an einem Arrayindex ein.
function setContentValue(
content: string,
path: readonly (string | number)[],
value: unknown,
format: ConfigFormat,
): string;
| Parameter | Typ | Beschreibung |
|---|---|---|
content | string | Roher Konfigurationsinhalt. |
path | readonly (string | number)[] | Segmentierter Pfad, etwa ["server", "port"]. Darf nicht leer sein. |
value | unknown | Zu schreibender Wert. |
format | ConfigFormat | Konfigurationsformat. |
Rückgabe: der aktualisierte Inhalt (string).
setContentValue("server:\n port: 3000\n", ["server", "port"], 8080, "yaml");
deleteContentValue
Entfernt einen Schlüssel oder ein Arrayelement. Ruft intern patchContent mit einer remove-Operation auf. Der Pfad muss existieren.
function deleteContentValue(
content: string,
path: readonly (string | number)[],
format: ConfigFormat,
): string;
deleteContentValue(
'{"name": "app", "legacy": true}',
["legacy"],
"json",
);
PatchContentOptions
interface PatchContentOptions {
/** When true, failed operations throw. When false, they are skipped with a warning. Default: true */
strict?: boolean;
}
Dateischicht (nur Node.js / Electron)
readConfigFile
Liest UTF-8-Text über einen lokalen Dateipfad oder eine file://-URL.
function readConfigFile(filePath: string): Promise<string>;
| Parameter | Typ | Beschreibung |
|---|---|---|
filePath | string | Absoluter oder relativer Pfad oder eine file://-URL. Darf nicht leer sein. |
Rückgabe: der rohe UTF-8-Inhalt (Promise<string>).
Ausnahmen: Bei Lesefehlern wird der zugrunde liegende Dateisystemfehler in einen Fehler eingebettet.
writeConfigFile
Schreibt Inhalte atomar über eine temporäre Datei und anschließendes Umbenennen, standardmäßig unter einer exklusiven Dateisperre. Übergeordnete Verzeichnisse werden vor dem Sperren angelegt.
function writeConfigFile(
filePath: string,
content: string,
options?: WriteConfigOptions,
): Promise<void>;
| Parameter | Typ | Beschreibung |
|---|---|---|
filePath | string | Pfad zur Konfigurationsdatei. |
content | string | Zu schreibender Inhalt; muss eine Zeichenfolge sein. |
options | WriteConfigOptions | Siehe unten. |
Ausnahmen: TypeError bei ungültiger Eingabe; Dateisystemfehler beim Schreiben werden eingebettet.