From 37f8355dd47c6bc0540ebe42f65bebac7094d1b0 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Sat, 14 Dec 2019 00:08:21 +0800 Subject: [PATCH] Apply new ES syntax: Optional Chaining --- babel.config.json | 4 +++- package.json | 1 + .../assets/src/scripts/language-chooser.ts | 8 +++----- resources/assets/src/scripts/logout.ts | 6 ++---- resources/assets/src/scripts/net.ts | 6 +++--- .../assets/src/views/user/profile/index.ts | 20 +++++-------------- yarn.lock | 15 ++++++++++++++ 7 files changed, 32 insertions(+), 28 deletions(-) diff --git a/babel.config.json b/babel.config.json index 08d7b188..4848e16e 100644 --- a/babel.config.json +++ b/babel.config.json @@ -2,7 +2,9 @@ "presets": [ "@babel/preset-typescript" ], - "plugins": [], + "plugins": [ + ["@babel/plugin-proposal-optional-chaining", { "loose": false }] + ], "env": { "production": { "presets": [ diff --git a/package.json b/package.json index 1c8af8e3..506f1057 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ }, "devDependencies": { "@babel/core": "^7.7.4", + "@babel/plugin-proposal-optional-chaining": "^7.7.5", "@babel/plugin-transform-runtime": "^7.7.4", "@babel/preset-env": "^7.7.4", "@babel/preset-typescript": "^7.7.4", diff --git a/resources/assets/src/scripts/language-chooser.ts b/resources/assets/src/scripts/language-chooser.ts index ca42f073..a25bf077 100644 --- a/resources/assets/src/scripts/language-chooser.ts +++ b/resources/assets/src/scripts/language-chooser.ts @@ -1,6 +1,4 @@ const chooser = document.querySelector('#language-chooser') -if (chooser) { - chooser.addEventListener('change', () => { - window.location.href = `?lang=${chooser.value}` - }) -} +chooser?.addEventListener('change', () => { + window.location.href = `?lang=${chooser.value}` +}) diff --git a/resources/assets/src/scripts/logout.ts b/resources/assets/src/scripts/logout.ts index 20fa1c9d..84a4fecc 100644 --- a/resources/assets/src/scripts/logout.ts +++ b/resources/assets/src/scripts/logout.ts @@ -17,7 +17,5 @@ export async function logout() { } const button = document.querySelector('#logout-button') -/* istanbul ignore next, not all pages contains this button. */ -if (button) { - button.addEventListener('click', logout) -} +button?.addEventListener('click', logout) + diff --git a/resources/assets/src/scripts/net.ts b/resources/assets/src/scripts/net.ts index 36fbfaeb..7ec61a58 100644 --- a/resources/assets/src/scripts/net.ts +++ b/resources/assets/src/scripts/net.ts @@ -27,10 +27,10 @@ export const init: RequestInit = { } function retrieveToken() { - const csrfField: HTMLMetaElement | null = - document.querySelector('meta[name="csrf-token"]') + const csrfField = + document.querySelector('meta[name="csrf-token"]') // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - return (csrfField && csrfField.content) || '' + return csrfField?.content || '' } export async function walkFetch(request: Request): Promise { diff --git a/resources/assets/src/views/user/profile/index.ts b/resources/assets/src/views/user/profile/index.ts index c22a64bd..804db8d3 100644 --- a/resources/assets/src/views/user/profile/index.ts +++ b/resources/assets/src/views/user/profile/index.ts @@ -5,27 +5,17 @@ import emailFormHandler from './email' import deleteAccountFormHandler from './deleteAccount' const btnResetAvatar = document.querySelector('#reset-avatar') -if (btnResetAvatar) { - btnResetAvatar.addEventListener('click', resetAvatar) -} +btnResetAvatar?.addEventListener('click', resetAvatar) const passwordForm = document.querySelector('#change-password') -if (passwordForm) { - passwordForm.addEventListener('submit', passwordFormHandler) -} +passwordForm?.addEventListener('submit', passwordFormHandler) const nicknameForm = document.querySelector('#change-nickname') -if (nicknameForm) { - nicknameForm.addEventListener('submit', nicknameFormHandler) -} +nicknameForm?.addEventListener('submit', nicknameFormHandler) const emailForm = document.querySelector('#change-email') -if (emailForm) { - emailForm.addEventListener('submit', emailFormHandler) -} +emailForm?.addEventListener('submit', emailFormHandler) const deleteAccountForm = document .querySelector('#modal-delete-account') -if (deleteAccountForm) { - deleteAccountForm.addEventListener('submit', deleteAccountFormHandler) -} +deleteAccountForm?.addEventListener('submit', deleteAccountFormHandler) diff --git a/yarn.lock b/yarn.lock index c0383b7c..7265c374 100644 --- a/yarn.lock +++ b/yarn.lock @@ -380,6 +380,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" +"@babel/plugin-proposal-optional-chaining@^7.7.5": + version "7.7.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.7.5.tgz#f0835f044cef85b31071a924010a2a390add11d4" + integrity sha512-sOwFqT8JSchtJeDD+CjmWCaiFoLxY4Ps7NjvwHC/U7l4e9i5pTRNt8nDMIFSOUL+ncFbYSwruHM8WknYItWdXw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.7.4" + "@babel/plugin-proposal-unicode-property-regex@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb" @@ -430,6 +438,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-optional-chaining@^7.7.4": + version "7.7.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.7.4.tgz#c91fdde6de85d2eb8906daea7b21944c3610c901" + integrity sha512-2MqYD5WjZSbJdUagnJvIdSfkb/ucOC9/1fRJxm7GAxY6YQLWlUvkfxoNbUPcPLHJyetKUDQ4+yyuUyAoc0HriA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-top-level-await@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da"