tsioc
Version:
tsioc is AOP, Ioc container, via typescript decorator
110 lines (108 loc) • 2.75 kB
TypeScript
import { Express, Mode } from '../types';
/**
* component.
*
* @export
* @interface IComponent
*/
export interface IComponent {
/**
* the node name.
*
* @type {string}
* @memberof IComponent
*/
name: string;
/**
* parent node.
*
* @type {IComponent}
* @memberof IComponent
*/
parent?: IComponent;
/**
* add node to this component and return self.
*
* @param {IComponent} node the node to add.
* @returns {this} self.
* @memberof IComponent
*/
add(node: IComponent): this;
/**
* remove node from this component.
*
* @param {(IComponent | string)} node
* @returns {this}
* @memberof IComponent
*/
remove(node: IComponent | string): this;
/**
* find sub context via express.
*
* @param {(IComponent | Express<IComponent, boolean>)} express
* @param {Mode} [mode]
* @returns {IComponent}
* @memberof IComponent
*/
find(express: IComponent | Express<IComponent, boolean>, mode?: Mode): IComponent;
/**
* filter in component.
*
* @param {(Express<IComponent, void | boolean>)} express
* @param {Mode} [mode]
* @returns {IComponent[]}
* @memberof IComponent
*/
filter(express: Express<IComponent, void | boolean>, mode?: Mode): IComponent[];
/**
* iteration context with express.
*
* @param {(Express<IComponent, void | boolean>)} express
* @param {Mode} [mode]
* @memberof IComponent
*/
each(express: Express<IComponent, void | boolean>, mode?: Mode): any;
/**
* trans all sub nodes. node first iteration.
*
* @param {(Express<IComponent, void | boolean>)} express
* @memberof IComponent
*/
trans(express: Express<IComponent, void | boolean>): any;
/**
* trans all sub nodes. node last iteration.
*
* @param {(Express<IComponent, void | boolean>)} express
* @memberof IComponent
*/
transAfter(express: Express<IComponent, void | boolean>): any;
/**
* route up iteration.
*
* @param {(Express<IComponent, void | boolean>)} express
* @memberof IComponent
*/
routeUp(express: Express<IComponent, void | boolean>): any;
/**
* this component node equals to the node or not.
*
* @param {IComponent} node
* @returns {boolean}
* @memberof IComponent
*/
equals(node: IComponent): boolean;
/**
* get empty node.
*
* @returns {IComponent}
* @memberof IComponent
*/
empty(): IComponent;
/**
* check this node is empty or not.
*
* @returns {boolean}
* @memberof IComponent
*/
isEmpty(): boolean;
}