fix: upgrade typescript
This commit is contained in:
parent
7a5b699b30
commit
ca2d087569
|
|
@ -66,7 +66,7 @@
|
||||||
"puppeteer": "^17.1.3",
|
"puppeteer": "^17.1.3",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"tree-kill": "^1.2.0",
|
"tree-kill": "^1.2.0",
|
||||||
"typescript": "4.0.2",
|
"typescript": "^5.9.2",
|
||||||
"wait-on": "^5.3.0"
|
"wait-on": "^5.3.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
const state = this.state;
|
||||||
state[propertyName] = event.target.value;
|
state[propertyName] = event.target.value;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
const state = this.state;
|
||||||
state[propertyName] = event.target.value;
|
state[propertyName] = event.target.value;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
const state = this.state;
|
||||||
state[propertyName] = event.target.value;
|
state[propertyName] = event.target.value;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,8 @@ export default class UpdateDialog extends Component<IProps, IState> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleChange(propertyName: string, event: React.ChangeEvent<HTMLInputElement>) {
|
private handleChange(propertyName: 'name', event: React.ChangeEvent<HTMLInputElement>) {
|
||||||
const state = {};
|
const state = this.state;
|
||||||
state[propertyName] = event.target.value;
|
state[propertyName] = event.target.value;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,15 +136,17 @@ export class MessagesStore {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private getUnCached = (appId: number): Array<IMessage & {image: string | null}> => {
|
private getUnCached = (appId: number): Array<IMessage> => {
|
||||||
const appToImage = this.appStore
|
const appToImage: Partial<Record<string, string>> = this.appStore
|
||||||
.getItems()
|
.getItems()
|
||||||
.reduce((all, app) => ({...all, [app.id]: app.image}), {});
|
.reduce((all, app) => ({...all, [app.id]: app.image}), {});
|
||||||
|
|
||||||
return this.stateOf(appId, false).messages.map((message: IMessage) => ({
|
return this.stateOf(appId, false).messages.map(
|
||||||
...message,
|
(message: IMessage): IMessage => ({
|
||||||
image: appToImage[message.appid] || null,
|
...message,
|
||||||
}));
|
image: appToImage[message.appid],
|
||||||
|
})
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
public get = createTransformer(this.getUnCached);
|
public get = createTransformer(this.getUnCached);
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,7 @@ export enum RenderMode {
|
||||||
|
|
||||||
export const contentType = (extras?: IMessageExtras): RenderMode => {
|
export const contentType = (extras?: IMessageExtras): RenderMode => {
|
||||||
const type = extract(extras, 'client::display', 'contentType');
|
const type = extract(extras, 'client::display', 'contentType');
|
||||||
const valid = Object.keys(RenderMode)
|
const valid = Object.values(RenderMode).includes(type);
|
||||||
.map((k) => RenderMode[k])
|
|
||||||
.some((mode) => mode === type);
|
|
||||||
return valid ? type : RenderMode.Plain;
|
return valid ? type : RenderMode.Plain;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -172,6 +172,9 @@ describe('plugin', () => {
|
||||||
await inDetailPage(1, async () => {
|
await inDetailPage(1, async () => {
|
||||||
await page.waitForSelector('.displayer a');
|
await page.waitForSelector('.displayer a');
|
||||||
const hook = await page.$eval('.displayer a', (el) => el.getAttribute('href'));
|
const hook = await page.$eval('.displayer a', (el) => el.getAttribute('href'));
|
||||||
|
if (!hook) {
|
||||||
|
throw 'href not found';
|
||||||
|
}
|
||||||
await axios.get(hook);
|
await axios.get(hook);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,9 @@ export const newTest = async (pluginsDir = ''): Promise<GotifyTest> => {
|
||||||
close: async () => {
|
close: async () => {
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
browser.close(),
|
browser.close(),
|
||||||
new Promise((resolve) => kill(gotifyInstance.pid!, 'SIGKILL', () => resolve())),
|
new Promise((resolve) =>
|
||||||
|
kill(gotifyInstance.pid!, 'SIGKILL', () => resolve(undefined))
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
rimraf.sync(gotifyFile, {maxBusyTries: 8});
|
rimraf.sync(gotifyFile, {maxBusyTries: 8});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ export const waitForExists = async (page: Page, selector: string, text: string):
|
||||||
export const clearField = async (element: ElementHandle | Page, selector: string) => {
|
export const clearField = async (element: ElementHandle | Page, selector: string) => {
|
||||||
const elementHandle = await element.$(selector);
|
const elementHandle = await element.$(selector);
|
||||||
if (!elementHandle) {
|
if (!elementHandle) {
|
||||||
throw "element handle not set"
|
throw 'element handle not set';
|
||||||
}
|
}
|
||||||
await elementHandle.click();
|
await elementHandle.click();
|
||||||
await elementHandle.focus();
|
await elementHandle.focus();
|
||||||
|
|
|
||||||
|
|
@ -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;
|
const state = this.state;
|
||||||
state[propertyName] = event.target.value;
|
state[propertyName] = event.target.value;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleChecked(propertyName: string, event: ChangeEvent<HTMLInputElement>) {
|
private handleChecked(propertyName: 'admin', event: ChangeEvent<HTMLInputElement>) {
|
||||||
const state = this.state;
|
const state = this.state;
|
||||||
state[propertyName] = event.target.checked;
|
state[propertyName] = event.target.checked;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
const state = this.state;
|
||||||
state[propertyName] = event.target.value;
|
state[propertyName] = event.target.value;
|
||||||
this.setState(state);
|
this.setState(state);
|
||||||
|
|
|
||||||
|
|
@ -3827,10 +3827,10 @@ typeface-roboto@1.1.13:
|
||||||
resolved "https://registry.yarnpkg.com/typeface-roboto/-/typeface-roboto-1.1.13.tgz#9c4517cb91e311706c74823e857b4bac9a764ae5"
|
resolved "https://registry.yarnpkg.com/typeface-roboto/-/typeface-roboto-1.1.13.tgz#9c4517cb91e311706c74823e857b4bac9a764ae5"
|
||||||
integrity sha512-YXvbd3a1QTREoD+FJoEkl0VQNJoEjewR2H11IjVv4bp6ahuIcw0yyw/3udC4vJkHw3T3cUh85FTg8eWef3pSaw==
|
integrity sha512-YXvbd3a1QTREoD+FJoEkl0VQNJoEjewR2H11IjVv4bp6ahuIcw0yyw/3udC4vJkHw3T3cUh85FTg8eWef3pSaw==
|
||||||
|
|
||||||
typescript@4.0.2:
|
typescript@^5.9.2:
|
||||||
version "4.0.2"
|
version "5.9.2"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
|
||||||
integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==
|
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
|
||||||
|
|
||||||
ua-parser-js@^0.7.30:
|
ua-parser-js@^0.7.30:
|
||||||
version "0.7.31"
|
version "0.7.31"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue