speaker-calibration 2.2.249 → 2.2.250
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +71 -71
- package/.eslintrc.json +40 -40
- package/.github/workflows/update-phrases.yml +37 -0
- package/.prettierignore +69 -69
- package/.prettierrc +14 -14
- package/LICENSE +20 -20
- package/README.md +133 -133
- package/__mocks__/fileMock.js +1 -1
- package/__mocks__/styleMock.js +1 -1
- package/babel.config.js +3 -3
- package/coverage/clover.xml +71 -71
- package/coverage/coverage-final.json +224 -224
- package/coverage/lcov-report/PythonServerInterface.js.html +265 -265
- package/coverage/lcov-report/base.css +354 -354
- package/coverage/lcov-report/block-navigation.js +82 -82
- package/coverage/lcov-report/index.html +123 -123
- package/coverage/lcov-report/prettify.css +101 -101
- package/coverage/lcov-report/prettify.js +937 -937
- package/coverage/lcov-report/sorter.js +189 -189
- package/coverage/lcov-report/src/index.html +121 -121
- package/coverage/lcov-report/src/server/PythonServerInterface.js.html +268 -268
- package/coverage/lcov-report/src/server/index.html +123 -123
- package/coverage/lcov-report/src/tasks/audioCalibrator.js.html +499 -499
- package/coverage/lcov-report/src/tasks/audioRecorder.js.html +412 -412
- package/coverage/lcov-report/src/tasks/index.html +143 -143
- package/coverage/lcov-report/src/tasks/volume/index.html +123 -123
- package/coverage/lcov-report/src/tasks/volume/volume.js.html +409 -409
- package/coverage/lcov-report/src/utils.js.html +172 -172
- package/coverage/lcov.info +91 -91
- package/dist/example/NoSleep.min.js +1 -1
- package/dist/example/fetch-languages-sheets.js +77 -77
- package/dist/example/i18n.js +29654 -29654
- package/dist/example/index.html +47 -47
- package/dist/example/listener.html +81 -81
- package/dist/example/server.js +51 -51
- package/dist/example/speaker.html +145 -145
- package/dist/example/speakerUI.js +273 -273
- package/dist/example/styles.css +152 -152
- package/dist/listener.js +3 -3
- package/dist/main.js +1 -1
- package/dist/mlsGen.js +6814 -6814
- package/dist/mlsGen.wasm +0 -0
- package/dist/package-lock.json +1018 -1018
- package/dist/package.json +18 -18
- package/dist/phonePeer.js +2 -2
- package/doc/AudioCalibrator.html +417 -417
- package/doc/AudioPeer.html +251 -251
- package/doc/AudioRecorder.html +195 -195
- package/doc/ImpulseResponse.html +215 -215
- package/doc/Listener.html +308 -308
- package/doc/MlsGenInterface.html +226 -226
- package/doc/MyEventEmitter.html +274 -274
- package/doc/PythonServerAPI.html +109 -109
- package/doc/Speaker.html +276 -276
- package/doc/Takes%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +128 -128
- package/doc/Takes%20the%20url%20of%20the%20current%20site%0Aand%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +138 -138
- package/doc/Takes%20the%20url%20of%20the%20current%20site%20and%20a%20target%20element%20where%20html%20elements%20will%20be%20appended..html +137 -137
- package/doc/Volume.html +88 -88
- package/doc/audioCalibrator.js.html +179 -179
- package/doc/audioPeer.js.html +175 -175
- package/doc/audioRecorder.js.html +163 -163
- package/doc/creates%20a%20new%20AudioRecorder%20instance.%20%0ASets%20up%20the%20audio%20context%20and%20file%20reader..html +114 -114
- package/doc/fonts/OpenSans-Bold-webfont.svg +1829 -1829
- package/doc/fonts/OpenSans-BoldItalic-webfont.svg +1829 -1829
- package/doc/fonts/OpenSans-Italic-webfont.svg +1829 -1829
- package/doc/fonts/OpenSans-Light-webfont.svg +1830 -1830
- package/doc/fonts/OpenSans-LightItalic-webfont.svg +1834 -1834
- package/doc/fonts/OpenSans-Regular-webfont.svg +1830 -1830
- package/doc/global.html +308 -308
- package/doc/index.html +58 -58
- package/doc/listener.js.html +170 -170
- package/doc/mlsGen_mlsGenInterface.js.html +117 -117
- package/doc/myEventEmitter.js.html +124 -124
- package/doc/peer-connection_audioPeer.js.html +188 -188
- package/doc/peer-connection_listener.js.html +311 -311
- package/doc/peer-connection_speaker.js.html +381 -381
- package/doc/scripts/linenumber.js +25 -25
- package/doc/scripts/prettify/Apache-License-2.0.txt +202 -202
- package/doc/scripts/prettify/lang-css.js +24 -24
- package/doc/scripts/prettify/prettify.js +640 -640
- package/doc/server_PythonServerAPI.js.html +160 -160
- package/doc/speaker.js.html +248 -248
- package/doc/styles/jsdoc-default.css +371 -371
- package/doc/styles/prettify-jsdoc.css +111 -111
- package/doc/styles/prettify-tomorrow.css +163 -163
- package/doc/tasks_audioCalibrator.js.html +207 -207
- package/doc/tasks_audioRecorder.js.html +190 -190
- package/doc/tasks_impulse-response_impulseResponse.js.html +442 -442
- package/doc/tasks_impulse-response_mlsGen_mlsGenInterface.js.html +175 -175
- package/doc/tasks_volume_volume.js.html +185 -185
- package/doc/utils.js.html +105 -105
- package/jest.config.js +173 -173
- package/makefile +74 -0
- package/netlify.toml +26 -26
- package/package.json +78 -78
- package/src/config/firebase.js +26 -26
- package/src/index.html +21 -21
- package/src/listener-app/PhonePeer.js +474 -474
- package/src/listener-app/listener.js +380 -377
- package/src/main.js +22 -22
- package/src/myEventEmitter.js +83 -83
- package/src/peer-connection/audioPeer.js +100 -100
- package/src/peer-connection/listener.js +298 -299
- package/src/peer-connection/peerErrors.js +25 -25
- package/src/peer-connection/speaker.js +963 -963
- package/src/powerCheck.js +110 -110
- package/src/server/PythonServerAPI.js +959 -959
- package/src/tasks/combination/combination.js +3707 -3707
- package/src/tasks/combination/mlsGen/mlsGen.cpp +98 -98
- package/src/tasks/combination/mlsGen/mlsGen.hpp +303 -303
- package/src/tasks/combination/mlsGen/mlsGenInterface.js +131 -131
- package/src/tasks/combination/mlsGen/mlsGenTest.cpp +180 -180
- package/src/tasks/impulse-response/impulseResponse.js +610 -610
- package/src/tasks/impulse-response/mlsGen/mlsGen.cpp +98 -98
- package/src/tasks/impulse-response/mlsGen/mlsGen.hpp +303 -303
- package/src/tasks/impulse-response/mlsGen/mlsGenInterface.js +131 -131
- package/src/tasks/impulse-response/mlsGen/mlsGenTest.cpp +180 -180
- package/src/tasks/volume/volume.cpp +2 -2
- package/src/tasks/volume/volume.hpp +22 -22
- package/src/tasks/volume/volume.js +279 -279
- package/src/utils.js +205 -205
- package/webpack.config.js +65 -65
- package/.gitignore +0 -81
package/dist/example/index.html
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html class="no-js" lang="">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
|
6
|
-
<title>Sound Check</title>
|
|
7
|
-
<meta name="description" content="" />
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
9
|
-
|
|
10
|
-
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
11
|
-
<!--CSS-->
|
|
12
|
-
<link href="../example/styles.css" rel="stylesheet" typ="text/css" />
|
|
13
|
-
<link
|
|
14
|
-
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
|
|
15
|
-
rel="stylesheet"
|
|
16
|
-
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
|
|
17
|
-
crossorigin="anonymous"
|
|
18
|
-
/>
|
|
19
|
-
</head>
|
|
20
|
-
|
|
21
|
-
<body>
|
|
22
|
-
<!--[if lt IE 8]>
|
|
23
|
-
<p class="browserupgrade">
|
|
24
|
-
You are using an <strong>outdated</strong> browser. Please
|
|
25
|
-
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
|
|
26
|
-
</p>
|
|
27
|
-
<![endif]-->
|
|
28
|
-
<div class="container">
|
|
29
|
-
<h1>Check out /speaker</h1>
|
|
30
|
-
<p class="lead">
|
|
31
|
-
Go to <a id="speakerLink">/speaker</a> to simulate calibrating as part of an experiment
|
|
32
|
-
running on a participant's computer. The page will instruct the user on how to use their
|
|
33
|
-
mobile device as a calibration microphone.
|
|
34
|
-
</p>
|
|
35
|
-
</div>
|
|
36
|
-
<script type="text/javascript">
|
|
37
|
-
const speakerLink = '/speaker.html';
|
|
38
|
-
const baseURL = location.href.substring(0, location.href.lastIndexOf('/'));
|
|
39
|
-
document.getElementById('speakerLink').setAttribute('href', baseURL + speakerLink);
|
|
40
|
-
</script>
|
|
41
|
-
<script
|
|
42
|
-
src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
|
|
43
|
-
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
|
|
44
|
-
crossorigin="anonymous"
|
|
45
|
-
></script>
|
|
46
|
-
</body>
|
|
47
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html class="no-js" lang="">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
|
6
|
+
<title>Sound Check</title>
|
|
7
|
+
<meta name="description" content="" />
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
9
|
+
|
|
10
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
11
|
+
<!--CSS-->
|
|
12
|
+
<link href="../example/styles.css" rel="stylesheet" typ="text/css" />
|
|
13
|
+
<link
|
|
14
|
+
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
|
|
15
|
+
rel="stylesheet"
|
|
16
|
+
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
|
|
17
|
+
crossorigin="anonymous"
|
|
18
|
+
/>
|
|
19
|
+
</head>
|
|
20
|
+
|
|
21
|
+
<body>
|
|
22
|
+
<!--[if lt IE 8]>
|
|
23
|
+
<p class="browserupgrade">
|
|
24
|
+
You are using an <strong>outdated</strong> browser. Please
|
|
25
|
+
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
|
|
26
|
+
</p>
|
|
27
|
+
<![endif]-->
|
|
28
|
+
<div class="container">
|
|
29
|
+
<h1>Check out /speaker</h1>
|
|
30
|
+
<p class="lead">
|
|
31
|
+
Go to <a id="speakerLink">/speaker</a> to simulate calibrating as part of an experiment
|
|
32
|
+
running on a participant's computer. The page will instruct the user on how to use their
|
|
33
|
+
mobile device as a calibration microphone.
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
36
|
+
<script type="text/javascript">
|
|
37
|
+
const speakerLink = '/speaker.html';
|
|
38
|
+
const baseURL = location.href.substring(0, location.href.lastIndexOf('/'));
|
|
39
|
+
document.getElementById('speakerLink').setAttribute('href', baseURL + speakerLink);
|
|
40
|
+
</script>
|
|
41
|
+
<script
|
|
42
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
|
|
43
|
+
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
|
|
44
|
+
crossorigin="anonymous"
|
|
45
|
+
></script>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html class="no-js" lang="">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
|
6
|
-
<title>EasyEyes Listener</title>
|
|
7
|
-
<meta name="description" content="" />
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
9
|
-
|
|
10
|
-
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
11
|
-
|
|
12
|
-
<!-- CSS -->
|
|
13
|
-
<link href="../example/styles.css" rel="stylesheet" typ="text/css" />
|
|
14
|
-
<link
|
|
15
|
-
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
|
|
16
|
-
rel="stylesheet"
|
|
17
|
-
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
|
|
18
|
-
crossorigin="anonymous"
|
|
19
|
-
/>
|
|
20
|
-
<meta
|
|
21
|
-
http-equiv="Delegate-CH"
|
|
22
|
-
content="sec-ch-ua-full-version-list https://cloud.51degrees.com; sec-ch-ua-model https://cloud.51degrees.com; sec-ch-ua-platform https://cloud.51degrees.com; sec-ch-ua-platform-version https://cloud.51degrees.com"
|
|
23
|
-
/>
|
|
24
|
-
<!--<script src="https://www.unpkg.com/sound-check"> </script>-->
|
|
25
|
-
<script src="../main.js"></script>
|
|
26
|
-
<script src="../example/NoSleep.min.js"></script>
|
|
27
|
-
</head>
|
|
28
|
-
|
|
29
|
-
<body>
|
|
30
|
-
<!--[if lt IE 8]>
|
|
31
|
-
<p class="browserupgrade">
|
|
32
|
-
You are using an <strong>outdated</strong> browser. Please
|
|
33
|
-
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
|
|
34
|
-
</p>
|
|
35
|
-
<![endif]-->
|
|
36
|
-
<p class="turnMeToReadBelow" id="turnMeToReadBelow1"></p>
|
|
37
|
-
<div class="container" id="listenerContainer">
|
|
38
|
-
<div id="phrases">
|
|
39
|
-
<p id="recordingInProgress"></p>
|
|
40
|
-
<h1>Sound Calibration</h1>
|
|
41
|
-
<p class="lead" id="allowMicrophone"></p>
|
|
42
|
-
<p class="lead" id="message"></p>
|
|
43
|
-
<div class="col-6" , style="cursor: pointer">
|
|
44
|
-
<button
|
|
45
|
-
id="calibrationBeginButton"
|
|
46
|
-
type="button"
|
|
47
|
-
class="btn btn-success"
|
|
48
|
-
style="cursor: pointer"
|
|
49
|
-
>
|
|
50
|
-
Proceed
|
|
51
|
-
</button>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
<div id="updateDisplay">
|
|
55
|
-
<div class="col-6">
|
|
56
|
-
<div id="display"></div>
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
<p class="turnMeToReadBelow" id="turnMeToReadBelow"></p>
|
|
60
|
-
</div>
|
|
61
|
-
<script src="../listener.js"></script>
|
|
62
|
-
<script type="text/javascript"></script>
|
|
63
|
-
<script
|
|
64
|
-
src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
|
|
65
|
-
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
|
|
66
|
-
crossorigin="anonymous"
|
|
67
|
-
></script>
|
|
68
|
-
<script crossorigin src="https://cloud.51degrees.com/api/v4/AQSjtocCemq9y6-T20g.js"></script>
|
|
69
|
-
<script>
|
|
70
|
-
var noSleep = new NoSleep();
|
|
71
|
-
var wakeLockEnabled = false;
|
|
72
|
-
var calibrationBeginButton = document.getElementById('calibrationBeginButton');
|
|
73
|
-
if (calibrationBeginButton) {
|
|
74
|
-
calibrationBeginButton.addEventListener('click', function () {
|
|
75
|
-
console.log('enable no sleep!');
|
|
76
|
-
noSleep.enable();
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
</script>
|
|
80
|
-
</body>
|
|
81
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html class="no-js" lang="">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
|
6
|
+
<title>EasyEyes Listener</title>
|
|
7
|
+
<meta name="description" content="" />
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
9
|
+
|
|
10
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
11
|
+
|
|
12
|
+
<!-- CSS -->
|
|
13
|
+
<link href="../example/styles.css" rel="stylesheet" typ="text/css" />
|
|
14
|
+
<link
|
|
15
|
+
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
|
|
16
|
+
rel="stylesheet"
|
|
17
|
+
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
|
|
18
|
+
crossorigin="anonymous"
|
|
19
|
+
/>
|
|
20
|
+
<meta
|
|
21
|
+
http-equiv="Delegate-CH"
|
|
22
|
+
content="sec-ch-ua-full-version-list https://cloud.51degrees.com; sec-ch-ua-model https://cloud.51degrees.com; sec-ch-ua-platform https://cloud.51degrees.com; sec-ch-ua-platform-version https://cloud.51degrees.com"
|
|
23
|
+
/>
|
|
24
|
+
<!--<script src="https://www.unpkg.com/sound-check"> </script>-->
|
|
25
|
+
<script src="../main.js"></script>
|
|
26
|
+
<script src="../example/NoSleep.min.js"></script>
|
|
27
|
+
</head>
|
|
28
|
+
|
|
29
|
+
<body>
|
|
30
|
+
<!--[if lt IE 8]>
|
|
31
|
+
<p class="browserupgrade">
|
|
32
|
+
You are using an <strong>outdated</strong> browser. Please
|
|
33
|
+
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
|
|
34
|
+
</p>
|
|
35
|
+
<![endif]-->
|
|
36
|
+
<p class="turnMeToReadBelow" id="turnMeToReadBelow1"></p>
|
|
37
|
+
<div class="container" id="listenerContainer">
|
|
38
|
+
<div id="phrases">
|
|
39
|
+
<p id="recordingInProgress"></p>
|
|
40
|
+
<h1>Sound Calibration</h1>
|
|
41
|
+
<p class="lead" id="allowMicrophone"></p>
|
|
42
|
+
<p class="lead" id="message"></p>
|
|
43
|
+
<div class="col-6" , style="cursor: pointer">
|
|
44
|
+
<button
|
|
45
|
+
id="calibrationBeginButton"
|
|
46
|
+
type="button"
|
|
47
|
+
class="btn btn-success"
|
|
48
|
+
style="cursor: pointer"
|
|
49
|
+
>
|
|
50
|
+
Proceed
|
|
51
|
+
</button>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div id="updateDisplay">
|
|
55
|
+
<div class="col-6">
|
|
56
|
+
<div id="display"></div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<p class="turnMeToReadBelow" id="turnMeToReadBelow"></p>
|
|
60
|
+
</div>
|
|
61
|
+
<script src="../listener.js"></script>
|
|
62
|
+
<script type="text/javascript"></script>
|
|
63
|
+
<script
|
|
64
|
+
src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
|
|
65
|
+
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
|
|
66
|
+
crossorigin="anonymous"
|
|
67
|
+
></script>
|
|
68
|
+
<script crossorigin src="https://cloud.51degrees.com/api/v4/AQSjtocCemq9y6-T20g.js"></script>
|
|
69
|
+
<script>
|
|
70
|
+
var noSleep = new NoSleep();
|
|
71
|
+
var wakeLockEnabled = false;
|
|
72
|
+
var calibrationBeginButton = document.getElementById('calibrationBeginButton');
|
|
73
|
+
if (calibrationBeginButton) {
|
|
74
|
+
calibrationBeginButton.addEventListener('click', function () {
|
|
75
|
+
console.log('enable no sleep!');
|
|
76
|
+
noSleep.enable();
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
</script>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|
package/dist/example/server.js
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
-
const express = require('express');
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
const app = express();
|
|
6
|
-
const port = 3000;
|
|
7
|
-
|
|
8
|
-
app.use('/', express.static(path.join(__dirname, '/../'))); // serve the distribution folder
|
|
9
|
-
|
|
10
|
-
// Middleware to check we have all the params we need
|
|
11
|
-
const checkParams = (req, res, next) => {
|
|
12
|
-
if (!Object.prototype.hasOwnProperty.call(req.query, 'speakerPeerId')) {
|
|
13
|
-
console.log('No peerID given.');
|
|
14
|
-
throw new Error('No peerID given -- unable to connect to peer.');
|
|
15
|
-
}
|
|
16
|
-
next();
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
// Simple Routing
|
|
20
|
-
app.get('/', (req, res) => {
|
|
21
|
-
res.sendFile(path.join(__dirname, 'index.html'));
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
app.get('/speaker', (req, res) => {
|
|
25
|
-
res.sendFile(path.join(__dirname, 'speaker.html'));
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
app.get('/listener', checkParams, (req, res) => {
|
|
29
|
-
res.sendFile(path.join(__dirname, 'listener.html'));
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
app.use((err, req, res, next) => {
|
|
33
|
-
res.status(err.status || 500);
|
|
34
|
-
res.send({
|
|
35
|
-
error: err.message,
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
app.use((req, res) => {
|
|
40
|
-
res.status(404);
|
|
41
|
-
res.send({
|
|
42
|
-
error: '404 not found',
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
// if (!module.parent) {
|
|
47
|
-
// app.listen(port);
|
|
48
|
-
// console.log(`Express started`);
|
|
49
|
-
// }
|
|
50
|
-
|
|
51
|
-
app.listen(process.env.PORT || port);
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
const express = require('express');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const app = express();
|
|
6
|
+
const port = 3000;
|
|
7
|
+
|
|
8
|
+
app.use('/', express.static(path.join(__dirname, '/../'))); // serve the distribution folder
|
|
9
|
+
|
|
10
|
+
// Middleware to check we have all the params we need
|
|
11
|
+
const checkParams = (req, res, next) => {
|
|
12
|
+
if (!Object.prototype.hasOwnProperty.call(req.query, 'speakerPeerId')) {
|
|
13
|
+
console.log('No peerID given.');
|
|
14
|
+
throw new Error('No peerID given -- unable to connect to peer.');
|
|
15
|
+
}
|
|
16
|
+
next();
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// Simple Routing
|
|
20
|
+
app.get('/', (req, res) => {
|
|
21
|
+
res.sendFile(path.join(__dirname, 'index.html'));
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
app.get('/speaker', (req, res) => {
|
|
25
|
+
res.sendFile(path.join(__dirname, 'speaker.html'));
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
app.get('/listener', checkParams, (req, res) => {
|
|
29
|
+
res.sendFile(path.join(__dirname, 'listener.html'));
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
app.use((err, req, res, next) => {
|
|
33
|
+
res.status(err.status || 500);
|
|
34
|
+
res.send({
|
|
35
|
+
error: err.message,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
app.use((req, res) => {
|
|
40
|
+
res.status(404);
|
|
41
|
+
res.send({
|
|
42
|
+
error: '404 not found',
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// if (!module.parent) {
|
|
47
|
+
// app.listen(port);
|
|
48
|
+
// console.log(`Express started`);
|
|
49
|
+
// }
|
|
50
|
+
|
|
51
|
+
app.listen(process.env.PORT || port);
|