@kephas/reflection
Version:
Provides reflection capabilities, like TypeInfoRegistry, ITypeInfo, and IProperty.
36 lines • 4.7 kB
JavaScript
import { DisplayInfo } from "./displayInfo";
import { ReflectionError } from "./reflectionError";
/**
* Provides basic implementation of reflection elements.
*
* @export
* @class ElementInfo
*/
export class ElementInfo {
/**
* Creates an instance of ElementInfo.
*
* @param {string} name The element name.
* @param {string} [fullName] Optional. The full name of the element.
* @param {DisplayInfo} [displayInfo] Optional. The display information.
* @param {ITypeInfoRegistry} [registry] The root type info registry.
* @memberof ElementInfo
*/
constructor({ name, fullName, displayInfo, registry, ...args }) {
/**
* Gets the element name.
*
* @type {string}
* @memberof IElementInfo
*/
this.name = '';
if (!name) {
throw new ReflectionError('The name must be provided.');
}
this.name = name;
this.fullName = fullName || this.name;
this.displayInfo = displayInfo || new DisplayInfo();
Object.assign(this, args);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudEluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXBoYXMvcmVmbGVjdGlvbi9zcmMvbGliL2VsZW1lbnRJbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixXQUFXO0lBd0I3Qjs7Ozs7Ozs7T0FRRztJQUNILFlBQ0ksRUFDSSxJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxRQUFRLEVBQ1IsR0FBRyxJQUFJLEVBT1Y7UUE3Q0w7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBd0N2QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsTUFBTSxJQUFJLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpc3BsYXlJbmZvIH0gZnJvbSBcIi4vZGlzcGxheUluZm9cIjtcclxuaW1wb3J0IHsgSUVsZW1lbnRJbmZvLCBJVHlwZUluZm9SZWdpc3RyeSB9IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgUmVmbGVjdGlvbkVycm9yIH0gZnJvbSBcIi4vcmVmbGVjdGlvbkVycm9yXCI7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgcmVmbGVjdGlvbiBlbGVtZW50cy5cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRWxlbWVudEluZm9cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGVtZW50SW5mbyBpbXBsZW1lbnRzIElFbGVtZW50SW5mbyB7XHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGVsZW1lbnQgbmFtZS5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQG1lbWJlcm9mIElFbGVtZW50SW5mb1xyXG4gICAgICovXHJcbiAgICByZWFkb25seSBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGVsZW1lbnQgZnVsbCBuYW1lLlxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAbWVtYmVyb2YgRWxlbWVudEluZm9cclxuICAgICAqL1xyXG4gICAgcmVhZG9ubHkgZnVsbE5hbWU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGxvY2FsaXplZCBkaXNwbGF5IGluZm9ybWF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBFbGVtZW50SW5mb1xyXG4gICAgICovXHJcbiAgICByZWFkb25seSBkaXNwbGF5SW5mbz86IERpc3BsYXlJbmZvO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbGVtZW50SW5mby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgZWxlbWVudCBuYW1lLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtmdWxsTmFtZV0gT3B0aW9uYWwuIFRoZSBmdWxsIG5hbWUgb2YgdGhlIGVsZW1lbnQuXHJcbiAgICAgKiBAcGFyYW0ge0Rpc3BsYXlJbmZvfSBbZGlzcGxheUluZm9dIE9wdGlvbmFsLiBUaGUgZGlzcGxheSBpbmZvcm1hdGlvbi5cclxuICAgICAqIEBwYXJhbSB7SVR5cGVJbmZvUmVnaXN0cnl9IFtyZWdpc3RyeV0gVGhlIHJvb3QgdHlwZSBpbmZvIHJlZ2lzdHJ5LlxyXG4gICAgICogQG1lbWJlcm9mIEVsZW1lbnRJbmZvXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgZnVsbE5hbWUsXHJcbiAgICAgICAgICAgIGRpc3BsYXlJbmZvLFxyXG4gICAgICAgICAgICByZWdpc3RyeSxcclxuICAgICAgICAgICAgLi4uYXJnc1xyXG4gICAgICAgIH06IHtcclxuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgICAgICBmdWxsTmFtZT86IHN0cmluZztcclxuICAgICAgICAgICAgZGlzcGxheUluZm8/OiBEaXNwbGF5SW5mbztcclxuICAgICAgICAgICAgcmVnaXN0cnk/OiBJVHlwZUluZm9SZWdpc3RyeTtcclxuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgICAgIH0pIHtcclxuICAgICAgICBpZiAoIW5hbWUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFJlZmxlY3Rpb25FcnJvcignVGhlIG5hbWUgbXVzdCBiZSBwcm92aWRlZC4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5mdWxsTmFtZSA9IGZ1bGxOYW1lIHx8IHRoaXMubmFtZTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlJbmZvID0gZGlzcGxheUluZm8gfHwgbmV3IERpc3BsYXlJbmZvKCk7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBhcmdzKTtcclxuICAgIH1cclxufVxyXG4iXX0=