Template base para proyectos SaaS multi-tenant. Estructura inicial: - apps/backend (NestJS API) - apps/frontend (React/Vite) - apps/database (PostgreSQL DDL) - docs/ (Documentación) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
95 lines
3.4 KiB
JavaScript
95 lines
3.4 KiB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
// See LICENSE in the project root for license information.
|
|
import { DocNode, DocNodeKind } from './DocNode';
|
|
import { DocSection } from './DocSection';
|
|
import { StandardModifierTagSet } from '../details/StandardModifierTagSet';
|
|
import { StringBuilder } from '../emitters/StringBuilder';
|
|
import { TSDocEmitter } from '../emitters/TSDocEmitter';
|
|
import { DocParamCollection } from './DocParamCollection';
|
|
/**
|
|
* Represents an entire documentation comment conforming to the TSDoc structure.
|
|
* This is the root of the DocNode tree.
|
|
*/
|
|
export class DocComment extends DocNode {
|
|
/**
|
|
* Don't call this directly. Instead use {@link TSDocParser}
|
|
* @internal
|
|
*/
|
|
constructor(parameters) {
|
|
super(parameters);
|
|
this.summarySection = new DocSection({ configuration: this.configuration });
|
|
this.remarksBlock = undefined;
|
|
this.privateRemarks = undefined;
|
|
this.deprecatedBlock = undefined;
|
|
this.params = new DocParamCollection({ configuration: this.configuration });
|
|
this.typeParams = new DocParamCollection({ configuration: this.configuration });
|
|
this.returnsBlock = undefined;
|
|
this.modifierTagSet = new StandardModifierTagSet();
|
|
this._seeBlocks = [];
|
|
this._customBlocks = [];
|
|
}
|
|
/** @override */
|
|
get kind() {
|
|
return DocNodeKind.Comment;
|
|
}
|
|
/**
|
|
* The collection of all `@see` DockBlockTag nodes belonging to this doc comment.
|
|
*/
|
|
get seeBlocks() {
|
|
return this._seeBlocks;
|
|
}
|
|
/**
|
|
* The collection of all DocBlock nodes belonging to this doc comment.
|
|
*/
|
|
get customBlocks() {
|
|
return this._customBlocks;
|
|
}
|
|
/**
|
|
* Append an item to the seeBlocks collection.
|
|
* @internal
|
|
*/
|
|
_appendSeeBlock(block) {
|
|
this._seeBlocks.push(block);
|
|
}
|
|
/**
|
|
* Append an item to the customBlocks collection.
|
|
*/
|
|
appendCustomBlock(block) {
|
|
this._customBlocks.push(block);
|
|
}
|
|
/** @override */
|
|
onGetChildNodes() {
|
|
return [
|
|
this.summarySection,
|
|
this.remarksBlock,
|
|
this.privateRemarks,
|
|
this.deprecatedBlock,
|
|
this.params.count > 0 ? this.params : undefined,
|
|
this.typeParams.count > 0 ? this.typeParams : undefined,
|
|
this.returnsBlock,
|
|
...this.customBlocks,
|
|
...this.seeBlocks,
|
|
this.inheritDocTag,
|
|
...this.modifierTagSet.nodes
|
|
];
|
|
}
|
|
/**
|
|
* Generates a doc comment corresponding to the `DocComment` tree. The output is in a normalized form,
|
|
* and may ignore formatting/spacing from the original input.
|
|
*
|
|
* @remarks
|
|
* After parsing a string, and possibly modifying the result, `emitAsTsdoc()` can be used to render the result
|
|
* as a doc comment in a normalized format. It can also be used to emit a `DocComment` tree that was constructed
|
|
* manually.
|
|
*
|
|
* This method is provided as convenience for simple use cases. To customize the output, or if you need
|
|
* to render into a `StringBuilder`, use the {@link TSDocEmitter} class instead.
|
|
*/
|
|
emitAsTsdoc() {
|
|
const stringBuilder = new StringBuilder();
|
|
const emitter = new TSDocEmitter();
|
|
emitter.renderComment(stringBuilder, this);
|
|
return stringBuilder.toString();
|
|
}
|
|
}
|
|
//# sourceMappingURL=DocComment.js.map
|