mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 18:43:31 +01:00
feat(website): use tsdoc parameter names wherever possible (#9413)
Co-authored-by: Noel <buechler.noel@outlook.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,11 @@
|
||||
import type { ApiEntryPoint, ApiModel } from '@microsoft/api-extractor-model';
|
||||
import type {
|
||||
ApiDocumentedItem,
|
||||
ApiEntryPoint,
|
||||
ApiModel,
|
||||
ApiParameterListMixin,
|
||||
Excerpt,
|
||||
} from '@microsoft/api-extractor-model';
|
||||
import type { DocSection } from '@microsoft/tsdoc';
|
||||
|
||||
export function findMemberByKey(model: ApiModel, packageName: string, containerKey: string) {
|
||||
const pkg = model.tryGetPackageByName(`@discordjs/${packageName}`)!;
|
||||
@@ -13,3 +20,32 @@ export function findMember(model: ApiModel, packageName: string, memberName: str
|
||||
const pkg = model.tryGetPackageByName(`@discordjs/${packageName}`)!;
|
||||
return pkg.entryPoints[0]?.findMembersByName(memberName)[0];
|
||||
}
|
||||
|
||||
interface ResolvedParameter {
|
||||
description?: DocSection | undefined;
|
||||
isOptional: boolean;
|
||||
name: string;
|
||||
parameterTypeExcerpt: Excerpt;
|
||||
}
|
||||
|
||||
/**
|
||||
* This takes an api item with a parameter list and resolves the names and descriptions of all the parameters.
|
||||
*
|
||||
* @remarks
|
||||
* This is different from accessing `Parameter#name` or `Parameter.tsdocBlockComment` as this method cross-references the associated tsdoc
|
||||
* parameter names and descriptions and uses them as a higher precedence to the source code.
|
||||
* @param item - The api item to resolve parameter data for
|
||||
* @returns An array of parameters
|
||||
*/
|
||||
export function resolveParameters(item: ApiDocumentedItem & ApiParameterListMixin): ResolvedParameter[] {
|
||||
return item.parameters.map((param, idx) => {
|
||||
const tsdocAnalog = item.tsdocComment?.params.blocks[idx];
|
||||
|
||||
return {
|
||||
name: param.tsdocParamBlock?.parameterName ?? tsdocAnalog?.parameterName ?? param.name,
|
||||
description: param.tsdocParamBlock?.content ?? tsdocAnalog?.content,
|
||||
isOptional: param.isOptional,
|
||||
parameterTypeExcerpt: param.parameterTypeExcerpt,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user