mirror of
https://github.com/thelounge/thelounge.git
synced 2024-06-01 05:12:24 +02:00
client webpack progress
This commit is contained in:
parent
ed02acfad4
commit
034a2479a8
|
@ -3,6 +3,7 @@ module.exports = {
|
|||
parserOptions: {
|
||||
ecmaVersion: 2022,
|
||||
parser: "@typescript-eslint/parser",
|
||||
sourceType: "module",
|
||||
// project: ["./eslint.tsconfig.json"],
|
||||
// extraFileExtensions: [".vue", ".cjs"],
|
||||
},
|
||||
|
@ -16,8 +17,8 @@ module.exports = {
|
|||
node: true,
|
||||
},
|
||||
extends: [
|
||||
"eslint:recommended",
|
||||
"plugin:vue/recommended",
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"prettier",
|
||||
],
|
||||
|
@ -90,4 +91,21 @@ module.exports = {
|
|||
"@typescript-eslint/no-unused-vars": "off",
|
||||
"@typescript-eslint/no-this-alias": "off",
|
||||
},
|
||||
|
||||
// TODO: verify
|
||||
overrides: [
|
||||
{
|
||||
files: ["*.vue", "*.d.ts"],
|
||||
rules: {
|
||||
"import/no-default-export": 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["*.vue"],
|
||||
rules: {
|
||||
"@typescript-eslint/prefer-readonly": 0, // can be used in template
|
||||
"import/unambiguous": 0, // vue SFC can miss script tags
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
module.exports = {
|
||||
presets: [["@babel/env", {bugfixes: true}], "babel-preset-typescript-vue"],
|
||||
presets: [
|
||||
["@babel/preset-env", {bugfixes: true}],
|
||||
"@babel/preset-typescript",
|
||||
"@vue/babel-preset-jsx",
|
||||
],
|
||||
targets: "> 0.25%, not dead",
|
||||
// plugins: [["@babel/transform-typescript", {allowNamespaces: true}]],
|
||||
};
|
||||
|
|
|
@ -29,7 +29,7 @@ import ImageViewer from "./ImageViewer.vue";
|
|||
import ContextMenu from "./ContextMenu.vue";
|
||||
import ConfirmDialog from "./ConfirmDialog.vue";
|
||||
import Mentions from "./Mentions.vue";
|
||||
import Vue from "vue";
|
||||
import VueApp from "vue";
|
||||
|
||||
// This stops Vue from complaining about adding objects to the component context
|
||||
declare module "vue/types/vue" {
|
||||
|
@ -39,7 +39,7 @@ declare module "vue/types/vue" {
|
|||
}
|
||||
}
|
||||
|
||||
export default Vue.extend({
|
||||
export default VueApp.extend({
|
||||
name: "App",
|
||||
components: {
|
||||
Sidebar,
|
||||
|
@ -49,7 +49,7 @@ export default Vue.extend({
|
|||
Mentions,
|
||||
},
|
||||
computed: {
|
||||
viewportClasses(): Object {
|
||||
viewportClasses(): Record<string, boolean> {
|
||||
return {
|
||||
notified: this.$store.getters.highlightCount > 0,
|
||||
"menu-open": this.$store.state.appLoaded && this.$store.state.sidebarOpen,
|
||||
|
|
|
@ -55,12 +55,13 @@
|
|||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script lang="ts">
|
||||
import storage from "../../js/localStorage";
|
||||
import socket from "../../js/socket";
|
||||
import RevealPassword from "../RevealPassword.vue";
|
||||
import Vue from "vue";
|
||||
|
||||
export default {
|
||||
export default Vue.extend({
|
||||
name: "SignIn",
|
||||
components: {
|
||||
RevealPassword,
|
||||
|
@ -101,5 +102,5 @@ export default {
|
|||
return storage.get("user");
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -54,8 +54,8 @@
|
|||
|
||||
window.addEventListener("error", errorHandler);
|
||||
|
||||
(window as LoungeWindow).g_TheLoungeRemoveLoading = () => {
|
||||
delete (window as LoungeWindow).g_TheLoungeRemoveLoading;
|
||||
window.g_TheLoungeRemoveLoading = () => {
|
||||
delete window.g_TheLoungeRemoveLoading;
|
||||
window.clearTimeout(loadingSlowTimeout);
|
||||
window.removeEventListener("error", errorHandler);
|
||||
document.getElementById("loading")?.remove();
|
|
@ -73,6 +73,8 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.17.10",
|
||||
"@babel/plugin-syntax-jsx": "7.16.7",
|
||||
"@babel/plugin-transform-typescript": "7.16.8",
|
||||
"@babel/preset-env": "7.17.10",
|
||||
"@babel/preset-typescript": "7.16.7",
|
||||
"@fortawesome/fontawesome-free": "5.15.4",
|
||||
|
@ -101,6 +103,8 @@
|
|||
"@types/ws": "8.5.3",
|
||||
"@typescript-eslint/eslint-plugin": "5.22.0",
|
||||
"@typescript-eslint/parser": "5.22.0",
|
||||
"@vue/babel-helper-vue-jsx-merge-props": "1.2.1",
|
||||
"@vue/babel-preset-jsx": "1.2.4",
|
||||
"@vue/runtime-dom": "3.2.33",
|
||||
"@vue/server-test-utils": "1.3.0",
|
||||
"@vue/test-utils": "1.3.0",
|
||||
|
|
|
@ -25,6 +25,9 @@ const config: webpack.Configuration = {
|
|||
performance: {
|
||||
hints: false,
|
||||
},
|
||||
resolve: {
|
||||
extensions: [".ts", ".js", ".vue"],
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
|
@ -40,8 +43,8 @@ const config: webpack.Configuration = {
|
|||
},
|
||||
},
|
||||
{
|
||||
test: /\.{js,ts}$/,
|
||||
include: [path.resolve(__dirname, "client/")],
|
||||
test: /\.ts$/,
|
||||
include: [path.resolve(__dirname, "client")],
|
||||
exclude: path.resolve(__dirname, "node_modules"),
|
||||
use: {
|
||||
loader: "babel-loader",
|
||||
|
@ -94,6 +97,10 @@ const config: webpack.Configuration = {
|
|||
new MiniCssExtractPlugin({
|
||||
filename: "css/style.css",
|
||||
}),
|
||||
// TODO: verify necessary
|
||||
new webpack.ProvidePlugin({
|
||||
Vue: ["vue/dist/vue.esm.js", "default"],
|
||||
}),
|
||||
new CopyPlugin({
|
||||
patterns: [
|
||||
{
|
||||
|
|
101
yarn.lock
101
yarn.lock
|
@ -199,7 +199,7 @@
|
|||
dependencies:
|
||||
"@babel/types" "^7.17.0"
|
||||
|
||||
"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
|
||||
"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
|
||||
version "7.16.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
|
||||
integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
|
||||
|
@ -514,6 +514,13 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-jsx@7.16.7", "@babel/plugin-syntax-jsx@^7.2.0":
|
||||
version "7.16.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665"
|
||||
integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.16.7"
|
||||
|
||||
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
|
||||
|
@ -820,7 +827,7 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.16.7"
|
||||
|
||||
"@babel/plugin-transform-typescript@^7.16.7", "@babel/plugin-transform-typescript@^7.3.2":
|
||||
"@babel/plugin-transform-typescript@7.16.8", "@babel/plugin-transform-typescript@^7.16.7", "@babel/plugin-transform-typescript@^7.3.2":
|
||||
version "7.16.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0"
|
||||
integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==
|
||||
|
@ -1750,6 +1757,86 @@
|
|||
resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
|
||||
integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
|
||||
|
||||
"@vue/babel-helper-vue-jsx-merge-props@1.2.1", "@vue/babel-helper-vue-jsx-merge-props@^1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81"
|
||||
integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==
|
||||
|
||||
"@vue/babel-plugin-transform-vue-jsx@^1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7"
|
||||
integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==
|
||||
dependencies:
|
||||
"@babel/helper-module-imports" "^7.0.0"
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
"@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
|
||||
html-tags "^2.0.0"
|
||||
lodash.kebabcase "^4.1.1"
|
||||
svg-tags "^1.0.0"
|
||||
|
||||
"@vue/babel-preset-jsx@1.2.4":
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87"
|
||||
integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==
|
||||
dependencies:
|
||||
"@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
|
||||
"@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
|
||||
"@vue/babel-sugar-composition-api-inject-h" "^1.2.1"
|
||||
"@vue/babel-sugar-composition-api-render-instance" "^1.2.4"
|
||||
"@vue/babel-sugar-functional-vue" "^1.2.2"
|
||||
"@vue/babel-sugar-inject-h" "^1.2.2"
|
||||
"@vue/babel-sugar-v-model" "^1.2.3"
|
||||
"@vue/babel-sugar-v-on" "^1.2.3"
|
||||
|
||||
"@vue/babel-sugar-composition-api-inject-h@^1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb"
|
||||
integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==
|
||||
dependencies:
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
|
||||
"@vue/babel-sugar-composition-api-render-instance@^1.2.4":
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19"
|
||||
integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==
|
||||
dependencies:
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
|
||||
"@vue/babel-sugar-functional-vue@^1.2.2":
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658"
|
||||
integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==
|
||||
dependencies:
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
|
||||
"@vue/babel-sugar-inject-h@^1.2.2":
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa"
|
||||
integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==
|
||||
dependencies:
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
|
||||
"@vue/babel-sugar-v-model@^1.2.3":
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2"
|
||||
integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==
|
||||
dependencies:
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
"@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
|
||||
"@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
|
||||
camelcase "^5.0.0"
|
||||
html-tags "^2.0.0"
|
||||
svg-tags "^1.0.0"
|
||||
|
||||
"@vue/babel-sugar-v-on@^1.2.3":
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada"
|
||||
integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==
|
||||
dependencies:
|
||||
"@babel/plugin-syntax-jsx" "^7.2.0"
|
||||
"@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
|
||||
camelcase "^5.0.0"
|
||||
|
||||
"@vue/component-compiler-utils@^3.1.0":
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9"
|
||||
|
@ -4551,6 +4638,11 @@ html-escaper@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
|
||||
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
|
||||
|
||||
html-tags@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
|
||||
integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=
|
||||
|
||||
html-tags@^3.1.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961"
|
||||
|
@ -5507,6 +5599,11 @@ lodash.get@^4.4.2:
|
|||
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
|
||||
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
|
||||
|
||||
lodash.kebabcase@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
|
||||
integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
|
||||
|
||||
lodash.memoize@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
||||
|
|
Loading…
Reference in a new issue