[skip CI]smart github CDN with custom script

This commit is contained in:
Klemek
2019-07-17 19:21:24 +02:00
parent 59ed593abf
commit a8504b8cc4
3 changed files with 59 additions and 34 deletions
-6
View File
@@ -1,6 +0,0 @@
#!/usr/bin/env bash
# temporary file
npm run prepublishOnly
cp dist/*.min.js docs
+30
View File
@@ -0,0 +1,30 @@
const github = (repo) => {
const self = {
loadScript: (file) => new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open('GET', `https://raw.githubusercontent.com/${repo}/master/${file}`);
xhr.onload = function () {
if (xhr.status === 200) {
const u = URL.createObjectURL(new Blob([xhr.responseText], {type: 'text/javascript'}));
const s = document.createElement('script');
s.src = u;
s.onload = resolve;
s.onerror = reject;
document.body.appendChild(s);
document.body.removeChild(s);
URL.revokeObjectURL(u);
} else
reject();
};
xhr.send();
}),
loadScripts: (...files) => new Promise((resolve, reject) => {
if (!files || !files.length)
return resolve();
self.loadScript(files.splice(0, 1)).then(() => {
self.loadScripts(...files).then(resolve);
}).catch(reject);
})
};
return self;
};
+3 -2
View File
@@ -5,8 +5,7 @@
<title>fa-diagrams example</title> <title>fa-diagrams example</title>
<script src="jquery-3.4.1.min.js"></script> <script src="jquery-3.4.1.min.js"></script>
<script src="yaml.min.js"></script> <script src="yaml.min.js"></script>
<script src="https://cdn.rawgit.com/Klemek/fa-diagrams/master/dist/fa-diagrams-data.min.js"></script> <script src="github-cdn.js"></script>
<script src="https://cdn.rawgit.com/Klemek/fa-diagrams/master/dist/fa-diagrams.min.js"></script>
<style> <style>
* { * {
padding: 0; padding: 0;
@@ -50,6 +49,7 @@
<div id="right"></div> <div id="right"></div>
<script> <script>
$(document).ready(() => { $(document).ready(() => {
github('klemek/fa-diagrams').loadScripts('dist/fa-diagrams-data.min.js', 'dist/fa-diagrams.min.js').then(function () {
$.get('sample.yml', (data) => { $.get('sample.yml', (data) => {
$('#input').val(data).trigger('paste'); $('#input').val(data).trigger('paste');
}); });
@@ -77,6 +77,7 @@
}, 500); }, 500);
}); });
}); });
});
</script> </script>
</body> </body>
</html> </html>