@giancosta86/typedoc-readonly
Version:
Advanced support for Readonly in TypeDoc
22 lines (21 loc) • 897 B
JavaScript
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);
}
}