UNPKG

piumino

Version:

Piumino, meaning duvet in Italian, is like a duvet over the bed called Angular TestBed. It provides test helpers to test trivial things like inputs and outputs with a single line.

43 lines (42 loc) 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NgHelper = void 0; const core_1 = require("@angular/core"); const types_1 = require("../types"); const object_helper_1 = require("./object.helper"); class NgHelper { static getProperty(element, property) { if (element.nativeElement.hasAttribute(property)) { return element.nativeElement.getAttribute(property); } for (const token of element.providerTokens) { const provider = object_helper_1.ObjectHelper.isObject(token) && token.provide ? token.provide : token; const instance = element.injector.get(provider); const propertyMap = NgHelper.getDirectivePropertyMap(instance); if (propertyMap[property] in instance) { return instance[propertyMap[property]]; } } return types_1.NOTHING; } static hasProperty(element, property) { return NgHelper.getProperty(element, property) !== types_1.NOTHING; } static getDirectivePropertyMap(directive) { const propertyMap = {}; const metadata = this.reflectionCapabilities.propMetadata(directive.constructor); if (metadata) { for (const [property, decorators] of Object.entries(metadata)) { propertyMap[property] = property; for (const decorator of decorators) { if (decorator.bindingPropertyName) { propertyMap[decorator.bindingPropertyName] = property; } } } } return propertyMap; } } exports.NgHelper = NgHelper; NgHelper.reflectionCapabilities = new core_1.ɵReflectionCapabilities();