@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
45 lines • 4.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExecutionContextHost = void 0;
class ExecutionContextHost {
constructor(args, constructorRef = null, handler = null) {
this.args = args;
this.constructorRef = constructorRef;
this.handler = handler;
this.contextType = 'http';
}
setType(type) {
type && (this.contextType = type);
}
getType() {
return this.contextType;
}
getClass() {
return this.constructorRef;
}
getHandler() {
return this.handler;
}
getArgs() {
return this.args;
}
getArgByIndex(index) {
return this.args[index];
}
getHttp() {
return Object.assign(this, {
getRequest: () => this.getArgByIndex(0),
getResponse: () => this.getArgByIndex(1),
getNext: () => this.getArgByIndex(2),
});
}
switchToWs() {
return Object.assign(this, {
getClient: () => this.getArgByIndex(0),
getData: () => this.getArgByIndex(1),
getPattern: () => this.getArgByIndex(this.getArgs().length - 1),
});
}
}
exports.ExecutionContextHost = ExecutionContextHost;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLWNvbnRleHQtaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2V4ZWN1dGlvbi1jb250ZXh0LWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSxvQkFBb0I7SUFHL0IsWUFDbUIsSUFBVyxFQUNYLGlCQUE0QixJQUFJLEVBQ2hDLFVBQW9CLElBQUk7UUFGeEIsU0FBSSxHQUFKLElBQUksQ0FBTztRQUNYLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUxuQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQztJQU0xQixDQUFDO0lBRUosT0FBTyxDQUFpQyxJQUFPO1FBQzdDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxXQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxhQUFhLENBQVUsS0FBYTtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3pCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUN2QyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUN6QixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2hFLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhERCxvREFnREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRleHRUeXBlfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7RXhlY3V0aW9uQ29udGV4dEludGVyZmFjZSwgVHlwZSwgSHR0cEFyZ3VtZW50c0hvc3RJbnRlcmZhY2UsIFdzQXJndW1lbnRzSG9zdH0gZnJvbSBcIi4uL2NvbnRyYWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgRXhlY3V0aW9uQ29udGV4dEhvc3QgaW1wbGVtZW50cyBFeGVjdXRpb25Db250ZXh0SW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSBjb250ZXh0VHlwZSA9ICdodHRwJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFyZ3M6IGFueVtdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uc3RydWN0b3JSZWY6IFR5cGU8YW55PiA9IG51bGwsXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyOiBGdW5jdGlvbiA9IG51bGwsXG4gICkge31cblxuICBzZXRUeXBlPFQgZXh0ZW5kcyBzdHJpbmcgPSBDb250ZXh0VHlwZT4odHlwZTogVCkge1xuICAgIHR5cGUgJiYgKHRoaXMuY29udGV4dFR5cGUgPSB0eXBlKTtcbiAgfVxuXG4gIGdldFR5cGU8VCBleHRlbmRzIHN0cmluZyA9IENvbnRleHRUeXBlPigpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0VHlwZSBhcyBUO1xuICB9XG5cbiAgZ2V0Q2xhc3M8VCA9IGFueT4oKTogVHlwZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3JSZWY7XG4gIH1cblxuICBnZXRIYW5kbGVyKCk6IEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVyO1xuICB9XG5cbiAgZ2V0QXJnczxUIGV4dGVuZHMgQXJyYXk8YW55PiA9IGFueVtdPigpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzIGFzIFQ7XG4gIH1cblxuICBnZXRBcmdCeUluZGV4PFQgPSBhbnk+KGluZGV4OiBudW1iZXIpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzW2luZGV4XSBhcyBUO1xuICB9XG5cbiAgZ2V0SHR0cCgpOiBIdHRwQXJndW1lbnRzSG9zdEludGVyZmFjZSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcywge1xuICAgICAgZ2V0UmVxdWVzdDogKCkgPT4gdGhpcy5nZXRBcmdCeUluZGV4KDApLFxuICAgICAgZ2V0UmVzcG9uc2U6ICgpID0+IHRoaXMuZ2V0QXJnQnlJbmRleCgxKSxcbiAgICAgIGdldE5leHQ6ICgpID0+IHRoaXMuZ2V0QXJnQnlJbmRleCgyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHN3aXRjaFRvV3MoKTogV3NBcmd1bWVudHNIb3N0IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLCB7XG4gICAgICBnZXRDbGllbnQ6ICgpID0+IHRoaXMuZ2V0QXJnQnlJbmRleCgwKSxcbiAgICAgIGdldERhdGE6ICgpID0+IHRoaXMuZ2V0QXJnQnlJbmRleCgxKSxcbiAgICAgIGdldFBhdHRlcm46ICgpID0+IHRoaXMuZ2V0QXJnQnlJbmRleCh0aGlzLmdldEFyZ3MoKS5sZW5ndGggLSAxKSxcbiAgICB9KTtcbiAgfVxufVxuIl19