MCPcopy Create free account
hub / github.com/esengine/esengine / injectProperties

Function injectProperties

packages/core/src/Core/DI/Decorators.ts:251–266  ·  view source on GitHub ↗
(instance: T, container: ServiceContainer)

Source from the content-addressed store, hash-verified

249 * @param container 服务容器
250 */
251export function injectProperties<T extends object>(instance: T, container: ServiceContainer): void {
252 const constructor = (instance as { constructor: Constructor }).constructor;
253 const metadata = getInjectableMetadata(constructor);
254
255 if (!metadata?.properties || metadata.properties.size === 0) {
256 return;
257 }
258
259 for (const [propertyKey, serviceType] of metadata.properties) {
260 const service = container.resolve(serviceType);
261
262 if (service !== null) {
263 (instance as Record<string | symbol, unknown>)[propertyKey] = service;
264 }
265 }
266}
267
268/**
269 * 检查类是否标记为可更新

Callers 2

addEntityProcessorMethod · 0.90
createInstanceFunction · 0.85

Calls 2

getInjectableMetadataFunction · 0.85
resolveMethod · 0.65

Tested by

no test coverage detected