diff --git a/packages/brokers/package.json b/packages/brokers/package.json index 78040eedf..8132b8baa 100644 --- a/packages/brokers/package.json +++ b/packages/brokers/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "fmt": "yarn format", diff --git a/packages/brokers/tsconfig.docs.json b/packages/brokers/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/brokers/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/builders/package.json b/packages/builders/package.json index c0bbe7c3b..75cc6bbc8 100644 --- a/packages/builders/package.json +++ b/packages/builders/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\" && yarn downlevel-dts ./dist-docs ./dist-docs", + "build:docs": "tsc -p tsconfig.docs.json && yarn downlevel-dts ./dist-docs ./dist-docs", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "fmt": "yarn format", diff --git a/packages/builders/tsconfig.docs.json b/packages/builders/tsconfig.docs.json new file mode 100644 index 000000000..4613ccafd --- /dev/null +++ b/packages/builders/tsconfig.docs.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs", + "exactOptionalPropertyTypes": false + } +} diff --git a/packages/collection/package.json b/packages/collection/package.json index d43aa54a6..500b0de51 100644 --- a/packages/collection/package.json +++ b/packages/collection/package.json @@ -5,15 +5,14 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "fmt": "yarn format", "docs": "yarn build:docs && api-extractor run --local", "prepack": "yarn lint && yarn test && yarn build", "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/collection/*'", - "release": "cliff-jumper", - "docs:declarations": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist\"" + "release": "cliff-jumper" }, "main": "./dist/index.js", "module": "./dist/index.mjs", diff --git a/packages/collection/tsconfig.docs.json b/packages/collection/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/collection/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/core/package.json b/packages/core/package.json index cf87dd143..82259ecc6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src --ext .mjs,.js,.ts --fix --format=pretty", "docs": "yarn build:docs && api-extractor run --local", diff --git a/packages/core/tsconfig.docs.json b/packages/core/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/core/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/formatters/package.json b/packages/formatters/package.json index e1163d2b1..cbcf136ed 100644 --- a/packages/formatters/package.json +++ b/packages/formatters/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "docs": "yarn build:docs && api-extractor run --local", diff --git a/packages/formatters/tsconfig.docs.json b/packages/formatters/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/formatters/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/next/package.json b/packages/next/package.json index 90f0fe17b..ff5f60617 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "docs": "yarn build:docs && api-extractor run --local", diff --git a/packages/next/tsconfig.docs.json b/packages/next/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/next/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/proxy/package.json b/packages/proxy/package.json index 0862b7c5f..b1228fd31 100644 --- a/packages/proxy/package.json +++ b/packages/proxy/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "fmt": "yarn format", diff --git a/packages/proxy/tsconfig.docs.json b/packages/proxy/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/proxy/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/rest/package.json b/packages/rest/package.json index 6df0f35ea..5f0eb4685 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "fmt": "yarn format", diff --git a/packages/rest/tsconfig.docs.json b/packages/rest/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/rest/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/scripts/src/createPackage.ts b/packages/scripts/src/createPackage.ts index 2c2599a21..85e86b9c3 100644 --- a/packages/scripts/src/createPackage.ts +++ b/packages/scripts/src/createPackage.ts @@ -4,6 +4,7 @@ import { chdir } from 'node:process'; import { copy } from 'fs-extra'; import { parse as parseYAML, stringify as stringifyYAML } from 'yaml'; import cliffJumperJSON from './template/.cliff-jumperrc.json'; +import apiExtractorJSON from './template/api-extractor.json'; import templateJSON from './template/template.package.json'; interface LabelerData { @@ -52,6 +53,15 @@ export async function createPackage(packageName: string, packageDescription?: st await writeFile('.cliff-jumperrc.json', JSON.stringify(newCliffJumperJSON, null, 2)); + // Update api-extractor.json + const newApiExtractorJSON = { ...apiExtractorJSON }; + newApiExtractorJSON.docModel.projectFolderUrl = newApiExtractorJSON.docModel.projectFolderUrl.replace( + '{name}', + packageName, + ); + + await writeFile('api-extractor.json', JSON.stringify(newApiExtractorJSON, null, 2)); + // Move to github directory chdir(join('..', '..', '.github')); diff --git a/packages/scripts/src/template/api-extractor.json b/packages/scripts/src/template/api-extractor.json new file mode 100644 index 000000000..90119488b --- /dev/null +++ b/packages/scripts/src/template/api-extractor.json @@ -0,0 +1,6 @@ +{ + "extends": "../../api-extractor.json", + "docModel": { + "projectFolderUrl": "https://github.com/discordjs/discord.js/tree/main/packages/{name}" + } +} diff --git a/packages/scripts/src/template/default/api-extractor.json b/packages/scripts/src/template/default/api-extractor.json deleted file mode 100644 index bc73f2cc0..000000000 --- a/packages/scripts/src/template/default/api-extractor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../api-extractor.json" -} diff --git a/packages/scripts/src/template/default/tsconfig.docs.json b/packages/scripts/src/template/default/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/scripts/src/template/default/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/scripts/src/template/template.package.json b/packages/scripts/src/template/template.package.json index 097daaddf..fd228a9d5 100644 --- a/packages/scripts/src/template/template.package.json +++ b/packages/scripts/src/template/template.package.json @@ -5,9 +5,10 @@ "scripts": { "test": "vitest run", "build": "tsup", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", - "docs": "api-extractor run --local", + "docs": "yarn build:docs && api-extractor run --local", "prepack": "yarn build && yarn lint", "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/{name}/*'", "release": "cliff-jumper" diff --git a/packages/util/package.json b/packages/util/package.json index 39c58f64e..ddacf3038 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -4,7 +4,7 @@ "description": "Utilities shared across Discord.js packages", "scripts": { "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "test": "vitest run && tsd", "lint": "prettier --check . && TIMING=1 eslint src --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && TIMING=1 eslint src --ext .mjs,.js,.ts --fix --format=pretty", diff --git a/packages/util/tsconfig.docs.json b/packages/util/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/util/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/voice/package.json b/packages/voice/package.json index e6b48d998..69a49e2e4 100644 --- a/packages/voice/package.json +++ b/packages/voice/package.json @@ -4,7 +4,7 @@ "description": "Implementation of the Discord Voice API for node.js", "scripts": { "build": "tsup && node scripts/postbuild.mjs", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "test": "jest --coverage", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", diff --git a/packages/voice/tsconfig.docs.json b/packages/voice/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/voice/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/packages/ws/package.json b/packages/ws/package.json index fee95aed0..e482b812e 100644 --- a/packages/ws/package.json +++ b/packages/ws/package.json @@ -5,7 +5,7 @@ "scripts": { "test": "vitest run", "build": "tsup", - "build:docs": "tsc --emitDeclarationOnly --declarationMap --skipLibCheck --outDir \"dist-docs\"", + "build:docs": "tsc -p tsconfig.docs.json", "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", "docs": "yarn build:docs && api-extractor run --local", diff --git a/packages/ws/tsconfig.docs.json b/packages/ws/tsconfig.docs.json new file mode 100644 index 000000000..80a7fe18b --- /dev/null +++ b/packages/ws/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.docs.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist-docs" + } +} diff --git a/tsconfig.docs.json b/tsconfig.docs.json new file mode 100644 index 000000000..9b4ca23c5 --- /dev/null +++ b/tsconfig.docs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "emitDeclarationOnly": true, + "skipLibCheck": true + } +} diff --git a/turbo.json b/turbo.json index 52297b788..3b19f9a97 100644 --- a/turbo.json +++ b/turbo.json @@ -130,8 +130,7 @@ "outputs": [] }, "docs": { - "dependsOn": ["^build"], - "outputs": ["../../api-extractor.json", "api-extractor.json", "docs/**", "tsconfig.json"] + "outputs": ["../../api-extractor.json", "api-extractor.json", "docs/**", "tsconfig.json", "dist-docs"] }, "changelog": { "outputs": ["cliff.toml", "CHANGELOG.md"]