mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 16:43:31 +01:00
feat: mainlib docs on new website (#9930)
* fix(ExceptText): don't display import("d..-types/v10"). in return type
* Squashed 'packages/api-extractor-model/' content from commit 39ecb196c
git-subtree-dir: packages/api-extractor-model
git-subtree-split: 39ecb196ca210bdf84ba6c9cadb1bb93571849d7
* Squashed 'packages/api-extractor/' content from commit 341ad6c51
git-subtree-dir: packages/api-extractor
git-subtree-split: 341ad6c51b01656d4f73b74ad4bdb3095f9262c4
* feat(api-extractor): add api-extractor and -model
* fix: package.json docs script
* fix(SourcLink): use <> instead of function syntax
* fix: make packages private
* fix: rest params showing in docs, added labels
* fix: missed two files
* feat: merge docs.json from docgen and docs.api.json
* fix: cpy-cli & pnpm-lock
* fix: increase icon size
* fix: icon size again
* feat: run both docs on mainlib
* chore: website fixes
* fix: more website fixes
* fix: tests and dev database script
* chore: comment out old docs
* fix: increase max fetch cache
* fix: env should always be a string
* fix: try to reapply patches
* fix: remove prepare for docgen
* fix: temporary cosmetic fixes
* fix: horizontal scroll
* feat: generate index for new docs
---------
Co-authored-by: Noel <buechler.noel@outlook.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
"description": "A set of scripts that we use for our workflows",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "tsc --noEmit && tsup",
|
||||
"build": "tsc --noEmit --skipLibCheck && tsup",
|
||||
"lint": "prettier --check . && cross-env TIMING=1 eslint --format=pretty src turbo",
|
||||
"format": "prettier --write . && cross-env TIMING=1 eslint --fix --format=pretty src turbo",
|
||||
"fmt": "pnpm run format"
|
||||
@@ -53,10 +53,12 @@
|
||||
},
|
||||
"homepage": "https://discord.js.org",
|
||||
"dependencies": {
|
||||
"@discordjs/api-extractor-utils": "workspace:^",
|
||||
"@actions/glob": "^0.4.0",
|
||||
"@discordjs/api-extractor-model": "workspace:^",
|
||||
"@discordjs/api-extractor-utils": "workspace:^",
|
||||
"@microsoft/tsdoc": "0.14.2",
|
||||
"@microsoft/tsdoc-config": "0.16.2",
|
||||
"@planetscale/database": "^1.11.0",
|
||||
"tslib": "^2.6.2",
|
||||
"undici": "5.27.2",
|
||||
"yaml": "2.3.4"
|
||||
@@ -66,6 +68,7 @@
|
||||
"@types/node": "18.18.8",
|
||||
"@vitest/coverage-v8": "^0.34.6",
|
||||
"cross-env": "^7.0.3",
|
||||
"env-cmd": "^10.1.0",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-neon": "^0.1.57",
|
||||
"eslint-formatter-pretty": "^5.0.0",
|
||||
|
||||
@@ -1,23 +1,11 @@
|
||||
import { stat, mkdir, writeFile } from 'node:fs/promises';
|
||||
import { join } from 'node:path';
|
||||
import { cwd } from 'node:process';
|
||||
import {
|
||||
ApiModel,
|
||||
ApiDeclaredItem,
|
||||
ApiItemContainerMixin,
|
||||
ApiItem,
|
||||
type ApiPackage,
|
||||
ApiItemKind,
|
||||
} from '@discordjs/api-extractor-model';
|
||||
import type { ApiPackage } from '@discordjs/api-extractor-model';
|
||||
import { ApiItem, ApiModel, ApiDeclaredItem, ApiItemContainerMixin, ApiItemKind } from '@discordjs/api-extractor-model';
|
||||
import { generatePath } from '@discordjs/api-extractor-utils';
|
||||
import {
|
||||
DocNodeKind,
|
||||
type DocCodeSpan,
|
||||
type DocNode,
|
||||
type DocParagraph,
|
||||
type DocPlainText,
|
||||
TSDocConfiguration,
|
||||
} from '@microsoft/tsdoc';
|
||||
import { DocNodeKind, TSDocConfiguration } from '@microsoft/tsdoc';
|
||||
import type { DocLinkTag, DocCodeSpan, DocNode, DocParagraph, DocPlainText } from '@microsoft/tsdoc';
|
||||
import { TSDocConfigFile } from '@microsoft/tsdoc-config';
|
||||
import { request } from 'undici';
|
||||
|
||||
@@ -29,6 +17,7 @@ export interface MemberJSON {
|
||||
}
|
||||
|
||||
export const PACKAGES = [
|
||||
'discord.js',
|
||||
'brokers',
|
||||
'builders',
|
||||
'collection',
|
||||
@@ -44,17 +33,23 @@ export const PACKAGES = [
|
||||
let idx = 0;
|
||||
|
||||
export function addPackageToModel(model: ApiModel, data: any) {
|
||||
const tsdocConfiguration = new TSDocConfiguration();
|
||||
const tsdocConfigFile = TSDocConfigFile.loadFromObject(data.metadata.tsdocConfig);
|
||||
tsdocConfigFile.configureParser(tsdocConfiguration);
|
||||
let apiPackage: ApiPackage;
|
||||
if (data.metadata) {
|
||||
const tsdocConfiguration = new TSDocConfiguration();
|
||||
const tsdocConfigFile = TSDocConfigFile.loadFromObject(data.metadata.tsdocConfig);
|
||||
tsdocConfigFile.configureParser(tsdocConfiguration);
|
||||
|
||||
apiPackage = ApiItem.deserialize(data, {
|
||||
apiJsonFilename: '',
|
||||
toolPackage: data.metadata.toolPackage,
|
||||
toolVersion: data.metadata.toolVersion,
|
||||
versionToDeserialize: data.metadata.schemaVersion,
|
||||
tsdocConfiguration,
|
||||
}) as ApiPackage;
|
||||
} else {
|
||||
apiPackage = ApiItem.deserializeDocgen(data, 'discord.js') as ApiPackage;
|
||||
}
|
||||
|
||||
const apiPackage = ApiItem.deserialize(data, {
|
||||
apiJsonFilename: '',
|
||||
toolPackage: data.metadata.toolPackage,
|
||||
toolVersion: data.metadata.toolVersion,
|
||||
versionToDeserialize: data.metadata.schemaVersion,
|
||||
tsdocConfiguration,
|
||||
}) as ApiPackage;
|
||||
model.addMember(apiPackage);
|
||||
return model;
|
||||
}
|
||||
@@ -82,6 +77,9 @@ export function tryResolveSummaryText(item: ApiDeclaredItem): string | null {
|
||||
case DocNodeKind.PlainText:
|
||||
retVal += (node as DocPlainText).text;
|
||||
break;
|
||||
case DocNodeKind.LinkTag:
|
||||
retVal += (node as DocLinkTag).urlDestination;
|
||||
break;
|
||||
case DocNodeKind.Section:
|
||||
case DocNodeKind.Paragraph: {
|
||||
for (const child of (node as DocParagraph).nodes) {
|
||||
|
||||
32
packages/scripts/src/populateDevDatabaseBranch.ts
Normal file
32
packages/scripts/src/populateDevDatabaseBranch.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import process, { cwd } from 'node:process';
|
||||
import { create } from '@actions/glob';
|
||||
import { connect } from '@planetscale/database';
|
||||
|
||||
const sql = connect({
|
||||
url: process.env.DATABASE_URL!,
|
||||
});
|
||||
|
||||
process.chdir(`${cwd()}/../../`);
|
||||
const globber = await create(`packages/*/docs/*.api.json`);
|
||||
// const globber2 = await create(`discord.js/*.json`);
|
||||
for await (const file of globber.globGenerator()) {
|
||||
const parsed = /(?<semver>\d+.\d+.\d+)-?.*/.exec(file);
|
||||
const data = await readFile(file, 'utf8');
|
||||
|
||||
if (parsed?.groups) {
|
||||
console.log(parsed.groups.semver, file);
|
||||
try {
|
||||
await sql.execute('replace into documentation (version, data) values (?, ?)', [parsed.groups.semver, data]);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
} else {
|
||||
console.log('main', file);
|
||||
try {
|
||||
await sql.execute('replace into documentation (version, data) values (?, ?)', ['main', data]);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,12 @@
|
||||
import { createTsupConfig } from '../../tsup.config.js';
|
||||
|
||||
export default createTsupConfig({
|
||||
minify: 'terser',
|
||||
});
|
||||
export default [
|
||||
createTsupConfig({
|
||||
minify: 'terser',
|
||||
}),
|
||||
createTsupConfig({
|
||||
entry: ['src/populateDevDatabaseBranch.ts'],
|
||||
format: 'esm',
|
||||
minify: 'terser',
|
||||
}),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user