Make typescript happy, tsc test run in CI

This commit is contained in:
Vendicated 2022-10-09 22:58:08 +02:00
parent 5610df8b37
commit a89e17a390
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
11 changed files with 45 additions and 36 deletions

View file

@ -24,4 +24,4 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Lint & Test if it compiles
run: pnpm lint && pnpm build
run: pnpm test

View file

@ -1,28 +1,30 @@
{
"scripts": {
"build": "node build.mjs",
"buildWeb": "node buildWeb.mjs",
"inject": "node scripts/patcher/install.js",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "pnpm lint --fix",
"test": "pnpm lint && pnpm build && pnpm testTsc",
"testTsc": "tsc --noEmit",
"uninject": "node scripts/patcher/uninstall.js",
"watch": "node build.mjs --watch"
},
"dependencies": {
"console-menu": "^0.1.0",
"electron-devtools-installer": "^3.2.0"
},
"devDependencies": {
"@types/node": "^18.7.13",
"@types/react": "^18.0.17",
"@types/yazl": "^2.4.2",
"@typescript-eslint/parser": "^5.39.0",
"discord-types": "^1.3.26",
"electron": "^20.1.0",
"esbuild": "^0.15.5",
"eslint": "^8.24.0",
"typescript": "^4.8.4",
"yazl": "^2.5.1"
},
"dependencies": {
"console-menu": "^0.1.0",
"discord-types": "^1.3.26",
"electron-devtools-installer": "^3.2.0"
},
"scripts": {
"buildWeb": "node buildWeb.mjs",
"build": "node build.mjs",
"watch": "node build.mjs --watch",
"inject": "node scripts/patcher/install.js",
"uninject": "node scripts/patcher/uninstall.js",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "pnpm lint --fix"
},
"packageManager": "pnpm@7.12.2"
}

View file

@ -22,7 +22,7 @@ Object.defineProperty(window, "IS_WEB", {
enumerable: true
});
export let Components;
export let Components: any;
async function init() {
await onceReady;

View file

@ -67,7 +67,7 @@ type ClickListener = (message: Message, channel: Channel, event: MouseEvent) =>
const listeners = new Set<ClickListener>();
export function _handleClick(message, channel, event) {
export function _handleClick(message: Message, channel: Channel, event: MouseEvent) {
for (const listener of listeners) {
try {
listener(message, channel, event);

View file

@ -127,7 +127,7 @@ export default ErrorBoundary.wrap(function Settings() {
disabled={p.required || dependency}
key={p.name}
value={settings.plugins[p.name].enabled || p.required || dependency}
onChange={v => {
onChange={(v: boolean) => {
settings.plugins[p.name].enabled = v;
let needsRestart = Boolean(p.patches?.length);
if (v) {

2
src/globals.d.ts vendored
View file

@ -12,7 +12,7 @@ declare global {
push(chunk: any): any;
pop(): any;
};
[k: PropertyKey]: any;
[k: string]: any;
}
}

View file

@ -16,7 +16,7 @@ export default definePlugin({
},
],
rand(file) {
rand(file: string) {
const chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
const rand = Array.from(

View file

@ -1,5 +1,5 @@
export class ChangeList<T>{
private set = new Set<T>;
private set = new Set<T>();
public get changeCount() {
return this.set.size;

View file

@ -28,7 +28,7 @@ export function lazyWebpack<T = any>(filter: FilterFn): T {
construct: (_, args, newTarget) => Reflect.construct(getMod(), args, newTarget),
deleteProperty: (_, prop) => delete getMod()[prop],
defineProperty: (_, property, attributes) => !!Object.defineProperty(getMod(), property, attributes)
}) as T;
}) as any as T;
}
/**

View file

@ -12,7 +12,8 @@ export async function toggle(isEnabled: boolean) {
VencordNative.ipc.on(IpcEvents.QUICK_CSS_UPDATE, (_, css: string) => style.innerText = css);
style.innerText = await VencordNative.ipc.invoke(IpcEvents.GET_QUICK_CSS);
}
} else style.disabled = !isEnabled;
} else // @ts-ignore yes typescript, property 'disabled' does exist on type 'HTMLStyleElement' u should try reading the docs some time
style.disabled = !isEnabled;
}
document.addEventListener("DOMContentLoaded", () => {

View file

@ -2,7 +2,13 @@
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"lib": ["DOM", "esnext", "esnext.array", "esnext.asynciterable", "esnext.symbol"],
"lib": [
"DOM",
"esnext",
"esnext.array",
"esnext.asynciterable",
"esnext.symbol"
],
"module": "commonjs",
"moduleResolution": "node",
"strict": true,