fix: upgrade typescript

This commit is contained in:
Jannis Mattheis 2025-08-03 12:28:56 +02:00
parent 7a5b699b30
commit ca2d087569
13 changed files with 35 additions and 24 deletions

View File

@ -66,7 +66,7 @@
"puppeteer": "^17.1.3",
"rimraf": "^3.0.2",
"tree-kill": "^1.2.0",
"typescript": "4.0.2",
"typescript": "^5.9.2",
"wait-on": "^5.3.0"
},
"eslintConfig": {

View File

@ -89,7 +89,10 @@ export default class AddDialog extends Component<IProps, IState> {
);
}
private handleChange(propertyName: string, event: React.ChangeEvent<HTMLInputElement>) {
private handleChange(
propertyName: 'description' | 'name',
event: React.ChangeEvent<HTMLInputElement>
) {
const state = this.state;
state[propertyName] = event.target.value;
this.setState(state);

View File

@ -101,7 +101,10 @@ export default class UpdateDialog extends Component<IProps, IState> {
);
}
private handleChange(propertyName: string, event: React.ChangeEvent<HTMLInputElement>) {
private handleChange(
propertyName: 'name' | 'description',
event: React.ChangeEvent<HTMLInputElement>
) {
const state = this.state;
state[propertyName] = event.target.value;
this.setState(state);

View File

@ -63,7 +63,7 @@ export default class AddDialog extends Component<IProps, {name: string}> {
);
}
private handleChange(propertyName: string, event: React.ChangeEvent<HTMLInputElement>) {
private handleChange(propertyName: 'name', event: React.ChangeEvent<HTMLInputElement>) {
const state = this.state;
state[propertyName] = event.target.value;
this.setState(state);

View File

@ -78,8 +78,8 @@ export default class UpdateDialog extends Component<IProps, IState> {
);
}
private handleChange(propertyName: string, event: React.ChangeEvent<HTMLInputElement>) {
const state = {};
private handleChange(propertyName: 'name', event: React.ChangeEvent<HTMLInputElement>) {
const state = this.state;
state[propertyName] = event.target.value;
this.setState(state);
}

View File

@ -136,15 +136,17 @@ export class MessagesStore {
}
};
private getUnCached = (appId: number): Array<IMessage & {image: string | null}> => {
const appToImage = this.appStore
private getUnCached = (appId: number): Array<IMessage> => {
const appToImage: Partial<Record<string, string>> = this.appStore
.getItems()
.reduce((all, app) => ({...all, [app.id]: app.image}), {});
return this.stateOf(appId, false).messages.map((message: IMessage) => ({
...message,
image: appToImage[message.appid] || null,
}));
return this.stateOf(appId, false).messages.map(
(message: IMessage): IMessage => ({
...message,
image: appToImage[message.appid],
})
);
};
public get = createTransformer(this.getUnCached);

View File

@ -7,9 +7,7 @@ export enum RenderMode {
export const contentType = (extras?: IMessageExtras): RenderMode => {
const type = extract(extras, 'client::display', 'contentType');
const valid = Object.keys(RenderMode)
.map((k) => RenderMode[k])
.some((mode) => mode === type);
const valid = Object.values(RenderMode).includes(type);
return valid ? type : RenderMode.Plain;
};

View File

@ -172,6 +172,9 @@ describe('plugin', () => {
await inDetailPage(1, async () => {
await page.waitForSelector('.displayer a');
const hook = await page.$eval('.displayer a', (el) => el.getAttribute('href'));
if (!hook) {
throw 'href not found';
}
await axios.get(hook);
});
});

View File

@ -50,7 +50,9 @@ export const newTest = async (pluginsDir = ''): Promise<GotifyTest> => {
close: async () => {
await Promise.all([
browser.close(),
new Promise((resolve) => kill(gotifyInstance.pid!, 'SIGKILL', () => resolve())),
new Promise((resolve) =>
kill(gotifyInstance.pid!, 'SIGKILL', () => resolve(undefined))
),
]);
rimraf.sync(gotifyFile, {maxBusyTries: 8});
},

View File

@ -59,7 +59,7 @@ export const waitForExists = async (page: Page, selector: string, text: string):
export const clearField = async (element: ElementHandle | Page, selector: string) => {
const elementHandle = await element.$(selector);
if (!elementHandle) {
throw "element handle not set"
throw 'element handle not set';
}
await elementHandle.click();
await elementHandle.focus();

View File

@ -110,13 +110,13 @@ export default class AddEditDialog extends Component<IProps, IState> {
);
}
private handleChange(propertyName: string, event: ChangeEvent<HTMLInputElement>) {
private handleChange(propertyName: 'name' | 'pass', event: ChangeEvent<HTMLInputElement>) {
const state = this.state;
state[propertyName] = event.target.value;
this.setState(state);
}
private handleChecked(propertyName: string, event: ChangeEvent<HTMLInputElement>) {
private handleChecked(propertyName: 'admin', event: ChangeEvent<HTMLInputElement>) {
const state = this.state;
state[propertyName] = event.target.checked;
this.setState(state);

View File

@ -96,7 +96,7 @@ export default class RegistrationDialog extends Component<IProps, IState> {
);
}
private handleChange(propertyName: string, event: ChangeEvent<HTMLInputElement>) {
private handleChange(propertyName: keyof IState, event: ChangeEvent<HTMLInputElement>) {
const state = this.state;
state[propertyName] = event.target.value;
this.setState(state);

View File

@ -3827,10 +3827,10 @@ typeface-roboto@1.1.13:
resolved "https://registry.yarnpkg.com/typeface-roboto/-/typeface-roboto-1.1.13.tgz#9c4517cb91e311706c74823e857b4bac9a764ae5"
integrity sha512-YXvbd3a1QTREoD+FJoEkl0VQNJoEjewR2H11IjVv4bp6ahuIcw0yyw/3udC4vJkHw3T3cUh85FTg8eWef3pSaw==
typescript@4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2"
integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==
typescript@^5.9.2:
version "5.9.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
ua-parser-js@^0.7.30:
version "0.7.31"