Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit f82f1f0

Browse files
Merge pull request #661 from deckgo/staging-build
feat: split staging and dev build configurations
2 parents 25132f5 + e981a32 commit f82f1f0

File tree

4 files changed

+150
-34
lines changed

4 files changed

+150
-34
lines changed

studio/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
],
1010
"scripts": {
1111
"build": "stencil build --prerender",
12+
"staging": "stencil build --prerender --staging",
1213
"postbuild": "./scripts/config.index.js",
1314
"start": "stencil build --dev --watch --serve",
1415
"test": "stencil test --spec --e2e",

studio/src/global/app-dev.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ setupDeckGoConfig({
3535
deckdeckgo: {
3636
prod: false,
3737
appUrl: 'http://localhost:3333',
38-
globalAssetsUrl: 'https://deckdeckgo-studio-beta.web.app/assets',
39-
pollUrl: 'https://localhost:3333/poll',
38+
globalAssetsUrl: 'http://localhost:3333/assets',
39+
pollUrl: 'http://localhost:3333/poll',
4040
apiUrl: '<@API_URL@>',
4141
presentationUrl: '<@PRESENTATION_URL@>',
4242
socketUrl: '<@SOCKET_URL@>'

studio/src/global/app-staging.ts

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
import '@ionic/core';
2+
3+
import {setupConfig} from '@ionic/core';
4+
setupConfig({
5+
inputBlurring: false
6+
});
7+
8+
import '@deckdeckgo/core';
9+
10+
import '@deckdeckgo/inline-editor';
11+
import '@deckdeckgo/remote';
12+
import '@deckdeckgo/qrcode';
13+
import '@deckdeckgo/highlight-code';
14+
import '@deckdeckgo/lazy-img';
15+
import '@deckdeckgo/color';
16+
import '@deckdeckgo/charts';
17+
import '@deckdeckgo/social';
18+
import '@deckdeckgo/youtube';
19+
import '@deckdeckgo/drag-resize-rotate';
20+
21+
import '@deckdeckgo/slide-title';
22+
import '@deckdeckgo/slide-content';
23+
import '@deckdeckgo/slide-split';
24+
import '@deckdeckgo/slide-gif';
25+
import '@deckdeckgo/slide-youtube';
26+
import '@deckdeckgo/slide-author';
27+
import '@deckdeckgo/slide-qrcode';
28+
import '@deckdeckgo/slide-chart';
29+
import '@deckdeckgo/slide-poll';
30+
import '@deckdeckgo/slide-aspect-ratio';
31+
32+
import {setupConfig as setupDeckGoConfig} from '../app/services/core/environment/environment-config';
33+
34+
setupDeckGoConfig({
35+
deckdeckgo: {
36+
prod: false,
37+
appUrl: 'https://deckdeckgo-studio-beta.web.app',
38+
globalAssetsUrl: 'https://deckdeckgo-studio-beta.web.app/assets',
39+
pollUrl: 'https://deckdeckgo-studio-beta.web.app/poll',
40+
apiUrl: '<@API_URL@>',
41+
presentationUrl: '<@PRESENTATION_URL@>',
42+
socketUrl: '<@SOCKET_URL@>'
43+
},
44+
firebase: {
45+
apiKey: '<@FIREBASE_API_KEY@>',
46+
authDomain: '<@FIREBASE_AUTH_DOMAIN@>',
47+
databaseURL: '<@FIREBASE_DATABASE_URL@>',
48+
projectId: '<@FIREBASE_PROJECT_ID@>',
49+
storageBucket: '<@FIREBASE_STORAGE_BUCKET@>',
50+
messagingSenderId: '<@FIREBASE_MESSAGING_SENDER_ID@>',
51+
storageUrl: '<@FIREBASE_STORAGE_URL@>',
52+
appId: '<@FIREBASE_APP_ID@>'
53+
},
54+
tenor: {
55+
url: 'https://api.tenor.com/v1/',
56+
key: '<@TENOR_KEY@>'
57+
},
58+
unsplash: {
59+
url: '<@UNSPLASH_URL@>'
60+
},
61+
google: {
62+
fontsUrl: 'https://fonts.googleapis.com/css?display=swap&family='
63+
}
64+
});
65+
66+
// https://github.com/deckgo/deckdeckgo/issues/327
67+
// https://github.com/ionic-team/ionic/issues/19065
68+
69+
const hack = () => {
70+
const ionApp = document.querySelector('ion-app');
71+
72+
if (ionApp) {
73+
window.requestAnimationFrame(() => {
74+
ionApp.style.height = '100%';
75+
window.requestAnimationFrame(() => {
76+
ionApp.style.height = '';
77+
});
78+
});
79+
}
80+
};
81+
82+
let resizerObserver;
83+
84+
document.addEventListener('DOMContentLoaded', () => {
85+
if (!window) {
86+
return;
87+
}
88+
89+
if ('ResizeObserver' in window) {
90+
const ResizeObserver = (window as any).ResizeObserver;
91+
resizerObserver = new ResizeObserver(hack);
92+
resizerObserver.observe(document.documentElement);
93+
} else {
94+
window.addEventListener('keyboardWillShow', hack);
95+
window.addEventListener('keyboardWillHide', hack);
96+
window.addEventListener('resize', hack);
97+
}
98+
});
99+
100+
window.addEventListener('unload', () => {
101+
if (!window) {
102+
return;
103+
}
104+
105+
if ('ResizeObserver' in window) {
106+
if (resizerObserver) {
107+
resizerObserver.unobserve(document.documentElement);
108+
resizerObserver.disconnect();
109+
}
110+
} else {
111+
window.removeEventListener('keyboardWillShow', hack);
112+
window.removeEventListener('keyboardWillHide', hack);
113+
window.removeEventListener('resize', hack);
114+
}
115+
});

studio/stencil.config.ts

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,40 @@ const dev: boolean = process.argv && process.argv.indexOf('--dev') > -1;
1111
// @ts-ignore
1212
const staging: boolean = process.argv && process.argv.indexOf('--staging') > -1;
1313

14-
const globalScript: string = dev ? 'src/global/app-dev.ts' : 'src/global/app.ts';
14+
const globalScript: string = dev ? 'src/global/app-dev.ts' : staging ? 'src/global/app-staging.ts' : 'src/global/app.ts';
1515

16-
const configDataFile = dev ? (staging ? './config.staging.json' : './config.dev.json') : './config.prod.json';
16+
const configDataFile = dev ? './config.dev.json' : staging ? './config.staging.json' : './config.prod.json';
1717
const configValues = require(configDataFile);
1818

1919
export const config: Config = {
20-
outputTargets: [{
21-
type: 'www',
22-
baseUrl: 'https://deckdeckgo.com',
23-
serviceWorker: {
24-
swSrc: 'src/sw.js'
25-
}
26-
}],
27-
globalScript: globalScript,
28-
globalStyle: 'src/global/app.scss',
29-
plugins: [
30-
replace({
31-
exclude: 'node_modules/**',
32-
delimiters: ['<@', '@>'],
33-
values: configValues
34-
}),
35-
sass({
36-
includePaths: ['node_modules/@deckdeckgo/deck-utils/styles/']
37-
}),
38-
postcss({
39-
plugins: [autoprefixer()]
40-
})
41-
],
42-
nodeResolve: {browser: true},
43-
devServer: {
44-
openBrowser: false,
45-
reloadStrategy: 'pageReload'
46-
},
47-
copy: [
48-
{src: 'robots.txt'}
49-
]
20+
outputTargets: [
21+
{
22+
type: 'www',
23+
baseUrl: 'https://deckdeckgo.com',
24+
serviceWorker: {
25+
swSrc: 'src/sw.js'
26+
}
27+
}
28+
],
29+
globalScript: globalScript,
30+
globalStyle: 'src/global/app.scss',
31+
plugins: [
32+
replace({
33+
exclude: 'node_modules/**',
34+
delimiters: ['<@', '@>'],
35+
values: configValues
36+
}),
37+
sass({
38+
includePaths: ['node_modules/@deckdeckgo/deck-utils/styles/']
39+
}),
40+
postcss({
41+
plugins: [autoprefixer()]
42+
})
43+
],
44+
nodeResolve: {browser: true},
45+
devServer: {
46+
openBrowser: false,
47+
reloadStrategy: 'pageReload'
48+
},
49+
copy: [{src: 'robots.txt'}]
5050
};

0 commit comments

Comments
 (0)