1
+ import { Request , Response } from 'express' ;
1
2
import get404Sketch from './404Page' ;
2
3
3
4
export function renderIndex ( ) {
4
- const assetsManifest = process . env . webpackAssets && JSON . parse ( process . env . webpackAssets ) ;
5
+ const assetsManifest =
6
+ process . env . webpackAssets && JSON . parse ( process . env . webpackAssets ) ;
5
7
return `
6
8
<!DOCTYPE html>
7
9
<html lang="en">
@@ -11,7 +13,11 @@ export function renderIndex() {
11
13
<meta name="keywords" content="p5.js, p5.js web editor, web editor, processing, code editor" />
12
14
<meta name="description" content="A web editor for p5.js, a JavaScript library with the goal of making coding accessible to artists, designers, educators, and beginners." />
13
15
<title>p5.js Web Editor</title>
14
- ${ process . env . NODE_ENV === 'production' ? `<link rel='stylesheet' href='${ assetsManifest [ '/app.css' ] } ' />` : '' }
16
+ ${
17
+ process . env . NODE_ENV === 'production'
18
+ ? `<link rel='stylesheet' href='${ assetsManifest [ '/app.css' ] } ' />`
19
+ : ''
20
+ }
15
21
<link href='https://fonts.googleapis.com/css?family=Inconsolata:400,700' rel='stylesheet' type='text/css'>
16
22
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
17
23
<link rel='shortcut icon' href='/favicon.ico' type='image/x-icon' / >
@@ -25,31 +31,54 @@ export function renderIndex() {
25
31
window.process.env.API_URL = '${ process . env . API_URL } ';
26
32
window.process.env.NODE_ENV = '${ process . env . NODE_ENV } ';
27
33
window.process.env.S3_BUCKET = '${ process . env . S3_BUCKET } ';
28
- window.process.env.S3_BUCKET_URL_BASE = ${ process . env . S3_BUCKET_URL_BASE ? `'${ process . env . S3_BUCKET_URL_BASE } '` : undefined } ;
34
+ window.process.env.S3_BUCKET_URL_BASE = ${
35
+ process . env . S3_BUCKET_URL_BASE
36
+ ? `'${ process . env . S3_BUCKET_URL_BASE } '`
37
+ : undefined
38
+ } ;
29
39
window.process.env.AWS_REGION = '${ process . env . AWS_REGION } ';
30
- window.process.env.FORCE_TO_HTTPS = ${ process . env . FORCE_TO_HTTPS === 'false' ? false : undefined } ;
40
+ window.process.env.FORCE_TO_HTTPS = ${
41
+ process . env . FORCE_TO_HTTPS === 'false' ? false : undefined
42
+ } ;
31
43
window.process.env.CLIENT = true;
32
- window.process.env.LOGIN_ENABLED = ${ process . env . LOGIN_ENABLED === 'false' ? false : true } ;
33
- window.process.env.EXAMPLES_ENABLED = ${ process . env . EXAMPLES_ENABLED === 'false' ? false : true } ;
34
- window.process.env.UI_ACCESS_TOKEN_ENABLED = ${ process . env . UI_ACCESS_TOKEN_ENABLED === 'false' ? false : true } ;
35
- window.process.env.UI_COLLECTIONS_ENABLED = ${ process . env . UI_COLLECTIONS_ENABLED === 'false' ? false : true } ;
36
- window.process.env.UPLOAD_LIMIT = ${ process . env . UPLOAD_LIMIT ? `${ process . env . UPLOAD_LIMIT } ` : undefined } ;
37
- window.process.env.TRANSLATIONS_ENABLED = ${ process . env . TRANSLATIONS_ENABLED === 'true' ? true : false } ;
44
+ window.process.env.LOGIN_ENABLED = ${
45
+ process . env . LOGIN_ENABLED !== 'false'
46
+ } ;
47
+ window.process.env.EXAMPLES_ENABLED = ${
48
+ process . env . EXAMPLES_ENABLED !== 'false'
49
+ } ;
50
+ window.process.env.UI_ACCESS_TOKEN_ENABLED = ${
51
+ process . env . UI_ACCESS_TOKEN_ENABLED !== 'false'
52
+ } ;
53
+ window.process.env.UI_COLLECTIONS_ENABLED = ${
54
+ process . env . UI_COLLECTIONS_ENABLED !== 'false'
55
+ } ;
56
+ window.process.env.UPLOAD_LIMIT = ${
57
+ process . env . UPLOAD_LIMIT ? `${ process . env . UPLOAD_LIMIT } ` : undefined
58
+ } ;
59
+ window.process.env.TRANSLATIONS_ENABLED = ${
60
+ process . env . TRANSLATIONS_ENABLED === 'true'
61
+ } ;
38
62
window.process.env.PREVIEW_URL = '${ process . env . PREVIEW_URL } ';
39
63
window.process.env.GA_MEASUREMENT_ID='${ process . env . GA_MEASUREMENT_ID } ';
40
64
</script>
41
65
</head>
42
66
<body>
43
67
<div id="root" class="root-app">
44
68
</div>
45
- <script src='${ process . env . NODE_ENV === 'production' ? `${ assetsManifest [ '/app.js' ] } ` : '/app.js' } '></script>
69
+ <script src='${
70
+ process . env . NODE_ENV === 'production'
71
+ ? `${ assetsManifest [ '/app.js' ] } `
72
+ : '/app.js'
73
+ } '></script>
46
74
</body>
47
75
</html>
48
76
` ;
49
77
}
50
78
51
- export function renderProjectIndex ( username , projectName ) {
52
- const assetsManifest = process . env . webpackAssets && JSON . parse ( process . env . webpackAssets ) ;
79
+ export function renderProjectIndex ( username : string , projectName : string ) {
80
+ const assetsManifest =
81
+ process . env . webpackAssets && JSON . parse ( process . env . webpackAssets ) ;
53
82
return `
54
83
<!DOCTYPE html>
55
84
<html lang="en">
@@ -59,7 +88,11 @@ export function renderProjectIndex(username, projectName) {
59
88
<meta name="keywords" content="p5.js, p5.js web editor, web editor, processing, code editor" />
60
89
<meta name="description" content="A web editor for p5.js, a JavaScript library with the goal of making coding accessible to artists, designers, educators, and beginners." />
61
90
<title>${ `${ projectName } by ${ username } -` } p5.js Web Editor</title>
62
- ${ process . env . NODE_ENV === 'production' ? `<link rel='stylesheet' href='${ assetsManifest [ '/app.css' ] } ' />` : '' }
91
+ ${
92
+ process . env . NODE_ENV === 'production'
93
+ ? `<link rel='stylesheet' href='${ assetsManifest [ '/app.css' ] } ' />`
94
+ : ''
95
+ }
63
96
<link href='https://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
64
97
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
65
98
<link rel='shortcut icon' href='/favicon.ico' type='image/x-icon' / >
@@ -73,24 +106,46 @@ export function renderProjectIndex(username, projectName) {
73
106
window.process.env.API_URL = '${ process . env . API_URL } ';
74
107
window.process.env.NODE_ENV = '${ process . env . NODE_ENV } ';
75
108
window.process.env.S3_BUCKET = '${ process . env . S3_BUCKET } ';
76
- window.process.env.S3_BUCKET_URL_BASE = ${ process . env . S3_BUCKET_URL_BASE ? `'${ process . env . S3_BUCKET_URL_BASE } '` : undefined } ;
109
+ window.process.env.S3_BUCKET_URL_BASE = ${
110
+ process . env . S3_BUCKET_URL_BASE
111
+ ? `'${ process . env . S3_BUCKET_URL_BASE } '`
112
+ : undefined
113
+ } ;
77
114
window.process.env.AWS_REGION = '${ process . env . AWS_REGION } ';
78
- window.process.env.FORCE_TO_HTTPS = ${ process . env . FORCE_TO_HTTPS === 'false' ? false : undefined } ;
115
+ window.process.env.FORCE_TO_HTTPS = ${
116
+ process . env . FORCE_TO_HTTPS === 'false' ? false : undefined
117
+ } ;
79
118
window.process.env.CLIENT = true;
80
- window.process.env.LOGIN_ENABLED = ${ process . env . LOGIN_ENABLED === 'false' ? false : true } ;
81
- window.process.env.EXAMPLES_ENABLED = ${ process . env . EXAMPLES_ENABLED === 'false' ? false : true } ;
82
- window.process.env.UI_ACCESS_TOKEN_ENABLED = ${ process . env . UI_ACCESS_TOKEN_ENABLED === 'false' ? false : true } ;
83
- window.process.env.UI_COLLECTIONS_ENABLED = ${ process . env . UI_COLLECTIONS_ENABLED === 'false' ? false : true } ;
84
- window.process.env.UPLOAD_LIMIT = ${ process . env . UPLOAD_LIMIT ? `${ process . env . UPLOAD_LIMIT } ` : undefined } ;
85
- window.process.env.TRANSLATIONS_ENABLED = ${ process . env . TRANSLATIONS_ENABLED === 'true' ? true : false } ;
119
+ window.process.env.LOGIN_ENABLED = ${
120
+ process . env . LOGIN_ENABLED !== 'false'
121
+ } ;
122
+ window.process.env.EXAMPLES_ENABLED = ${
123
+ process . env . EXAMPLES_ENABLED !== 'false'
124
+ } ;
125
+ window.process.env.UI_ACCESS_TOKEN_ENABLED = ${
126
+ process . env . UI_ACCESS_TOKEN_ENABLED !== 'false'
127
+ } ;
128
+ window.process.env.UI_COLLECTIONS_ENABLED = ${
129
+ process . env . UI_COLLECTIONS_ENABLED !== 'false'
130
+ } ;
131
+ window.process.env.UPLOAD_LIMIT = ${
132
+ process . env . UPLOAD_LIMIT ? `${ process . env . UPLOAD_LIMIT } ` : undefined
133
+ } ;
134
+ window.process.env.TRANSLATIONS_ENABLED = ${
135
+ process . env . TRANSLATIONS_ENABLED === 'true'
136
+ } ;
86
137
window.process.env.PREVIEW_URL = '${ process . env . PREVIEW_URL } ';
87
138
window.process.env.GA_MEASUREMENT_ID='${ process . env . GA_MEASUREMENT_ID } ';
88
139
</script>
89
140
</head>
90
141
<body>
91
142
<div id="root" class="root-app">
92
143
</div>
93
- <script src='${ process . env . NODE_ENV === 'production' ? `${ assetsManifest [ '/app.js' ] } ` : '/app.js' } '></script>
144
+ <script src='${
145
+ process . env . NODE_ENV === 'production'
146
+ ? `${ assetsManifest [ '/app.js' ] } `
147
+ : '/app.js'
148
+ } '></script>
94
149
</body>
95
150
</html>
96
151
` ;
@@ -102,12 +157,12 @@ export function renderProjectIndex(username, projectName) {
102
157
* @param {import('express').e.Response } res
103
158
* @param {boolean } [exists]
104
159
*/
105
- export default async function sendHtml ( req , res , exists = true ) {
160
+ export async function sendHtml ( req : Request , res : Response , exists = true ) {
106
161
if ( ! exists ) {
107
162
res . status ( 404 ) ;
108
163
const html = await get404Sketch ( ) ;
109
164
res . send ( html ) ;
110
165
} else {
111
166
res . send ( renderIndex ( ) ) ;
112
167
}
113
- } ;
168
+ }
0 commit comments