testing bun migration

This commit is contained in:
creations 2025-06-04 10:21:41 -04:00
parent 608ffa0764
commit 6f558aa561
No known key found for this signature in database
GPG key ID: 8F553AA4320FC711
6 changed files with 156 additions and 5415 deletions

View file

@ -10,76 +10,58 @@ env:
GITHUB_TOKEN: ${{ secrets.ETOKEN }} GITHUB_TOKEN: ${{ secrets.ETOKEN }}
REPO: Equicord/Equibored REPO: Equicord/Equibored
USERNAME: GitHub-Actions USERNAME: GitHub-Actions
permissions: write-all permissions: write-all
jobs: jobs:
Build: Build:
name: Build Equicord name: Build Equicord
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
- uses: pnpm/action-setup@v3 with:
bun-version: latest
- name: Use Node.js 20 - name: Use Node.js 20
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 20
cache: "pnpm"
- name: Install dependencies - name: Install dependencies
run: pnpm install --no-frozen-lockfile run: bun install
- name: Build web - name: Build web
run: pnpm buildWebStandalone run: bun run buildWebStandalone
- name: Build - name: Build
run: pnpm buildStandalone run: bun run buildStandalone
- name: Generate plugin list - name: Generate plugin list
run: pnpm generatePluginJson dist/plugins.json run: bun run generatePluginJson dist/plugins.json
- name: Generate Equicord plugin list - name: Generate Equicord plugin list
run: pnpm generateEquicordPluginJson dist/equicordplugins.json run: bun run generateEquicordPluginJson dist/equicordplugins.json
- name: Collect files to be released - name: Collect files to be released
run: | run: |
cd dist cd dist
mkdir release mkdir release
cp browser/browser.* release cp browser/browser.* release
cp Vencord.user.{js,js.LEGAL.txt} release cp Vencord.user.{js,js.LEGAL.txt} release
# copy the plugin data jsons, the extension zips and the desktop/vesktop asars # copy the plugin data jsons, the extension zips and the desktop/vesktop asars
cp *.{json,zip,asar} release cp *.{json,zip,asar} release
# legacy un-asared files # legacy un-asared files
cp desktop/* release cp desktop/* release
for file in equibop/*; do for file in equibop/*; do
filename=$(basename "$file") filename=$(basename "$file")
cp "$file" "release/equibop${filename^}" cp "$file" "release/equibop${filename^}"
done done
find release -size 0 -delete find release -size 0 -delete
rm release/package.json rm release/package.json
rm release/*.map rm release/*.map
- name: Upload Equicord Stable - name: Upload Equicord Stable
if: ${{ github.ref_name == 'main' }} if: ${{ github.ref_name == 'main' }}
run: | run: |
gh release upload latest --clobber dist/release/* gh release upload latest --clobber dist/release/*
- name: Upload Plugins JSON to Equibored repo - name: Upload Plugins JSON to Equibored repo
run: | run: |
git config --global user.name "GitHub-Actions" git config --global user.name "GitHub-Actions"
git config --global user.email actions@github.com git config --global user.email actions@github.com
git clone https://$USERNAME:$GITHUB_TOKEN@github.com/$REPO.git plugins git clone https://$USERNAME:$GITHUB_TOKEN@github.com/$REPO.git plugins
cd plugins cd plugins
cp ../dist/release/*plugins.json . cp ../dist/release/*plugins.json .
git add -A git add -A
git commit -m "Plugins for https://github.com/$GITHUB_REPOSITORY/commit/$GITHUB_SHA" git commit -m "Plugins for https://github.com/$GITHUB_REPOSITORY/commit/$GITHUB_SHA"
git push --force https://$USERNAME:$GITHUB_TOKEN@github.com/$REPO.git git push --force https://$USERNAME:$GITHUB_TOKEN@github.com/$REPO.git

View file

@ -8,30 +8,24 @@ on:
branches: branches:
- main - main
- dev - dev
jobs: jobs:
Test: Test:
name: Test name: Test
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: pnpm/action-setup@v3 # Install pnpm using packageManager key in package.json - uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Use Node.js 20 - name: Use Node.js 20
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 20
cache: "pnpm"
- name: Install dependencies - name: Install dependencies
run: pnpm install --no-frozen-lockfile run: bun install
- name: Lint & Test if desktop version compiles - name: Lint & Test if desktop version compiles
run: pnpm test run: bun run test
- name: Test if web version compiles - name: Test if web version compiles
run: pnpm buildWeb run: bun run buildWeb
- name: Test if plugin structure is valid - name: Test if plugin structure is valid
run: pnpm generatePluginJson run: bun run generatePluginJson

105
.vscode/tasks.json vendored
View file

@ -1,63 +1,44 @@
{ {
// See https://go.microsoft.com/fwlink/?LinkId=733558 // See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format // for the documentation about the tasks.json format
"version": "2.0.0", "version": "2.0.0",
"tasks": [ "tasks": [
{ {
"label": "Build", "label": "Build",
"type": "shell", "type": "shell",
"command": "pnpm build", "command": "bun run build",
"group": { "group": {
"kind": "build", "kind": "build",
"isDefault": true "isDefault": true
} }
}, },
{ {
// for use with the vencord companion extension // for use with the vencord companion extension
"label": "Build Companion Reporter", "label": "Build Companion Reporter",
"type": "shell", "type": "shell",
"command": "pnpm build --dev --reporter --companion-test", "command": "bun run build --dev --reporter --companion-test",
"presentation": { "presentation": {
"echo": true, "echo": true,
"reveal": "silent", "reveal": "silent",
"panel": "shared", "panel": "shared",
"showReuseMessage": true, "showReuseMessage": true,
"clear": true "clear": true
} }
}, },
{ {
"label": "Build Dev", "label": "Build Dev",
"type": "shell", "type": "shell",
"command": "pnpm build --dev", "command": "bun run build --dev",
"group": "build" "group": "build"
}, },
{ {
// for use with the vencord companion extension "label": "Watch",
"label": "Build Companion Reporter", "type": "shell",
"type": "shell", "command": "bun run watch",
"command": "pnpm build --dev --reporter --companion-test", "problemMatcher": [],
"presentation": { "group": {
"echo": true, "kind": "build"
"reveal": "silent", }
"panel": "shared", }
"showReuseMessage": true, ]
"clear": true }
}
},
{
"label": "Build Dev",
"type": "shell",
"command": "pnpm build --dev",
"group": "build"
},
{
"label": "Watch",
"type": "shell",
"command": "pnpm watch",
"problemMatcher": [],
"group": {
"kind": "build"
}
}
]
}

View file

@ -1,122 +1,100 @@
{ {
"name": "equicord", "name": "equicord",
"private": "true", "private": "true",
"version": "1.12.2", "version": "1.12.2",
"description": "The other cutest Discord client mod", "description": "The other cutest Discord client mod",
"homepage": "https://github.com/Equicord/Equicord#readme", "homepage": "https://github.com/Equicord/Equicord#readme",
"bugs": { "bugs": {
"url": "https://github.com/Equicord/Equicord/issues" "url": "https://github.com/Equicord/Equicord/issues"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/Equicord/Equicord.git" "url": "git+https://github.com/Equicord/Equicord.git"
}, },
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"author": "Equicord", "author": "Equicord",
"scripts": { "scripts": {
"build": "node --require=./scripts/suppressExperimentalWarnings.js scripts/build/build.mjs", "build": "bun run scripts/build/build.mjs",
"buildStandalone": "pnpm build --standalone", "buildStandalone": "bun run build --standalone",
"buildWeb": "node --require=./scripts/suppressExperimentalWarnings.js scripts/build/buildWeb.mjs", "buildWeb": "bun run scripts/build/buildWeb.mjs",
"buildWebStandalone": "pnpm buildWeb --standalone", "buildWebStandalone": "bun run buildWeb --standalone",
"buildReporter": "pnpm buildWebStandalone --reporter --skip-extension", "buildReporter": "bun run buildWebStandalone --reporter --skip-extension",
"buildReporterDesktop": "pnpm build --reporter", "buildReporterDesktop": "bun run build --reporter",
"watch": "pnpm build --watch", "watch": "bun run build --watch",
"dev": "pnpm watch", "dev": "bun run watch",
"watchWeb": "pnpm buildWeb --watch", "watchWeb": "bun run buildWeb --watch",
"generatePluginJson": "tsx scripts/generatePluginList.ts", "generatePluginJson": "bun run scripts/generatePluginList.ts",
"generateEquicordPluginJson": "tsx scripts/generateEquicordPluginList.ts", "generateEquicordPluginJson": "bun run scripts/generateEquicordPluginList.ts",
"generateTypes": "tspc --emitDeclarationOnly --declaration --outDir packages/vencord-types --allowJs false", "generateTypes": "tspc --emitDeclarationOnly --declaration --outDir packages/vencord-types --allowJs false",
"inject": "node scripts/runInstaller.mjs -- --install", "inject": "bun run scripts/runInstaller.mjs --install",
"uninject": "node scripts/runInstaller.mjs -- --uninstall", "uninject": "bun run scripts/runInstaller.mjs --uninstall",
"lint": "eslint", "lint": "eslint",
"lint-styles": "stylelint \"src/**/*.css\" --ignore-pattern src/userplugins", "lint-styles": "stylelint \"src/**/*.css\" --ignore-pattern src/userplugins",
"lint:fix": "pnpm lint --fix", "lint:fix": "bun run lint --fix",
"test": "pnpm buildStandalone && pnpm testTsc && pnpm lint:fix && pnpm lint-styles && pnpm generatePluginJson", "test": "bun run buildStandalone && bun run testTsc && bun run lint:fix && bun run lint-styles && bun run generatePluginJson",
"testWeb": "pnpm lint && pnpm buildWeb && pnpm testTsc", "testWeb": "bun run lint && bun run buildWeb && bun run testTsc",
"testTsc": "tsc --noEmit" "testTsc": "tsc --noEmit"
}, },
"dependencies": { "dependencies": {
"@ffmpeg/ffmpeg": "^0.12.10", "@ffmpeg/ffmpeg": "^0.12.10",
"@ffmpeg/util": "^0.12.1", "@ffmpeg/util": "^0.12.1",
"@intrnl/xxhash64": "^0.1.2", "@intrnl/xxhash64": "^0.1.2",
"@sapphi-red/web-noise-suppressor": "0.3.5", "@sapphi-red/web-noise-suppressor": "0.3.5",
"@types/less": "^3.0.6", "@types/less": "^3.0.6",
"@types/stylus": "^0.48.42", "@types/stylus": "^0.48.42",
"@types/tinycolor2": "^1.4.6", "@types/tinycolor2": "^1.4.6",
"@vap/core": "0.0.12", "@vap/core": "0.0.12",
"@vap/shiki": "0.10.5", "@vap/shiki": "0.10.5",
"fflate": "^0.8.2", "fflate": "^0.8.2",
"gifenc": "github:mattdesl/gifenc#64842fca317b112a8590f8fef2bf3825da8f6fe3", "gifenc": "github:mattdesl/gifenc#64842fca317b112a8590f8fef2bf3825da8f6fe3",
"jsqr": "1.4.0", "jsqr": "1.4.0",
"idb": "8.0.0", "idb": "8.0.0",
"monaco-editor": "^0.52.2", "monaco-editor": "^0.52.2",
"nanoid": "^5.1.5", "nanoid": "^5.1.5",
"socket.io": "^4.8.1", "socket.io": "^4.8.1",
"usercss-meta": "^0.12.0", "usercss-meta": "^0.12.0",
"openai": "^4.30.0", "openai": "^4.30.0",
"virtual-merge": "^1.0.1" "virtual-merge": "^1.0.1"
}, },
"devDependencies": { "devDependencies": {
"@stylistic/eslint-plugin": "^4.2.0", "@electron/asar": "^3.2.10",
"@electron/asar": "^3.2.10", "@stylistic/eslint-plugin": "^4.2.0",
"@types/chrome": "^0.0.312", "@types/chrome": "^0.0.312",
"@types/diff": "^7.0.2", "@types/diff": "^7.0.2",
"@types/lodash": "^4.17.14", "@types/lodash": "^4.17.14",
"@types/node": "^22.13.13", "@types/node": "^22.13.13",
"@types/react": "^19.0.10", "@types/react": "^19.0.10",
"@types/react-dom": "^19.0.4", "@types/react-dom": "^19.0.4",
"@types/yazl": "^2.4.5", "@types/yazl": "^2.4.5",
"diff": "^7.0.0", "diff": "^7.0.0",
"discord-types": "^1.3.26", "discord-types": "^1.3.26",
"esbuild": "^0.25.1", "esbuild": "^0.25.1",
"eslint": "9.20.1", "eslint": "9.20.1",
"eslint-import-resolver-alias": "^1.1.2", "eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-react": "^7.37.3", "eslint-plugin-react": "^7.37.3",
"eslint-plugin-simple-header": "^1.2.1", "eslint-plugin-simple-header": "^1.2.1",
"eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-unused-imports": "^4.1.4", "eslint-plugin-unused-imports": "^4.1.4",
"highlight.js": "11.11.1", "highlight.js": "11.11.1",
"html-minifier-terser": "^7.2.0", "html-minifier-terser": "^7.2.0",
"moment": "^2.22.2", "moment": "^2.22.2",
"puppeteer-core": "^24.4.0", "puppeteer-core": "^24.4.0",
"standalone-electron-types": "^34.2.0", "standalone-electron-types": "^34.2.0",
"stylelint": "^16.17.0", "stylelint": "^16.17.0",
"stylelint-config-standard": "^37.0.0", "stylelint-config-standard": "^37.0.0",
"ts-patch": "^3.3.0", "ts-patch": "^3.3.0",
"ts-pattern": "^5.6.0", "ts-pattern": "^5.6.0",
"tsx": "^4.19.3", "type-fest": "^4.41.0",
"type-fest": "^4.38.0", "typescript": "^5.8.2",
"typed-emitter": "^2.1.0", "typescript-eslint": "^8.28.0",
"typescript": "^5.8.2", "typescript-transform-paths": "^3.5.5",
"typescript-eslint": "^8.28.0", "zip-local": "^0.3.5",
"typescript-transform-paths": "^3.5.5", "zustand": "^3.7.2"
"zip-local": "^0.3.5", },
"zustand": "^3.7.2" "packageManager": "bun@1.1.0",
}, "trustedDependencies": ["esbuild"],
"packageManager": "pnpm@10.4.1", "engines": {
"pnpm": { "node": ">=18",
"patchedDependencies": { "bun": ">=1.0.0"
"eslint@9.20.1": "patches/eslint@9.20.1.patch", }
"@types/less@3.0.6": "patches/@types__less@3.0.6.patch"
},
"peerDependencyRules": {
"ignoreMissing": [
"eslint-plugin-import",
"eslint"
]
},
"allowedDeprecatedVersions": {
"source-map-resolve": "*",
"resolve-url": "*",
"source-map-url": "*",
"urix": "*",
"q": "*"
},
"onlyBuiltDependencies": [
"esbuild"
]
},
"engines": {
"node": ">=18"
}
} }

5192
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -1,2 +0,0 @@
packages:
- packages/*