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.
30 lines (29 loc) • 944 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NamespaceRef = void 0;
const isQCObjects_1 = require("./isQCObjects");
const Package_1 = require("./Package");
/**
* Declare Namespace
*
* @param {String} packageName
* @param {Object} package
*/
const NamespaceRef = function (namespace) {
const packageInstance = (0, Package_1.Package)(namespace) || [];
const classes = packageInstance.filter((c) => (0, isQCObjects_1.isQCObjects_Class)(c)).map((c) => {
return {
[c.__definition.__classType]: c
};
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
}).reduce((a, b) => { return Object.assign(a, b); });
return namespace.split(".").map(c => {
return {
[c]: classes
};
}).reverse().reduce((a, b) => {
b[Object.keys(b).join(".")] = a;
return b;
});
};
exports.NamespaceRef = NamespaceRef;