التثبيت
ثبّت @powerduck/conf-patch بمدير الحزم الذي تفضله.
المتطلبات
- Node.js:
>= 22.12.0 - TypeScript: اختياري؛ تتضمن الحزمة تعريفات الأنواع كاملة دون الحاجة إلى
@types/....
التثبيت
npm install @powerduck/conf-patch
yarn add @powerduck/conf-patch
pnpm add @powerduck/conf-patch
اعتماديات وقت التشغيل
تتضمن conf-patch ثلاث اعتماديات تشغيل تُثبّت تلقائيًا:
| الحزمة | الإصدار | الاستخدام |
|---|---|---|
@powerduck/openapi-parser | ^0.3.12 | التحقق من OpenAPI/Swagger (validateOpenAPISpec وvalidateOpenAPIFile). |
jsonc-parser | ^3.3.1 | تعديلات نصية تزايدية على JSON وJSONC. |
yaml | ^2.9.0 | تحليل شجرة AST الخاصة بـ YAML وتعديلها. |
لا تحتاج إلى التعامل مباشرةً مع هذه الاعتماديات.
نقطتا دخول
تتيح الحزمة تصديرَين لمسارين فرعيين. ا ختر المناسب لبيئتك.
نقطة الدخول الرئيسية — @powerduck/conf-patch
تتضمن طبقة الملفات (readConfigFile وwriteConfigFile وpatchConfigFile وsetConfigValue وdeleteConfigValue وwithFileLock وreleaseAllLocalLocks)، إضافةً إلى النواة والتحقق من OpenAPI. استخدمها في Node.js وElectron؛ فهي تعتمد على node:fs وnode:path وnode:crypto.
المسار الفرعي للنواة — @powerduck/conf-patch/core
يصدّر النواة الآمنة للمتصفح فقط: patchContent وsetContentValue وdeleteContentValue وأدوات التأكيد وأنواع النواة. لا يعتمد على Node.js ويمكن تجميعه للمتصفحات وEdge Functions وservice workers.
في المتصفح، استورد دائمًا من @powerduck/conf-patch/core لإبقاء طبقة الملفات واعتماديتها node:fs خارج الحزمة المجمعة.
نظام الوحدات: CJS وESM
لا تضبط الحزمة "type": "module"، لذلك تُعامل ملفات .js كـ CommonJS افتراضيًا. توجّه خريطة exports في package.json شرطي import وrequire صراحةً إلى البناء الصحيح.
| نقطة الدخول | CJS (require) | ESM (import) | الأنواع |
|---|---|---|---|
| نقطة الدخول الرئيسية | dist/index.js | dist/index.mjs | dist/index.d.ts |
| المسار الفرعي للنواة | dist/core.js | dist/core.mjs | dist/core.d.ts |
CommonJS في Node.js أو العملية الرئيسية لـ Electron
// Full library (includes file IO)
const { setConfigValue, readConfigFile } = require("@powerduck/conf-patch");
// Core layer only (browser-safe, no fs dependency)
const { patchContent, setContentValue } = require("@powerduck/conf-patch/core");