jiti-meet/react/features/base/util/loadScript.native.js

29 lines
920 B
JavaScript
Raw Normal View History

/**
2016-12-07 22:00:54 +00:00
* Loads a script from a specific URL. React Native cannot load a JS
* file/resource/URL via a <script> HTML element, so the implementation
* fetches the specified src as plain text using fetch() and then
* evaluates the fetched string as JavaScript code (i.e. via the {@link eval}
* function).
*
2016-12-07 22:00:54 +00:00
* @param {string} url - The absolute URL from the which the script is to be
* (down)loaded.
* @returns {void}
*/
2016-12-07 22:00:54 +00:00
export function loadScript(url) {
return (
fetch(url, { method: 'GET' })
2016-12-07 22:00:54 +00:00
.then(response => {
switch (response.status) {
case 200:
return response.responseText || response.text();
default:
throw response.statusText;
}
2016-12-07 22:00:54 +00:00
})
.then(responseText => {
eval.call(window, responseText); // eslint-disable-line no-eval
}));
}