diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000000000000000000000000000000000..cb8c9cfd4446afeaa8b103abc8c5ff8e48194fd0 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +FIREBASE_API_KEY="" +FIREBASE_AUTH_DOMAIN="" +FIREBASE_DATABASE_URL="" +FIREBASE_PROJECT_ID="" +FIREBASE_STORAGE_BUCKET="" +FIREBASE_MESSAGING_SENDER_ID="" diff --git a/.gitignore b/.gitignore index d7c7a2d63361afb30d96b2b77cc43fc014eed83e..ac907e26f7cac423d69e966a86b0c7c1a87569d3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ .quasar .DS_Store .thumbs.db -node_modules /dist +node_modules /src-cordova/node_modules /src-cordova/platforms /src-cordova/plugins @@ -10,7 +10,7 @@ node_modules npm-debug.log* yarn-debug.log* yarn-error.log* - +.env # Editor directories and files .idea .vscode diff --git a/config/envparser.js b/config/envparser.js new file mode 100644 index 0000000000000000000000000000000000000000..87ba78c50ff7e77ea65ce9a7c39fa27272ade7d8 --- /dev/null +++ b/config/envparser.js @@ -0,0 +1,12 @@ +const DotEnv = require("dotenv"); +const parsedEnv = DotEnv.config().parsed; + +module.exports = function() { + // Let's stringify our variables + for (key in parsedEnv) { + if (typeof parsedEnv[key] === "string") { + parsedEnv[key] = JSON.stringify(parsedEnv[key]); + } + } + return parsedEnv; +}; diff --git a/package.json b/package.json index 8c6e839aab7568c72fcc72de61d38d27abfda09d..a221d07e50849bb024bf56a3b6e60b6c7bdd47ca 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "author": "Fiore Basile <fiore.basile@gmail.com>", "private": true, "scripts": { - "start": "quasar serve --history dist/spa", + "start": "quasar serve --history .", "build": "quasar build", "test": "quasar test --unit jest", "test:unit": "jest --updateSnapshot", @@ -27,7 +27,8 @@ "devDependencies": { "@quasar/app": "^1.0.0-beta.0", "@quasar/quasar-app-extension-testing": "^1.0.0-rc.9", - "@quasar/quasar-app-extension-testing-unit-jest": "^1.0.0-beta.24" + "@quasar/quasar-app-extension-testing-unit-jest": "^1.0.0-beta.24", + "dotenv": "^8.0.0" }, "engines": { "node": ">= 8.9.0", diff --git a/quasar.conf.js b/quasar.conf.js index 3d0bcdbc65d53d93c87b5db01f905bf6daffbe79..2521c3498de160fd69e6ceb16353c600375239b7 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -1,5 +1,7 @@ // Configuration for your app +const envparser = require("./config/envparser"); + module.exports = function(ctx) { return { // app boot file (/src/boot) @@ -70,6 +72,7 @@ module.exports = function(ctx) { build: { scopeHoisting: true, vueRouterMode: "history", + env: envparser(), // vueCompiler: true, // gzip: true, // analyze: true, diff --git a/src/boot/firebase.js b/src/boot/firebase.js new file mode 100644 index 0000000000000000000000000000000000000000..e580bb6d4767496ebd73949a0a8b73aa065e9aaf --- /dev/null +++ b/src/boot/firebase.js @@ -0,0 +1,15 @@ +const firebaseConfig = function() { + return { + apiKey: process.env.FIREBASE_API_KEY, + authDomain: process.env.FIREBASE_AUTH_DOMAIN, + databaseURL: process.env.FIREBASE_DATABASE_URL, + projectId: process.env.FIREBASE_PROJECT_ID, + storageBucket: process.env.FIREBASE_STORAGE_BUCKET, + messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID + }; +}; +import firebase from "firebase"; + +export default async ({ Vue }) => { + firebase.initializeApp(firebaseConfig()); +}; diff --git a/yarn.lock b/yarn.lock index 86a74e178d3e012ba0ac62b487443473344959ad..91788ad98dc612a676508dd85639b1b3f22d1ce4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3531,6 +3531,11 @@ dot-prop@^4.1.1: dependencies: is-obj "^1.0.0" +dotenv@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.0.0.tgz#ed310c165b4e8a97bb745b0a9d99c31bda566440" + integrity sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg== + download-git-repo@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/download-git-repo/-/download-git-repo-1.1.0.tgz#7dc88a82ced064b1372a0002f8a3aebf10eb1d3c"