UNPKG

@kephas/reflection

Version:

Provides reflection capabilities, like TypeInfoRegistry, ITypeInfo, and IProperty.

36 lines 4.7 kB
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=