26 |
27 |
28 |
29 |
39 |
40 |
41 |
97 |
--------------------------------------------------------------------------------
/web/components/README.md:
--------------------------------------------------------------------------------
1 | # COMPONENTS
2 |
3 | **This directory is not required, you can delete it if you don't want to use it.**
4 |
5 | The components directory contains your Vue.js Components.
6 |
7 | _Nuxt.js doesn't supercharge these components._
8 |
--------------------------------------------------------------------------------
/web/layouts/README.md:
--------------------------------------------------------------------------------
1 | # LAYOUTS
2 |
3 | **This directory is not required, you can delete it if you don't want to use it.**
4 |
5 | This directory contains your Application Layouts.
6 |
7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts).
8 |
--------------------------------------------------------------------------------
/web/layouts/default.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
56 |
--------------------------------------------------------------------------------
/web/middleware/README.md:
--------------------------------------------------------------------------------
1 | # MIDDLEWARE
2 |
3 | **This directory is not required, you can delete it if you don't want to use it.**
4 |
5 | This directory contains your application middleware.
6 | Middleware let you define custom functions that can be run before rendering either a page or a group of pages.
7 |
8 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware).
9 |
--------------------------------------------------------------------------------
/web/nuxt.config.js:
--------------------------------------------------------------------------------
1 | const pkg = require('./package')
2 |
3 | module.exports = {
4 | mode: 'universal',
5 | /*
6 | ** Headers of the page
7 | */
8 | head: {
9 | title: pkg.name,
10 | meta: [
11 | { charset: 'utf-8' },
12 | { name: 'viewport', content: 'width=device-width, initial-scale=1' },
13 | { hid: 'description', name: 'description', content: pkg.description }
14 | ],
15 | link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
16 | },
17 |
18 | /*
19 | ** Customize the progress-bar color
20 | */
21 | loading: { color: '#fff' },
22 |
23 | /*
24 | ** Global CSS
25 | */
26 | css: [],
27 |
28 | /*
29 | ** Plugins to load before mounting the App
30 | */
31 | plugins: [],
32 |
33 | /*
34 | ** Nuxt.js modules
35 | */
36 | modules: [
37 | // Doc: https://bootstrap-vue.js.org/docs/
38 | 'bootstrap-vue/nuxt'
39 | ],
40 |
41 | /*
42 | ** Build configuration
43 | */
44 | build: {
45 | /*
46 | ** You can extend webpack config here
47 | */
48 | extend(config, ctx) {
49 | // Run ESLint on save
50 | if (ctx.isDev && ctx.isClient) {
51 | }
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/web/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "news-webapp",
3 | "version": "1.0.0",
4 | "description": "News webapp with grpc-web",
5 | "author": "fbernard",
6 | "private": true,
7 | "scripts": {
8 | "dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server",
9 | "build": "nuxt build",
10 | "start": "cross-env NODE_ENV=production node server/index.js",
11 | "generate": "nuxt generate",
12 | "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
13 | "precommit": "npm run lint"
14 | },
15 | "dependencies": {
16 | "@koa/cors": "^5.0.0",
17 | "bootstrap": "^4.6.2",
18 | "bootstrap-vue": "^2.23.0",
19 | "cross-env": "^5.2.0",
20 | "google-protobuf": "^3.21.2",
21 | "grpc-web": "^1.5.0",
22 | "grpc-web-middleware": "^0.2.3",
23 | "koa": "^2.15.0",
24 | "nuxt": "^2.17"
25 | },
26 | "devDependencies": {
27 | "@babel/eslint-parser": "^7.19.1",
28 | "@nuxtjs/eslint-config": "^11.0.0",
29 | "@nuxtjs/eslint-module": "^3.1.0",
30 | "eslint": "^8.24.0",
31 | "eslint-config-prettier": "^8.5.0",
32 | "eslint-plugin-nuxt": "^4.0.0",
33 | "eslint-plugin-vue": "^9.5.1",
34 | "nodemon": "^3.0.3",
35 | "prettier": "3.2.5"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/web/pages/README.md:
--------------------------------------------------------------------------------
1 | # PAGES
2 |
3 | This directory contains your Application Views and Routes.
4 | The framework reads all the `*.vue` files inside this directory and creates the router of your application.
5 |
6 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing).
7 |
--------------------------------------------------------------------------------
/web/pages/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |