From 99c385d21193630c999eb7d3d2356b0cb609c8bb Mon Sep 17 00:00:00 2001 From: juls0730 Date: Mon, 5 Jun 2023 01:44:12 -0500 Subject: [PATCH] dockerize, composte, and various improvements --- .eslintrc.json | 131 +- Dockerfile | 13 + assets/css/main.css | 34 - components/DropdownItem.vue | 19 +- components/DropdownMenu.vue | 26 +- components/EmojiPicker.vue | 84 +- components/FriendChip.vue | 84 + components/InviteCard.vue | 73 +- components/Message.vue | 376 +- components/MessagePane.vue | 355 +- components/Modal.vue | 32 +- components/Nav.vue | 60 +- components/Popup.vue | 27 +- components/Sidebar.vue | 161 +- components/UserProfile.vue | 130 +- docker-compose.yml | 26 + nuxt.config.ts | 5 - package-lock.json | 11431 ++++++---------- package.json | 6 +- pages/channel/@me/[dmId].vue | 101 +- pages/channel/@me/index.vue | 138 +- pages/channel/[channelId].vue | 119 +- pages/index.vue | 37 +- pages/login.vue | 82 +- pages/signup.vue | 86 +- pages/test.vue | 28 +- prisma/schema.prisma | 3 +- server/api/channels/[id]/guild.get.ts | 3 +- server/api/channels/[id]/index.get.ts | 6 +- .../messages/[messageId]/delete.delete.ts | 3 +- .../[messageId]/reactions/[name].post.ts | 13 +- server/api/channels/[id]/sendMessage.post.ts | 3 +- server/api/channels/create.post.ts | 3 +- server/api/channels/createDM.post.ts | 9 +- server/api/getCurrentUser.get.ts | 31 +- server/api/guilds/[id]/addChannel.post.ts | 3 +- server/api/guilds/[id]/createInvite.post.ts | 3 +- server/api/guilds/[id]/index.get.ts | 3 +- server/api/guilds/joinGuild.post.ts | 3 +- server/api/login.post.ts | 39 +- server/api/signup.post.ts | 37 +- server/api/user/[id]/[guildId]/profile.get.ts | 3 +- server/api/user/[id]/profile.get.ts | 3 +- server/api/user/friends/[id]/accept.post.ts | 69 + server/api/user/friends/[id]/cancel.post.ts | 37 + server/api/user/getServers.get.ts | 3 +- server/api/user/logout.ts | 3 +- server/middleware/auth.ts | 3 +- server/middleware/ratelimit.ts | 3 +- server/middleware/socket.ts | 8 +- server/utils/prisma.ts | 4 + server/utils/redis.ts | 6 + stores/index.ts | 7 + stores/userStore.ts | 12 +- types/index.ts | 9 + utils/parseMessageBody.ts | 2 +- 56 files changed, 5907 insertions(+), 8091 deletions(-) create mode 100755 Dockerfile create mode 100644 components/FriendChip.vue create mode 100755 docker-compose.yml create mode 100644 server/api/user/friends/[id]/accept.post.ts create mode 100644 server/api/user/friends/[id]/cancel.post.ts create mode 100644 server/utils/prisma.ts create mode 100644 server/utils/redis.ts create mode 100644 stores/index.ts diff --git a/.eslintrc.json b/.eslintrc.json index a5e849b..8eeb2df 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,64 +1,71 @@ { - "env": { - "browser": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:vue/recommended", - "plugin:@typescript-eslint/recommended" - ], - "globals": { - "useCookie": true, - "$fetch": true, - "definePageMeta": true, - "navigateTo": true, - "useRoute": true, - "useRouter": true, - "useRequestHeaders": true, - "parseMessageBody": true, - "storeToRefs": true, - "useNuxtApp": true, - "NodeJS": true, - "useHeadSafe": true, - "defineEmits": true - }, - "parser": "vue-eslint-parser", - "parserOptions": { - "parser": "@typescript-eslint/parser", - "ecmaVersion": "latest", - "sourceType": "module" - }, - "plugins": [ - "vue", - "@typescript-eslint" - ], - "rules": { - "indent": [ - "error", - "tab" - ], - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "single" - ], - "semi": [ - "error", - "always" - ] - }, - "overrides": [ - { - "files": ["*.vue"], - "rules": { - "vue/multi-word-component-names": "off", - "vue/attribute-hyphenation": "off", - "vue/html-self-closing": "off" - } - } - ] + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:vue/vue3-recommended", + "plugin:@typescript-eslint/recommended" + ], + "globals": { + "useCookie": true, + "$fetch": true, + "definePageMeta": true, + "navigateTo": true, + "useRoute": true, + "useRouter": true, + "useRequestHeaders": true, + "parseMessageBody": true, + "storeToRefs": true, + "useNuxtApp": true, + "NodeJS": true, + "useHeadSafe": true, + "defineEmits": true, + "module": true + }, + "parser": "vue-eslint-parser", + "parserOptions": { + "parser": "@typescript-eslint/parser", + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": [ + "vue", + "@typescript-eslint" + ], + "rules": { + "indent": [ + "error", + "tab" + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single" + ], + "semi": [ + "error", + "always" + ], + "vue/component-tags-order": [ + "error", + { + "order": [ "script", "template", "style" ] + } + ] + }, + "overrides": [ + { + "files": ["*.vue"], + "rules": { + "vue/multi-word-component-names": "off", + "vue/attribute-hyphenation": "off", + "vue/html-self-closing": "off" + } + } + ] } \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 0000000..8257b9c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM node:16-alpine + +WORKDIR /frontend + +COPY package*.json ./ + +RUN npm install + +COPY . . + +EXPOSE 3000 + +CMD [ "npm", "run", "dev" ] diff --git a/assets/css/main.css b/assets/css/main.css index 328813f..2f47a48 100755 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -15,43 +15,9 @@ --reaction-hover: hsl(230, 31.2%, 12.5%); --reaction-active-border: rgb(88,101,242); --primary-danger: hsl(359, 66.7%, 54.1%); - - /* - --background-color: hsl(230, 28%, 7.3%); - --foreground-color: hsl(230, 26%, 13%); - --primary-accent: hsl(180, 55%, 45%); - --message-input-color: hsl(228, 27.3%, 25%); - --primary-placeholder: hsl(218, 11%, 65%); - - - --primary-dark: hsl(225, 7.7%, 10.2%); - /* dropdown and emoji picker bg - --primary-700: hsl(230, 31.2%, 6.3%); - /* code block border - --primary-600: hsl(220, 6.8%, 17.3%); - /* modal bg - --primary-500: hsl(230, 28.7%, 9.8%); - /* reaction button bg, code block, and inline code bg - --primary-400: hsl(230, 12%, 19.2%); - /* action buttons - --primary-300: hsl(230, 26%, 15%); - /* nav button bg - --primary-200: hsl(230, 26%, 21.3%); - /* nav button hover bg - --primary-text: hsl(216, 3.7%, 73.5%); - /* main text color (duh) - --reaction-border: hsl(230, 33.4%, 18.7%); - /* reaction border on hover - --reaction-hover: hsl(230, 31.2%, 12.5%); - /* reaction bg on hover - --invite-members: var(--primary-accent); - /* color of dot next to server members count on invites - --primary-danger: hsl(359, 66.7%, 54.1%); - */ } * { - color: var(--primary-text); scrollbar-width: none; } diff --git a/components/DropdownItem.vue b/components/DropdownItem.vue index b772de4..150d003 100755 --- a/components/DropdownItem.vue +++ b/components/DropdownItem.vue @@ -1,3 +1,12 @@ + + - - \ No newline at end of file + \ No newline at end of file diff --git a/components/DropdownMenu.vue b/components/DropdownMenu.vue index eea1eb3..88f5326 100755 --- a/components/DropdownMenu.vue +++ b/components/DropdownMenu.vue @@ -1,3 +1,16 @@ + + - - \ No newline at end of file diff --git a/components/EmojiPicker.vue b/components/EmojiPicker.vue index 107ca5f..07b4e8f 100755 --- a/components/EmojiPicker.vue +++ b/components/EmojiPicker.vue @@ -1,55 +1,51 @@ - \ No newline at end of file diff --git a/components/Message.vue b/components/Message.vue index cf441c7..e9144bd 100644 --- a/components/Message.vue +++ b/components/Message.vue @@ -1,191 +1,3 @@ - - + +