UNPKG

@giancosta86/typedoc-readonly

Version:
22 lines (21 loc) • 897 B
import { ReflectionType } from "typedoc"; import { AnalysisContext } from "./AnalysisContext.js"; import { ReadonlyWrapper } from "./ReadonlyWrapper.js"; import { setPropertiesReadonly } from "./declarationUtils.js"; export class ReadonlyContext extends AnalysisContext { constructor(logger) { super(logger, "readonly"); } simplifyReferenceType(referenceType) { const readonlyWrapper = ReadonlyWrapper.get(this.logger, referenceType); return readonlyWrapper ? this.simplify(readonlyWrapper.subject) : referenceType; } simplifyReflectionType(reflectionType) { const { logger } = this; logger.verbose(`🛑Setting read-only properties for type: ${reflectionType}`); const updatedDeclaration = setPropertiesReadonly(reflectionType.declaration); return new ReflectionType(updatedDeclaration); } }