Files
freeCodeCamp/client/commonFramework/add-faux-stream.js
Berkeley Martinez 29f90505b7 More refactoring
2015-11-29 16:27:14 -08:00

38 lines
856 B
JavaScript

window.common = (function(global) {
const {
$,
Rx: { Observable, Disposable },
common = { init: [] }
} = global;
function getFaux() {
return new Observable(function(observer) {
const jqXHR = $.get('/js/faux.js')
.success(data => observer.onNext(data))
.fail(e => observer.onError(e))
.always(() => observer.onCompleted());
return new Disposable(() => {
jqXHR.abort();
});
});
}
const faux$ = getFaux().shareReplay();
common.safeHTMLRun = function safeHTMLRun(code) {
if (!code.match(/\<script\>/gi)) {
return Observable.just(code);
}
// grab user javaScript
var scriptCode = code
.split(/\<\s?script\s?\>/gi)[1]
.split(/\<\s?\/\s?script\s?\>/gi)[0];
return faux$.map(faux => faux + scriptCode);
};
return common;
}(window));