From b5e969a9293a4c08fb752b528d55c0bc14f2f097 Mon Sep 17 00:00:00 2001 From: rotimi-best Date: Tue, 27 Jul 2021 22:18:23 +0300 Subject: [PATCH] Support passing env values --- package-lock.json | 21 +++++++++------- package.json | 5 ++-- rollup.config.js | 24 +++++++++++++++---- .../Lesson/Exercise/MarkExerciseModal.svelte | 2 +- src/config.js | 24 +++++++------------ src/server.js | 4 +--- src/utils/functions/supabase.js | 3 +-- 7 files changed, 46 insertions(+), 37 deletions(-) diff --git a/package-lock.json b/package-lock.json index c9e1b8ab..78809446 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1296,6 +1296,14 @@ "resolve": "^1.11.0" } }, + "@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", + "requires": { + "@rollup/pluginutils": "^3.0.8" + } + }, "@rollup/plugin-node-resolve": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", @@ -1325,7 +1333,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, "requires": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -1393,8 +1400,7 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "@types/node": { "version": "15.6.0", @@ -2170,7 +2176,8 @@ "dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true }, "ecc-jsbn": { "version": "0.1.2", @@ -2254,8 +2261,7 @@ "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, "esutils": { "version": "2.0.3", @@ -3406,8 +3412,7 @@ "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { "version": "2.3.0", diff --git a/package.json b/package.json index e5fd10c8..79a2e080 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,10 @@ "start": "node __sapper__/build" }, "dependencies": { + "@rollup/plugin-json": "^4.1.0", "@supabase/supabase-js": "^1.20.0", "@tailwindcss/forms": "^0.3.2", "compression": "^1.7.1", - "dotenv": "^10.0.0", "hotkeys-js": "^3.8.5", "js-yaml": "^4.1.0", "marked": "^1.2.7", @@ -31,9 +31,10 @@ "@rollup/plugin-babel": "^5.0.0", "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-replace": "^2.2.0", + "@rollup/plugin-replace": "^2.4.2", "@tailwindcss/typography": "^0.3.1", "carbon-icons-svelte": "^10.21.0", + "dotenv": "^10.0.0", "postcss": "^8.0.9", "postcss-load-config": "^2.1.0", "rollup": "^2.3.4", diff --git a/rollup.config.js b/rollup.config.js index 9a0b9a8f..be034953 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -5,7 +5,9 @@ import svelte from 'rollup-plugin-svelte'; import babel from '@rollup/plugin-babel'; import { terser } from 'rollup-plugin-terser'; import config from 'sapper/config/rollup.js'; +import dotenv from 'dotenv'; import sveltePreprocess from 'svelte-preprocess'; +import json from '@rollup/plugin-json'; import pkg from './package.json'; @@ -13,11 +15,16 @@ const mode = process.env.NODE_ENV; const dev = mode === 'development'; const legacy = !!process.env.SAPPER_LEGACY_BUILD; -const onwarn = (warning, onwarn) => - (warning.code === 'MISSING_EXPORT' && /'preload'/.test(warning.message)) || - (warning.code === 'CIRCULAR_DEPENDENCY' && - /[/\\]@sapper[/\\]/.test(warning.message)) || - onwarn(warning); +const onwarn = (warning, onwarn) => { + if (warning.code === 'THIS_IS_UNDEFINED') return; + + return ( + (warning.code === 'MISSING_EXPORT' && /'preload'/.test(warning.message)) || + (warning.code === 'CIRCULAR_DEPENDENCY' && + /[/\\]@sapper[/\\]/.test(warning.message)) || + onwarn(warning) + ); +}; const preprocess = sveltePreprocess({ postcss: true }); @@ -30,7 +37,14 @@ export default { 'process.browser': true, 'process.env.NODE_ENV': JSON.stringify(mode), preventAssignment: true, + __api: JSON.stringify({ + env: { + isProd: !dev, + ...dotenv.config().parsed, // attached the .env config + }, + }), }), + json(), svelte({ preprocess, dev, diff --git a/src/components/Course/components/Lesson/Exercise/MarkExerciseModal.svelte b/src/components/Course/components/Lesson/Exercise/MarkExerciseModal.svelte index 7c398597..adec59f0 100644 --- a/src/components/Course/components/Lesson/Exercise/MarkExerciseModal.svelte +++ b/src/components/Course/components/Lesson/Exercise/MarkExerciseModal.svelte @@ -5,7 +5,7 @@ import { questionnaireMetaData } from "./store/answers"; export let open; export let onClose; - export let submissionId; + // export let submissionId; // get submission data by submissionId; diff --git a/src/config.js b/src/config.js index 01e2c1b0..d393847a 100644 --- a/src/config.js +++ b/src/config.js @@ -1,17 +1,9 @@ -let ENV = process.env; - -export const getConfig = (_env) => { - if (!!_env) { - ENV = { ...ENV, ..._env }; - } - - return { - port: ENV.PORT, - nodeEnv: ENV.NODE_ENV, - isProd: ENV.NODE_ENV === 'development', - supabaseConfig: { - url: ENV.SVELTE_APP_SUPABASE_URL, - anonKey: ENV.SVELTE_APP_SUPABASE_ANON_KEY, - }, - }; +export default { + port: process.env.PORT, + nodeEnv: process.env.NODE_ENV, + isProd: process.env.NODE_ENV === 'development', + supabaseConfig: { + url: process.env.SVELTE_APP_SUPABASE_URL, + anonKey: process.env.SVELTE_APP_SUPABASE_ANON_KEY, + }, }; diff --git a/src/server.js b/src/server.js index 101e82fe..b1347f2e 100644 --- a/src/server.js +++ b/src/server.js @@ -5,9 +5,7 @@ import polka from 'polka'; import compression from 'compression'; import * as sapper from '@sapper/server'; -import { getConfig } from './config'; - -const config = getConfig(dotenv.config().parsed); +import config from './config'; polka() // You can also use Express .use( diff --git a/src/utils/functions/supabase.js b/src/utils/functions/supabase.js index 16cb5d7f..573ea148 100644 --- a/src/utils/functions/supabase.js +++ b/src/utils/functions/supabase.js @@ -1,7 +1,6 @@ import { createClient } from '@supabase/supabase-js'; -import getConfig from '../../config'; -const config = getConfig(); +import config from '../../config'; export const supabase = createClient( config.supabaseConfig.url,