diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index d5f208a81..5f7e23ef9 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -34,7 +34,7 @@ When testing local changes, you may notice you need to manually recompile TypeSc To avoid this you can use the `--watch` parameter in the package build script to automatically recompile the project when changes are detected. -For example, to automatically recompile the `@discordjs/rest` project when changes are detected, run `yarn turbo run build --filter=@discordjs/rest -- --watch` in the root folder of where you cloned the discord.js repo. +For example, to automatically recompile the `@discordjs/rest` project when changes are detected, run `yarn turbo run build --filter=@discordjs/rest --concurrency=3 -- --watch` in the root folder of where you cloned the discord.js repo. ## Adding new packages diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 773ee0464..96e04ad7d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,35 +29,35 @@ jobs: - name: Build dependencies (PR) if: ${{ github.event_name != 'push' }} - run: yarn build --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" + run: yarn turbo build --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}] --concurrency=3" - name: Build dependencies (Push) if: ${{ github.event_name == 'push' }} - run: yarn build --filter="...[HEAD^1]" + run: yarn turbo build --filter="...[HEAD^1] --concurrency=3" - name: ESLint (PR) if: ${{ github.event_name != 'push' }} - run: yarn lint --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" -- --format=compact + run: yarn turbo lint --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" --concurrency=3 -- --format=compact - name: ESLint (Push) if: ${{ github.event_name == 'push' }} - run: yarn lint --filter="...[HEAD^1]" -- --format=compact + run: yarn turbo lint --filter="...[HEAD^1]" --concurrency=3 -- --format=compact - name: Tests (PR) if: ${{ github.event_name != 'push' }} - run: yarn test --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" + run: yarn turbo test --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" --concurrency=3 - name: Tests (Push) if: ${{ github.event_name == 'push' }} - run: yarn test --filter="...[HEAD^1]" + run: yarn turbo test --filter="...[HEAD^1]" --concurrency=3 - name: Docs (PR) if: ${{ github.event_name != 'push' }} - run: yarn docs --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" + run: yarn turbo docs --filter="...[origin/${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || 'main' }}]" --concurrency=3 - name: Docs (Push) if: ${{ github.event_name == 'push' }} - run: yarn docs --filter="...[HEAD^1]" + run: yarn turbo docs --filter="...[HEAD^1]" --concurrency=3 - name: Upload Coverage if: github.repository_owner == 'discordjs' diff --git a/.gitignore b/.gitignore index f0fc81d3c..ddc3699ac 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,8 @@ tsconfig.tsbuildinfo coverage out package.tgz +tsup.config.bundled* +vitest.config.ts.timestamp* # Deno deno.lock diff --git a/.prettierignore b/.prettierignore index bd3f52445..452dc1d03 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,4 @@ CODEOWNERS CHANGELOG.md +tsup.config.bundled* +vitest.config.ts.timestamp* diff --git a/apps/guide/package.json b/apps/guide/package.json index 39842fa50..e504537a9 100644 --- a/apps/guide/package.json +++ b/apps/guide/package.json @@ -17,6 +17,7 @@ "dev:next": "next dev", "dev:css": "yarn generate:css --watch", "generate:css": "unocss 'src/**/*.tsx' 'contentlayer.config.ts' '../../packages/ui/src/lib/components/**/*.tsx' --out-file ./src/styles/unocss.css --config ../../unocss.config.ts", + "generate:contentlayer": "contentlayer build", "lint": "prettier --check . && cross-env TIMING=1 eslint --format=pretty src", "format": "prettier --write . && cross-env TIMING=1 eslint --fix --format=pretty src", "fmt": "yarn format" diff --git a/apps/website/package.json b/apps/website/package.json index 0d6d65741..fda60f435 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -13,7 +13,7 @@ "build:next": "next build", "build:css": "yarn generate:css", "build:search_indices": "yarn node scripts/generateAllIndices.js", - "build:analyze": "turbo run docs && cross-env ANALYZE=true NEXT_PUBLIC_LOCAL_DEV=true yarn build:prod", + "build:analyze": "turbo run docs --concurrency=3 && cross-env ANALYZE=true NEXT_PUBLIC_LOCAL_DEV=true yarn build:prod", "preview": "next start", "dev": "concurrently 'yarn dev:css' 'yarn dev:next'", "dev:next": "next dev", diff --git a/package.json b/package.json index c4e196293..49e2b3db3 100644 --- a/package.json +++ b/package.json @@ -5,20 +5,20 @@ "description": "A powerful library for interacting with the Discord API", "private": true, "scripts": { - "build": "turbo run build", - "build:affected": "turbo run build --filter='...[origin/main]'", - "build:apps": "turbo run build:local --filter='...{apps/*}'", - "build:apps:affected": "turbo run build:local --filter='...{apps/*}[origin/main]'", - "test": "turbo run test", - "test:affected": "turbo run test --filter='...[origin/main]'", - "lint": "turbo run lint", - "lint:affected": "turbo run lint --filter='...[origin/main]'", - "format": "turbo run format", - "format:affected": "turbo run format --filter='...[origin/main]'", - "fmt": "turbo run format", - "fmt:affected": "turbo run format --filter='...[origin/main]'", - "docs": "turbo run docs", - "docs:affected": "turbo run docs --filter='...[origin/main]'", + "build": "turbo run build --concurrency=3", + "build:affected": "turbo run build --filter='...[origin/main]' --concurrency=3", + "build:apps": "turbo run build:local --filter='...{apps/*}' --concurrency=3", + "build:apps:affected": "turbo run build:local --filter='...{apps/*}[origin/main]' --concurrency=3", + "test": "turbo run test --concurrency=3", + "test:affected": "turbo run test --filter='...[origin/main]' --concurrency=3", + "lint": "turbo run lint --concurrency=3", + "lint:affected": "turbo run lint --filter='...[origin/main]' --concurrency=3", + "format": "turbo run format --concurrency=3", + "format:affected": "turbo run format --filter='...[origin/main]' --concurrency=3", + "fmt": "turbo run format --concurrency=3", + "fmt:affected": "turbo run format --filter='...[origin/main]' --concurrency=3", + "docs": "turbo run docs --concurrency=3", + "docs:affected": "turbo run docs --filter='...[origin/main]' --concurrency=3", "postinstall": "is-ci || husky install", "update": "yarn upgrade-interactive", "create-package": "turbo gen create-package" diff --git a/packages/actions/.prettierignore b/packages/actions/.prettierignore index 76348206a..2b614981a 100644 --- a/packages/actions/.prettierignore +++ b/packages/actions/.prettierignore @@ -1,3 +1,4 @@ .turbo coverage dist +tsup.config.bundled* diff --git a/packages/actions/src/yarnCache/action.yml b/packages/actions/src/yarnCache/action.yml index dd0a4235d..22e90c227 100644 --- a/packages/actions/src/yarnCache/action.yml +++ b/packages/actions/src/yarnCache/action.yml @@ -3,6 +3,12 @@ description: 'Run yarn install with node_modules linker and cache enabled' runs: using: 'composite' steps: + - name: Set up swap space + if: runner.os == 'Linux' + uses: pierotofy/set-swap-space@v1.0 + with: + swap-size-gb: 10 + - name: Expose yarn config as "$GITHUB_OUTPUT" id: yarn-config shell: bash diff --git a/packages/api-extractor-utils/.prettierignore b/packages/api-extractor-utils/.prettierignore index 76348206a..2b614981a 100644 --- a/packages/api-extractor-utils/.prettierignore +++ b/packages/api-extractor-utils/.prettierignore @@ -1,3 +1,4 @@ .turbo coverage dist +tsup.config.bundled* diff --git a/packages/brokers/.prettierignore b/packages/brokers/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/brokers/.prettierignore +++ b/packages/brokers/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/builders/.prettierignore b/packages/builders/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/builders/.prettierignore +++ b/packages/builders/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/collection/.prettierignore b/packages/collection/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/collection/.prettierignore +++ b/packages/collection/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/core/.prettierignore b/packages/core/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/core/.prettierignore +++ b/packages/core/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/create-discord-bot/.prettierignore b/packages/create-discord-bot/.prettierignore index 553e0ea6c..64ec1db66 100644 --- a/packages/create-discord-bot/.prettierignore +++ b/packages/create-discord-bot/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.bundled* diff --git a/packages/docgen/.prettierignore b/packages/docgen/.prettierignore index 49a97d4c8..057a249c2 100644 --- a/packages/docgen/.prettierignore +++ b/packages/docgen/.prettierignore @@ -1,3 +1,4 @@ .turbo dist coverage +tsup.config.bundled* diff --git a/packages/formatters/.prettierignore b/packages/formatters/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/formatters/.prettierignore +++ b/packages/formatters/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/next/.prettierignore b/packages/next/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/next/.prettierignore +++ b/packages/next/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/proxy-container/.prettierignore b/packages/proxy-container/.prettierignore index eea99aa9b..8bd1f8fff 100644 --- a/packages/proxy-container/.prettierignore +++ b/packages/proxy-container/.prettierignore @@ -1,2 +1,3 @@ .turbo dist +tsup.config.bundled* diff --git a/packages/proxy/.prettierignore b/packages/proxy/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/proxy/.prettierignore +++ b/packages/proxy/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/rest/.prettierignore b/packages/rest/.prettierignore index fc03103c7..7929390f5 100644 --- a/packages/rest/.prettierignore +++ b/packages/rest/.prettierignore @@ -4,3 +4,5 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* +vitest.config.ts.timestamp* diff --git a/packages/scripts/.prettierignore b/packages/scripts/.prettierignore index 76348206a..e7eea33f0 100644 --- a/packages/scripts/.prettierignore +++ b/packages/scripts/.prettierignore @@ -1,3 +1,5 @@ .turbo coverage dist +turbo +tsup.config.bundled* diff --git a/packages/scripts/turbo/generators/templates/.prettierignore.hbs b/packages/scripts/turbo/generators/templates/.prettierignore.hbs index 0a33766f4..a39c429aa 100644 --- a/packages/scripts/turbo/generators/templates/.prettierignore.hbs +++ b/packages/scripts/turbo/generators/templates/.prettierignore.hbs @@ -1 +1 @@ -.turbo coverage dist dist-docs docs/docs.api.json CHANGELOG.md \ No newline at end of file +.turbo coverage dist dist-docs docs/docs.api.json CHANGELOG.md tsup.config.bundled* diff --git a/packages/ui/.prettierignore b/packages/ui/.prettierignore index b6d224904..561f0c10a 100644 --- a/packages/ui/.prettierignore +++ b/packages/ui/.prettierignore @@ -2,3 +2,5 @@ coverage dist storybook-static +tsup.config.bundled* +vite.config.ts.timestamp* diff --git a/packages/util/.prettierignore b/packages/util/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/util/.prettierignore +++ b/packages/util/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/voice/.prettierignore b/packages/voice/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/voice/.prettierignore +++ b/packages/voice/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/packages/ws/.prettierignore b/packages/ws/.prettierignore index fc03103c7..9aef7953d 100644 --- a/packages/ws/.prettierignore +++ b/packages/ws/.prettierignore @@ -4,3 +4,4 @@ dist dist-docs docs/docs.api.json CHANGELOG.md +tsup.config.bundled* diff --git a/turbo.json b/turbo.json index b75b5cc44..5b529575d 100644 --- a/turbo.json +++ b/turbo.json @@ -24,18 +24,11 @@ "build": { "dependsOn": ["^build"], "inputs": [ - ".cliff-jumperrc.json", - ".lintstagedrc.js", - ".prettierrc.js", - "api-extractor-docs.json", - "api-extractor.json", - "cliff.toml", "src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.mjs", "src/**/*.cjs", - "LICENSE", "package.json", "tsconfig.docs.json", "tsconfig.eslint.json", @@ -47,15 +40,12 @@ "@discordjs/scripts#build": { "dependsOn": ["^build"], "inputs": [ - ".lintstagedrc.js", - ".prettierrc.js", "src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.mjs", "src/**/*.cjs", "src/template/**/*", - "LICENSE", "package.json", "tsconfig.eslint.json", "tsconfig.json" @@ -67,18 +57,11 @@ "dependsOn": ["^build"], "inputs": [ ".storybook/**/*", - ".cliff-jumperrc.json", - ".lintstagedrc.js", - ".prettierrc.js", - "api-extractor-docs.json", - "api-extractor.json", - "cliff.toml", "src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.mjs", "src/**/*.cjs", - "LICENSE", "package.json", "tsconfig.eslint.json", "tsconfig.json", @@ -91,18 +74,11 @@ "dependsOn": ["^build"], "inputs": [ ".storybook/**/*", - ".cliff-jumperrc.json", - ".lintstagedrc.js", - ".prettierrc.js", - "api-extractor-docs.json", - "api-extractor.json", - "cliff.toml", "src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.mjs", "src/**/*.cjs", - "LICENSE", "package.json", "tsconfig.eslint.json", "tsconfig.json", @@ -136,7 +112,6 @@ "@discordjs/guide#build:prod": { "dependsOn": ["^build"], "env": ["METADATA_BASE_URL"], - "dotEnv": [".env.development", ".env.development.local", ".env.local"], "inputs": [ "public/**/*", "src/**/*.tsx", @@ -183,7 +158,6 @@ "@discordjs/website#build:prod": { "dependsOn": ["^build", "docs"], "env": ["NEXT_PUBLIC_LOCAL_DEV", "METADATA_BASE_URL", "DATABASE_URL", "EDGE_CONFIG"], - "dotEnv": [".env.development", ".env.development.local", ".env.local"], "inputs": [ "public/**/*", "src/**/*.tsx", @@ -202,6 +176,11 @@ "outputs": [".next/**/*"], "outputMode": "full" }, + "@discordjs/guide#generate:contentlayer": { + "inputs": ["src/**/*.mdx"], + "outputs": [".contentlayer/**/*"], + "outputMode": "errors-only" + }, "test": { "dependsOn": ["^build"], "inputs": [ @@ -260,8 +239,8 @@ "../../.prettierignore", "../../.prettierrc.json", "../../tsconfig.eslint.json", - "prettierignore", - "prettierrc.js", + ".prettierignore", + ".prettierrc.js", "src/**/*.ts", "src/**/*.tsx", "src/**/*.js", @@ -279,6 +258,33 @@ "outputs": [], "outputMode": "errors-only" }, + "@discordjs/guide#lint": { + "dependsOn": ["^build", "generate:contentlayer"], + "env": ["METADATA_BASE_URL"], + "inputs": [ + "../../eslint.config.js", + "../../.prettierignore", + "../../.prettierrc.json", + "../../tsconfig.eslint.json", + ".prettierignore", + ".prettierrc.js", + "public/**/*", + "src/**/*.tsx", + "src/**/*.ts", + "src/**/*.css", + "!src/styles/unocss.css", + "src/**/*.json", + "src/**/*.mdx", + "src/assets/**/*", + "contentlayer.config.ts", + "next.config.js", + "package.json", + "tsconfig.eslint.json", + "tsconfig.json" + ], + "outputs": [], + "outputMode": "errors-only" + }, "format": { "dependsOn": ["^build"], "inputs": [ @@ -286,8 +292,8 @@ "../../.prettierignore", "../../.prettierrc.json", "../../tsconfig.eslint.json", - "prettierignore", - "prettierrc.js", + ".prettierignore", + ".prettierrc.js", "src/**/*.ts", "src/**/*.tsx", "src/**/*.js", @@ -305,6 +311,33 @@ "outputs": [], "outputMode": "errors-only" }, + "@discordjs/guide#format": { + "dependsOn": ["^build", "generate:contentlayer"], + "env": ["METADATA_BASE_URL"], + "inputs": [ + "../../eslint.config.js", + "../../.prettierignore", + "../../.prettierrc.json", + "../../tsconfig.eslint.json", + ".prettierignore", + ".prettierrc.js", + "public/**/*", + "src/**/*.tsx", + "src/**/*.ts", + "src/**/*.css", + "!src/styles/unocss.css", + "src/**/*.json", + "src/**/*.mdx", + "src/assets/**/*", + "contentlayer.config.ts", + "next.config.js", + "package.json", + "tsconfig.eslint.json", + "tsconfig.json" + ], + "outputs": [], + "outputMode": "errors-only" + }, "docs": { "dependsOn": ["^build"], "inputs": [