qcobjects
Version:
QCObjects is an Open-source framework that empowers full-stack developers to make micro-services and micro-frontends into an N-Tier architecture.
74 lines (73 loc) • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SourceJS = void 0;
const basePath_1 = require("./basePath");
const Cast_1 = require("./Cast");
const domain_1 = require("./domain");
const DOMCreateElement_1 = require("./DOMCreateElement");
const InheritClass_1 = require("./InheritClass");
const Package_1 = require("./Package");
const Logger_1 = require("./Logger");
class SourceJS extends InheritClass_1.InheritClass {
domain = domain_1._domain_;
basePath = basePath_1._basePath_;
type = "text/javascript";
containerTag = "body";
url = "";
data = {};
async = false;
external = false;
constructor(o) {
super(o);
this.body = (0, DOMCreateElement_1._DOMCreateElement)("script");
}
set(name, value) {
this[name] = value;
}
get(name, _default) {
return this[name] || _default;
}
status = false;
done() { }
fail() { }
rebuild() {
const context = this;
try {
document.getElementsByTagName(context.containerTag)[0].appendChild((function (s, url, context) {
s.type = context.type;
s.src = url;
s.crossOrigin = (Object.hasOwn(context, "crossOrigin")) ? (context.crossOrigin) : ("anonymous");
s.async = context.async;
s.onreadystatechange = function () {
if (this.readyState === "complete") {
context.done.call(context);
}
};
s.onload = function (e) {
context.status = true;
context.done.call(context, e);
};
s.onerror = function (e) {
context.status = false;
context.fail.call(context, e);
};
context.body = s;
return s;
}).call(this, (0, DOMCreateElement_1._DOMCreateElement)("script"), (this.external) ? (this.url) : (this.basePath + this.url), context));
}
catch (e) {
context.status = false;
Logger_1.logger.debug(`An error ocurred: ${e}`);
context.fail();
}
}
Cast(o) {
return (0, Cast_1._Cast)(this, o);
}
_new_(properties) {
this.__new__(properties);
this.rebuild();
}
}
exports.SourceJS = SourceJS;
(0, Package_1.Package)("com.qcobjects", [SourceJS]);