Справочник API
Полный справочник @powerduck/conf-patch с сигнатурами и значениями по умолчанию для каждого экспортируемого символа.
Доступны две точки входа:
@powerduck/conf-patch— все перечисленные ниже возможности: ядро, файлы, проверка OpenAPI и утилиты.@powerduck/conf-patch/core— только совместимая с браузером часть:patchContent,setContentValue,deleteContentValue,PatchContentOptions, проверочные функции и типыConfigFormat,JsonPatchOp,JsonPathSegment.
Ядро (совместимо с браузером)
patchContent
Применяет массив операций RFC 6902 к строке конфигурации. Чистая функция без доступа к файловой системе.
function patchContent(
content: string,
ops: JsonPatchOp[],
format: ConfigFormat,
options?: PatchContentOptions,
): string;
| Параметр | Тип | Описание |
|---|---|---|
content | string | Исходное содержимое конфигурации. Должно соответствовать указанному format. |
ops | JsonPatchOp[] | Операции, применяемые по порядку. Пустой массив возвращает content без изменений. |
format | ConfigFormat | "json" | "jsonc" | "yaml". |
options.strict | boolean | При true (по умолчанию) неудачная операция вызывает исключение. При false она пропускается с предупреждением через console.warn. |
Возвращает: изменённое содержимое конфигурации (string).
Исключения: TypeError, если content не строка или ops некорректен; ошибка с описанием неудачной операции, если strict равен true.
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
Задаёт или создаёт одно значение. Внутри вызывает patchContent с одной операцией add. По RFC 6902 опер ация add заменяет существующее свойство объекта или вставляет элемент по индексу массива.
function setContentValue(
content: string,
path: readonly (string | number)[],
value: unknown,
format: ConfigFormat,
): string;
| Параметр | Тип | Описание |
|---|---|---|
content | string | Исходное содержимое конфигурации. |
path | readonly (string | number)[] | Путь по сегментам, например ["server", "port"]. Не может быть пустым. |
value | unknown | Записываемое значение. |
format | ConfigFormat | Формат конфигурации. |
Возвращает: обновлённое содержимое (string).
setContentValue("server:\n port: 3000\n", ["server", "port"], 8080, "yaml");
deleteContentValue
Удаляет ключ или элемент массива. Внутри вызывает patchContent с одной операцией remove. Путь должен существовать.
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;
}