Skip to content

Prop Manager

ts
import { PropManager, type PropContext } from "@dpg.gg/core/renderer";

Overview

Вспомогательный класс Renderer для Traverse, расширяемый системой middleware. Он предназначен для обработки входящего списока свойств.

В Traverse он используется для обработки аттрибутов props и events

Methods

use(...middlewares)

  • Arg middlewares - принимает одну или несколько Middleware функций

Нужен для расширения базового поведения при выполнении assign или run методов. Например назначение preact компонентов в зависимости от типа элемента:

ts
pm.use((ctx, next) => {
	if (ctx.name === "style") {
		console.log("styles:", ctx.value);
	}
	return next();
});

async run(ctx)

  • Arg ctx: { name: string, value: any } - Входной объект

Используется для вызова всех middleware, присвоенных к экземпляру

Прямой необходимости в его использовании из вне нет, он автоматически выполняется при вызове метода assign

async assign(list)

  • Arg list: Record<string, any> - Объект фомата ключ:значение над которым нужно провести манипуляции

Формирует объект, применяя к нему middlewares

ts
const props = await pm.assign(node.props);