Skip to content

واجهة البرمجة العامة

ما تُصدّره @dopejs/pingo هو العقد العلني. أمّا الحزم الداخلية (@dopejs/pingo-host وغيرها) فلا تَعِد بالاستقرار، وماسح الترحيل يمنع التطبيقات من الاعتماد عليها مباشرة.

اللقطة هي العقد

السطح العلني مثبَّت في benchmarks/api/facade.v1.d.ts. وأيّ تغيير في التوقيع يستوجب تحديث تلك اللقطة صراحةً ومراجعتها، ويفشل pnpm api:check عند أيّ انحراف.

الجذر والمضيف

ts
createHostedCanvasRoot(canvas, options?): Promise<HostedCanvasRoot>
createCanvasRoot(context, core, options?): DoperRoot   // مسار M1 على الخيط الرئيسي
createWasmCore(width, height, input?): Promise<CoreClient>

توابع HostedCanvasRoot:

التابعالوصف
render(node)يُودِع إطارًا من شجرة المكوّنات
close()يغلق الجذر والـ Worker والنواة
modeمسار النقل الفعلي: sab / post-message / main-thread
beginScroll / scrollBy / endScroll / cancelScrollالتحكّم المباشر بالتمرير
focusEditable / blurEditableبدء جلسة التحرير الأصلية أو إنهاؤها
updateEditingGeometryتزويد هندسة IME يدويًا (تلقائي عادةً)
transportMetrics() / inputTransportMetrics()لقطة عن النقل والضغط العكسي

الخيارات الشائعة: onFrame وonHostError وonEditTransaction وonEventTransaction وonSemantics وonNonPassiveRegions وtransport وrasterCache وaccessibility وnativeTextInputMode.

العناصر وJSX

ts
createElement(type, props, key?): DoperElement
Fragment

عناصر المضيف: container وtext وscroll وvirtualList وeditableText. الأنواع: CommonProps وContainerProps وTextProps وScrollProps وVirtualListProps وEditableTextProps وEditableInputMode وColor وEdgeInsets وNodeHandle وRef وDoperNode وFunctionComponent.

وتُتاح بيئة تشغيل JSX عبر @dopejs/pingo/jsx-runtime و@dopejs/pingo/jsx-dev-runtime.

التفاعلية والخطّافات

ts
(signal, computed, effect, batch, untracked);
(useState, useSignal, useMemo, useCallback, useRef, useEffect);

الأنواع: Signal وReadonlySignal وRefObject وUnsubscribe.

التحرير

ts
TextEditingController;
useTextEditingController(options);

الأنواع: EditTransaction وEditingGeometry وEditingSelection وNativeTextInputMode.

العناصر الجاهزة

ts
TextField(props): DoperNode
TextArea(props): DoperNode

إمكانية الوصول

ts
SemanticTreeMirror
getByRole(root, role, { name? }): HTMLElement
queryAllByRole(root, role, { name? }): HTMLElement[]

الأنواع: SemanticNode وSemanticMirrorNode وSemanticTreeMirrorOptions.

الخطوط

ts
createFont(options): DoperFont
loadFont(source, options?): Promise<DoperFont>

مدعومة الصيغ TTF / OTF / TTC / WOFF / WOFF2 (يُحمَّل مفكِّك WOFF2 عند الحاجة). الأنواع: DoperFontSource وDoperFontOptions وDoperFontLoadOptions وDoperFontLoadError وDoperFontLoadErrorCode وWoff2Decoder.

الإصدار والتشخيص

ts
ENGINE_VERSION: string
ENGINE_ABI_VERSION: number
engineIdentity(): { version, abiVersion }
verifyWasmIntegrity(bytes, manifest): Promise<void>

يُرمى WasmIntegrityError حين لا يطابق ملفّ WASM المستضاف ذاتيًا بيان البناء. انظر التشخيص.

حدّ الترحيل

@dopejs/pingo-compat حزمة حدّية مستقلّة توفّر mountCompatPage للإطلاق صفحةً صفحة وللعودة. التفاصيل في دليل الترحيل.

آخر تحديث:

منشور برخصة MIT