import type { DocumentNode, DocumentResolver } from '@rsdk/autodoc.protocol'; import { Composite, Table } from '@rsdk/autodoc.protocol'; import type { RsdkMetadataProvider } from '@rsdk/metadata'; import { METRIC_RSDK_METADATA_SCOPE } from '../constants'; import type { MetricRsdkMetadata } from '../types'; class MetricAutodocResolver implements DocumentResolver { getNode(rsdkMetadataProvider: RsdkMetadataProvider): DocumentNode | null { const resources = rsdkMetadataProvider.get( METRIC_RSDK_METADATA_SCOPE, ); if (!resources) { return null; } return new Composite( new Table( resources.map(({ value }) => { return { name: value.metadata.name, description: value.metadata.description ?? '-', type: value.metadata.type, controllerName: value.metricController.name, }; }), ), 'Metrics', ); } } export const metricsDocumentResolver = new MetricAutodocResolver();