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.
103 lines (102 loc) • 4.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.get = exports.set = exports.setConfigService = exports.configService = exports.buildComponentsStack = exports.resetTop = exports.componentsStack = exports._top = void 0;
const ComponentFactory_1 = require("./ComponentFactory");
const Cast_1 = require("./Cast");
const globalSettings_1 = require("./globalSettings");
const Class_1 = require("./Class");
const ClassFactory_1 = require("./ClassFactory");
const Export_1 = require("./Export");
const platform_1 = require("./platform");
const PrimaryCollections_1 = require("./PrimaryCollections");
const Logger_1 = require("./Logger");
exports._top = ((typeof module !== "undefined" && typeof module.exports !== "undefined" && module.exports) ||
(typeof global !== "undefined" && global) ||
(typeof globalThis !== "undefined" && globalThis) ||
(typeof window !== "undefined" && window) ||
(typeof self !== "undefined" && self !== null && self) ||
this);
exports._top.lastCache = undefined;
exports.componentsStack = [];
const resetTop = () => {
const globalSettings = globalSettings_1.GlobalSettings.instance;
exports._top = (0, Cast_1._CastProps)(globalSettings, exports._top, true);
};
exports.resetTop = resetTop;
const buildComponentsStack = () => {
exports.componentsStack = (0, ComponentFactory_1.buildComponents)(document);
};
exports.buildComponentsStack = buildComponentsStack;
const setConfigService = (_configService) => {
exports._top.global.configService = _configService;
exports.configService = _configService;
};
exports.setConfigService = setConfigService;
const set = (name, value) => {
exports._top[name] = value;
};
exports.set = set;
const get = (name, _defaultValue) => {
return exports._top[name] || _defaultValue;
};
exports.get = get;
(0, exports.resetTop)();
const _define_props = function (_top) {
if (!Object.hasOwn(_top, "PackagesList")) {
Object.defineProperty(_top, "PackagesList", {
// eslint-disable-next-line no-unused-vars
set: (value) => {
Logger_1.logger.debug("PackagesList is readonly");
},
get: () => {
return (0, PrimaryCollections_1.getPackagesList)();
}
});
}
if (!Object.hasOwn(_top, "PackagesNameList")) {
Object.defineProperty(_top, "PackagesNameList", {
// eslint-disable-next-line no-unused-vars
set: (val) => {
Logger_1.logger.debug("PackagesNameList is readonly");
},
get: () => {
return (0, PrimaryCollections_1.getPackagesNamesList)();
}
});
}
if (!Object.hasOwn(_top, "ClassesList")) {
Object.defineProperty(_top, "ClassesList", {
// eslint-disable-next-line no-unused-vars
set: (value) => {
Logger_1.logger.debug("ClassesList is readonly");
},
get: () => {
return (0, PrimaryCollections_1.getClassesList)();
}
});
}
if (!Object.hasOwn(_top, "ClassesNameList")) {
Object.defineProperty(_top, "ClassesNameList", {
// eslint-disable-next-line no-unused-vars
set(value) {
Logger_1.logger.debug("ClassesNameList is readonly");
},
get: () => {
return (0, PrimaryCollections_1.getClassesNamesList)();
}
});
}
};
if (platform_1.isBrowser) {
// use of GLOBAL word is deprecated in node.js
// this is only for compatibility purpose with old versions of QCObjects in browsers
(0, Class_1.Class)("GLOBAL", PrimaryCollections_1._QC_CLASSES.global); // case insensitive for compatibility con old versions;
(0, Export_1.Export)((0, ClassFactory_1.ClassFactory)("GLOBAL"));
}
if (platform_1.isBrowser && typeof window !== "undefined") {
(0, exports.set)("global", window);
}
else if (platform_1.isBrowser && typeof globalThis !== "undefined") {
(0, exports.set)("global", globalThis);
}
_define_props(exports._top);