From d602439d1bd97ee3474c88519d90e67544372af3 Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Mon, 7 Apr 2025 18:19:49 +0200 Subject: [PATCH 1/5] fix: generateSplitDocumentation for external docs on main --- packages/api-extractor/extends/tsdoc-base.json | 1 + .../scripts/src/generateSplitDocumentation.ts | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/api-extractor/extends/tsdoc-base.json b/packages/api-extractor/extends/tsdoc-base.json index c5a78650b191..ca6520cfd49c 100644 --- a/packages/api-extractor/extends/tsdoc-base.json +++ b/packages/api-extractor/extends/tsdoc-base.json @@ -71,6 +71,7 @@ "@betaDocumentation": true, "@internalRemarks": true, + "@mixes": true, "@preapproved": true } } diff --git a/packages/scripts/src/generateSplitDocumentation.ts b/packages/scripts/src/generateSplitDocumentation.ts index 703d24116edd..7102f142e440 100644 --- a/packages/scripts/src/generateSplitDocumentation.ts +++ b/packages/scripts/src/generateSplitDocumentation.ts @@ -522,8 +522,8 @@ function itemInfo(item: ApiDeclaredItem) { const isAbstract = ApiAbstractMixin.isBaseClassOf(item) && item.isAbstract; const isOptional = ApiOptionalMixin.isBaseClassOf(item) && item.isOptional; const isDeprecated = Boolean(item.tsdocComment?.deprecatedBlock); - const isExternal = Boolean(item.sourceLocation.fileUrl?.includes('node_modules')); - + const isExternal = Boolean(sourceLine === undefined); + if (item.displayName === 'MessageActionRowComponentBuilder') console.log(sourceURL); const hasSummary = Boolean(item.tsdocComment?.summarySection); return { @@ -587,6 +587,19 @@ function resolveFileUrl(item: ApiDeclaredItem) { sourceURL: href, }; } + } else if (fileUrl?.includes('/dist/') && fileUrl.includes('/main/packages/')) { + const [, pkg] = fileUrl.split('/main/packages/'); + const pkgName = pkg?.split('/')[0]; + const version = 'main'; + + // https://github.com/discordjs/discord.js/tree/main/packages/builders/dist/index.d.ts + let currentItem = item; + while (currentItem.parent && currentItem.parent.kind !== ApiItemKind.EntryPoint) + currentItem = currentItem.parent as ApiDeclaredItem; + + return { + sourceURL: `/docs/packages/${pkgName}/${version}/${currentItem.displayName}:${currentItem.kind}`, + }; } return { From 6a23f6b7a258b0031c595ce3bc3e83127cd50d7b Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Mon, 7 Apr 2025 18:58:41 +0200 Subject: [PATCH 2/5] fix: remove console.log --- packages/scripts/src/generateSplitDocumentation.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/scripts/src/generateSplitDocumentation.ts b/packages/scripts/src/generateSplitDocumentation.ts index 7102f142e440..170ddbee5f10 100644 --- a/packages/scripts/src/generateSplitDocumentation.ts +++ b/packages/scripts/src/generateSplitDocumentation.ts @@ -523,7 +523,6 @@ function itemInfo(item: ApiDeclaredItem) { const isOptional = ApiOptionalMixin.isBaseClassOf(item) && item.isOptional; const isDeprecated = Boolean(item.tsdocComment?.deprecatedBlock); const isExternal = Boolean(sourceLine === undefined); - if (item.displayName === 'MessageActionRowComponentBuilder') console.log(sourceURL); const hasSummary = Boolean(item.tsdocComment?.summarySection); return { From 02ce3006b66e808c956092cac81d1b80cb5dab64 Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Mon, 7 Apr 2025 23:33:36 +0200 Subject: [PATCH 3/5] chore: apply suggestion Co-authored-by: Almeida --- packages/scripts/src/generateSplitDocumentation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/scripts/src/generateSplitDocumentation.ts b/packages/scripts/src/generateSplitDocumentation.ts index 170ddbee5f10..58538e151804 100644 --- a/packages/scripts/src/generateSplitDocumentation.ts +++ b/packages/scripts/src/generateSplitDocumentation.ts @@ -588,7 +588,7 @@ function resolveFileUrl(item: ApiDeclaredItem) { } } else if (fileUrl?.includes('/dist/') && fileUrl.includes('/main/packages/')) { const [, pkg] = fileUrl.split('/main/packages/'); - const pkgName = pkg?.split('/')[0]; + const pkgName = pkg!.split('/')[0]; const version = 'main'; // https://github.com/discordjs/discord.js/tree/main/packages/builders/dist/index.d.ts From 7f4701cc2f15fa9696ac96ded0313bc6def1f059 Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Fri, 11 Apr 2025 00:38:08 +0200 Subject: [PATCH 4/5] fix: mixes tag --- .../interactions/commands/chatInput/ChatInputCommand.ts | 9 +++++---- packages/builders/tsdoc.json | 7 +------ packages/scripts/src/generateSplitDocumentation.ts | 9 +++++++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/builders/src/interactions/commands/chatInput/ChatInputCommand.ts b/packages/builders/src/interactions/commands/chatInput/ChatInputCommand.ts index 82cd54820716..2401678ca5eb 100644 --- a/packages/builders/src/interactions/commands/chatInput/ChatInputCommand.ts +++ b/packages/builders/src/interactions/commands/chatInput/ChatInputCommand.ts @@ -1,3 +1,4 @@ +/* eslint-disable jsdoc/valid-types */ import { ApplicationCommandType, type RESTPostAPIChatInputApplicationCommandsJSONBody } from 'discord-api-types/v10'; import { Mixin } from 'ts-mixer'; import { validate } from '../../../util/validation.js'; @@ -10,10 +11,10 @@ import { SharedChatInputCommandSubcommands } from './mixins/SharedSubcommands.js /** * A builder that creates API-compatible JSON data for chat input commands. * - * @mixes CommandBuilder - * @mixes SharedChatInputCommandOptions - * @mixes SharedNameAndDescription - * @mixes SharedChatInputCommandSubcommands + * @mixes {@link CommandBuilder}\<{@link discord-api-types/v10#(RESTPostAPIChatInputApplicationCommandsJSONBody:interface)}\> + * @mixes {@link SharedChatInputCommandOptions} + * @mixes {@link SharedNameAndDescription} + * @mixes {@link SharedChatInputCommandSubcommands} */ export class ChatInputCommandBuilder extends Mixin( CommandBuilder, diff --git a/packages/builders/tsdoc.json b/packages/builders/tsdoc.json index 92aaafe6f6db..e191d552933c 100644 --- a/packages/builders/tsdoc.json +++ b/packages/builders/tsdoc.json @@ -1,9 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", - "tagDefinitions": [ - { - "tagName": "@mixes", - "syntaxKind": "block" - } - ] + "extends": ["@discordjs/api-extractor/extends/tsdoc-base.json"] } diff --git a/packages/scripts/src/generateSplitDocumentation.ts b/packages/scripts/src/generateSplitDocumentation.ts index 58538e151804..12905293fee7 100644 --- a/packages/scripts/src/generateSplitDocumentation.ts +++ b/packages/scripts/src/generateSplitDocumentation.ts @@ -457,13 +457,15 @@ function itemTsDoc(item: DocNode, apiItem: ApiItem) { const comment = node as DocComment; const exampleBlocks = comment.customBlocks.filter( - (block) => block.blockTag.tagName.toUpperCase() === StandardTags.example.tagNameWithUpperCase, + (block) => block.blockTag.tagNameWithUpperCase === StandardTags.example.tagNameWithUpperCase, ); const defaultValueBlock = comment.customBlocks.find( - (block) => block.blockTag.tagName.toUpperCase() === StandardTags.defaultValue.tagNameWithUpperCase, + (block) => block.blockTag.tagNameWithUpperCase === StandardTags.defaultValue.tagNameWithUpperCase, ); + const mixesBlocks = comment.customBlocks.filter((block) => block.blockTag.tagNameWithUpperCase === '@MIXES'); + return { kind: DocNodeKind.Comment, deprecatedBlock: comment.deprecatedBlock @@ -497,6 +499,9 @@ function itemTsDoc(item: DocNode, apiItem: ApiItem) { seeBlocks: comment.seeBlocks .flatMap((block) => createNode(block.content).flat(1)) .filter((val: any) => val.kind !== DocNodeKind.SoftBreak), + mixesBlocks: mixesBlocks + .flatMap((block) => createNode(block.content).flat(1)) + .filter((val: any) => val.kind !== DocNodeKind.SoftBreak), }; } From 40ab64f66dab73a062aa48f83b22d7486e02570b Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Fri, 11 Apr 2025 15:45:39 +0200 Subject: [PATCH 5/5] chore: docs include collection --- packages/discord.js/api-extractor.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/discord.js/api-extractor.json b/packages/discord.js/api-extractor.json index 0e5a315890ed..15528fc8dac7 100644 --- a/packages/discord.js/api-extractor.json +++ b/packages/discord.js/api-extractor.json @@ -4,6 +4,7 @@ "bundledPackages": [ "discord-api-types", "@discordjs/builders", + "@discordjs/collection", "@discordjs/formatters", "@discordjs/rest", "@discordjs/util",