@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
61 lines • 10.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DiscoverableMetaHostCollection = void 0;
class DiscoverableMetaHostCollection {
static addClassMetaHostLink(target, metadataKey) {
this.metaHostLinks.set(target, metadataKey);
}
static inspectProvider(hostContainerRef, instanceWrapper) {
return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.providersByMetaKey);
}
static inspectController(hostContainerRef, instanceWrapper) {
return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.controllersByMetaKey);
}
static insertByMetaKey(metaKey, instanceWrapper, collection) {
if (collection.has(metaKey)) {
const wrappers = collection.get(metaKey);
wrappers.add(instanceWrapper);
}
else {
const wrappers = new Set();
wrappers.add(instanceWrapper);
collection.set(metaKey, wrappers);
}
}
static getProvidersByMetaKey(hostContainerRef, metaKey) {
var _a;
const wrappersByMetaKey = this.providersByMetaKey.get(hostContainerRef);
return (_a = wrappersByMetaKey === null || wrappersByMetaKey === void 0 ? void 0 : wrappersByMetaKey.get(metaKey)) !== null && _a !== void 0 ? _a : new Set();
}
static getControllersByMetaKey(hostContainerRef, metaKey) {
var _a;
const wrappersByMetaKey = this.controllersByMetaKey.get(hostContainerRef);
return (_a = wrappersByMetaKey === null || wrappersByMetaKey === void 0 ? void 0 : wrappersByMetaKey.get(metaKey)) !== null && _a !== void 0 ? _a : new Set();
}
static inspectInstanceWrapper(hostContainerRef, instanceWrapper, wrapperByMetaKeyMap) {
const metaKey = DiscoverableMetaHostCollection.getMetaKeyByInstanceWrapper(instanceWrapper);
if (!metaKey) {
return;
}
let collection;
if (wrapperByMetaKeyMap.has(hostContainerRef)) {
collection = wrapperByMetaKeyMap.get(hostContainerRef);
}
else {
collection = new Map();
wrapperByMetaKeyMap.set(hostContainerRef, collection);
}
this.insertByMetaKey(metaKey, instanceWrapper, collection);
}
static getMetaKeyByInstanceWrapper(instanceWrapper) {
var _a, _b;
return this.metaHostLinks.get(instanceWrapper.metaType || instanceWrapper.inject
? ((_b = (_a = instanceWrapper.instance) === null || _a === void 0 ? void 0 : _a.constructor) !== null && _b !== void 0 ? _b : instanceWrapper.metaType)
: instanceWrapper.metaType);
}
}
exports.DiscoverableMetaHostCollection = DiscoverableMetaHostCollection;
DiscoverableMetaHostCollection.metaHostLinks = new Map();
DiscoverableMetaHostCollection.providersByMetaKey = new WeakMap();
DiscoverableMetaHostCollection.controllersByMetaKey = new WeakMap();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXJhYmxlLW1ldGEtaG9zdC1jb2xsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9kaXNjb3ZlcnkvZGlzY292ZXJhYmxlLW1ldGEtaG9zdC1jb2xsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSw4QkFBOEI7SUFhaEMsTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxNQUF1QixFQUN2QixXQUFtQjtRQUVuQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQzNCLGdCQUFrQyxFQUNsQyxlQUFnQztRQUVoQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FDaEMsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixJQUFJLENBQUMsa0JBQWtCLENBQ3hCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUM3QixnQkFBa0MsRUFDbEMsZUFBZ0M7UUFFaEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQ2hDLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsSUFBSSxDQUFDLG9CQUFvQixDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQzNCLE9BQWUsRUFDZixlQUFnQyxFQUNoQyxVQUE2QztRQUU3QyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztZQUM1QyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUNqQyxnQkFBa0MsRUFDbEMsT0FBZTs7UUFFZixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RSxPQUFPLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxtQ0FBSSxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUN2RSxDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxnQkFBa0MsRUFDbEMsT0FBZTs7UUFFZixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRSxPQUFPLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxtQ0FBSSxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUN2RSxDQUFDO0lBRU8sTUFBTSxDQUFDLHNCQUFzQixDQUNuQyxnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsbUJBR0M7UUFFRCxNQUFNLE9BQU8sR0FDWCw4QkFBOEIsQ0FBQywyQkFBMkIsQ0FDeEQsZUFBZSxDQUNoQixDQUFDO1FBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFVBQTZDLENBQUM7UUFDbEQsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQzlDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztZQUNyRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sTUFBTSxDQUFDLDJCQUEyQixDQUN4QyxlQUFxQzs7UUFFckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDM0IsZUFBZSxDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsTUFBTTtZQUNoRCxDQUFDLENBQUMsQ0FBQyxNQUFBLE1BQUEsZUFBZSxDQUFDLFFBQVEsMENBQUUsV0FBVyxtQ0FBSSxlQUFlLENBQUMsUUFBUSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUM3QixDQUFDO0lBQ0osQ0FBQzs7QUEzR0wsd0VBNEdHO0FBM0d3Qiw0Q0FBYSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO0FBRWxELGlEQUFrQixHQUFHLElBQUksT0FBTyxFQUdyRCxDQUFDO0FBRW9CLG1EQUFvQixHQUFHLElBQUksT0FBTyxFQUd2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zdGFuY2VXcmFwcGVyLCBNb2R1bGVzQ29udGFpbmVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvaW5qZWN0b3JcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi4vLi4vY29udHJhY3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBEaXNjb3ZlcmFibGVNZXRhSG9zdENvbGxlY3Rpb24ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgbWV0YUhvc3RMaW5rcyA9IG5ldyBNYXA8VHlwZSB8IEZ1bmN0aW9uLCBzdHJpbmc+KCk7XG4gIFxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHByb3ZpZGVyc0J5TWV0YUtleSA9IG5ldyBXZWFrTWFwPFxuICAgICAgTW9kdWxlc0NvbnRhaW5lcixcbiAgICAgIE1hcDxzdHJpbmcsIFNldDxJbnN0YW5jZVdyYXBwZXI+PlxuICAgID4oKTtcbiAgXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgY29udHJvbGxlcnNCeU1ldGFLZXkgPSBuZXcgV2Vha01hcDxcbiAgICAgIE1vZHVsZXNDb250YWluZXIsXG4gICAgICBNYXA8c3RyaW5nLCBTZXQ8SW5zdGFuY2VXcmFwcGVyPj5cbiAgICA+KCk7XG4gIFxuICAgIHB1YmxpYyBzdGF0aWMgYWRkQ2xhc3NNZXRhSG9zdExpbmsoXG4gICAgICB0YXJnZXQ6IFR5cGUgfCBGdW5jdGlvbixcbiAgICAgIG1ldGFkYXRhS2V5OiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICB0aGlzLm1ldGFIb3N0TGlua3Muc2V0KHRhcmdldCwgbWV0YWRhdGFLZXkpO1xuICAgIH1cbiBcbiAgICBwdWJsaWMgc3RhdGljIGluc3BlY3RQcm92aWRlcihcbiAgICAgIGhvc3RDb250YWluZXJSZWY6IE1vZHVsZXNDb250YWluZXIsXG4gICAgICBpbnN0YW5jZVdyYXBwZXI6IEluc3RhbmNlV3JhcHBlcixcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmluc3BlY3RJbnN0YW5jZVdyYXBwZXIoXG4gICAgICAgIGhvc3RDb250YWluZXJSZWYsXG4gICAgICAgIGluc3RhbmNlV3JhcHBlcixcbiAgICAgICAgdGhpcy5wcm92aWRlcnNCeU1ldGFLZXksXG4gICAgICApO1xuICAgIH1cbiAgXG4gICAgcHVibGljIHN0YXRpYyBpbnNwZWN0Q29udHJvbGxlcihcbiAgICAgIGhvc3RDb250YWluZXJSZWY6IE1vZHVsZXNDb250YWluZXIsXG4gICAgICBpbnN0YW5jZVdyYXBwZXI6IEluc3RhbmNlV3JhcHBlcixcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmluc3BlY3RJbnN0YW5jZVdyYXBwZXIoXG4gICAgICAgIGhvc3RDb250YWluZXJSZWYsXG4gICAgICAgIGluc3RhbmNlV3JhcHBlcixcbiAgICAgICAgdGhpcy5jb250cm9sbGVyc0J5TWV0YUtleSxcbiAgICAgICk7XG4gICAgfVxuICBcbiAgICBwdWJsaWMgc3RhdGljIGluc2VydEJ5TWV0YUtleShcbiAgICAgIG1ldGFLZXk6IHN0cmluZyxcbiAgICAgIGluc3RhbmNlV3JhcHBlcjogSW5zdGFuY2VXcmFwcGVyLFxuICAgICAgY29sbGVjdGlvbjogTWFwPHN0cmluZywgU2V0PEluc3RhbmNlV3JhcHBlcj4+LFxuICAgICkge1xuICAgICAgaWYgKGNvbGxlY3Rpb24uaGFzKG1ldGFLZXkpKSB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJzID0gY29sbGVjdGlvbi5nZXQobWV0YUtleSk7XG4gICAgICAgIHdyYXBwZXJzLmFkZChpbnN0YW5jZVdyYXBwZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlcnMgPSBuZXcgU2V0PEluc3RhbmNlV3JhcHBlcj4oKTtcbiAgICAgICAgd3JhcHBlcnMuYWRkKGluc3RhbmNlV3JhcHBlcik7XG4gICAgICAgIGNvbGxlY3Rpb24uc2V0KG1ldGFLZXksIHdyYXBwZXJzKTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvdmlkZXJzQnlNZXRhS2V5KFxuICAgICAgaG9zdENvbnRhaW5lclJlZjogTW9kdWxlc0NvbnRhaW5lcixcbiAgICAgIG1ldGFLZXk6IHN0cmluZyxcbiAgICApOiBTZXQ8SW5zdGFuY2VXcmFwcGVyPiB7XG4gICAgICBjb25zdCB3cmFwcGVyc0J5TWV0YUtleSA9IHRoaXMucHJvdmlkZXJzQnlNZXRhS2V5LmdldChob3N0Q29udGFpbmVyUmVmKTtcbiAgICAgIHJldHVybiB3cmFwcGVyc0J5TWV0YUtleT8uZ2V0KG1ldGFLZXkpID8/IG5ldyBTZXQ8SW5zdGFuY2VXcmFwcGVyPigpO1xuICAgIH1cbiAgXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb250cm9sbGVyc0J5TWV0YUtleShcbiAgICAgIGhvc3RDb250YWluZXJSZWY6IE1vZHVsZXNDb250YWluZXIsXG4gICAgICBtZXRhS2V5OiBzdHJpbmcsXG4gICAgKTogU2V0PEluc3RhbmNlV3JhcHBlcj4ge1xuICAgICAgY29uc3Qgd3JhcHBlcnNCeU1ldGFLZXkgPSB0aGlzLmNvbnRyb2xsZXJzQnlNZXRhS2V5LmdldChob3N0Q29udGFpbmVyUmVmKTtcbiAgICAgIHJldHVybiB3cmFwcGVyc0J5TWV0YUtleT8uZ2V0KG1ldGFLZXkpID8/IG5ldyBTZXQ8SW5zdGFuY2VXcmFwcGVyPigpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBzdGF0aWMgaW5zcGVjdEluc3RhbmNlV3JhcHBlcihcbiAgICAgIGhvc3RDb250YWluZXJSZWY6IE1vZHVsZXNDb250YWluZXIsXG4gICAgICBpbnN0YW5jZVdyYXBwZXI6IEluc3RhbmNlV3JhcHBlcixcbiAgICAgIHdyYXBwZXJCeU1ldGFLZXlNYXA6IFdlYWtNYXA8XG4gICAgICAgIE1vZHVsZXNDb250YWluZXIsXG4gICAgICAgIE1hcDxzdHJpbmcsIFNldDxJbnN0YW5jZVdyYXBwZXI+PlxuICAgICAgPixcbiAgICApIHtcbiAgICAgIGNvbnN0IG1ldGFLZXkgPVxuICAgICAgICBEaXNjb3ZlcmFibGVNZXRhSG9zdENvbGxlY3Rpb24uZ2V0TWV0YUtleUJ5SW5zdGFuY2VXcmFwcGVyKFxuICAgICAgICAgIGluc3RhbmNlV3JhcHBlcixcbiAgICAgICAgKTtcbiAgICAgIGlmICghbWV0YUtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gIFxuICAgICAgbGV0IGNvbGxlY3Rpb246IE1hcDxzdHJpbmcsIFNldDxJbnN0YW5jZVdyYXBwZXI+PjtcbiAgICAgIGlmICh3cmFwcGVyQnlNZXRhS2V5TWFwLmhhcyhob3N0Q29udGFpbmVyUmVmKSkge1xuICAgICAgICBjb2xsZWN0aW9uID0gd3JhcHBlckJ5TWV0YUtleU1hcC5nZXQoaG9zdENvbnRhaW5lclJlZik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xsZWN0aW9uID0gbmV3IE1hcDxzdHJpbmcsIFNldDxJbnN0YW5jZVdyYXBwZXI+PigpO1xuICAgICAgICB3cmFwcGVyQnlNZXRhS2V5TWFwLnNldChob3N0Q29udGFpbmVyUmVmLCBjb2xsZWN0aW9uKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5zZXJ0QnlNZXRhS2V5KG1ldGFLZXksIGluc3RhbmNlV3JhcHBlciwgY29sbGVjdGlvbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRNZXRhS2V5QnlJbnN0YW5jZVdyYXBwZXIoXG4gICAgICBpbnN0YW5jZVdyYXBwZXI6IEluc3RhbmNlV3JhcHBlcjxhbnk+LFxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMubWV0YUhvc3RMaW5rcy5nZXQoXG4gICAgICAgIGluc3RhbmNlV3JhcHBlci5tZXRhVHlwZSB8fCBpbnN0YW5jZVdyYXBwZXIuaW5qZWN0XG4gICAgICAgICAgPyAoaW5zdGFuY2VXcmFwcGVyLmluc3RhbmNlPy5jb25zdHJ1Y3RvciA/PyBpbnN0YW5jZVdyYXBwZXIubWV0YVR5cGUpXG4gICAgICAgICAgOiBpbnN0YW5jZVdyYXBwZXIubWV0YVR5cGUsXG4gICAgICApO1xuICAgIH1cbiAgfVxuICAiXX0=