lib-utils-ts
Version:
<img src="https://img.shields.io/npm/v/lib-utils-ts"/> <img src="https://img.shields.io/snyk/vulnerabilities/npm/lib-utils-ts"/> <img src="https://img.shields.io/npm/l/lib-utils-ts"/> <img src="https://img.shields.io/github/languages/top/devGnode/lib-util
53 lines (37 loc) • 1.49 kB
text/typescript
import {HttpEndpointTemplate} from "./EndPoint";
import {List} from "../../Interface";
import {ArrayList} from "../../utils/ArrayList";
import {HttpMethod} from "./HttpMethod";
import {Nested} from "../../annotation/Nested";
import {HttpContext} from "./HttpContext";
const {NestedClass} = Nested;
interface EdI {
getContext():HttpContext
has(method:HttpMethod, path:string):boolean
}
export class EnpointManager {
private static readonly Ed = class Ed implements EdI{
context:HttpContext;
endpoint:HttpEndpointTemplate;
constructor(context:HttpContext, endpoint:HttpEndpointTemplate) {
this.context = context;
this.endpoint = endpoint;
}
public getContext():HttpContext{ return this.context; }
public has(method:HttpMethod, path:string):boolean{return this.endpoint.is(path)&&this.endpoint.hasMethod(method);}
};
private readonly endpoints:List<EdI>;
public constructor() { this.endpoints = new ArrayList(); }
public add(context:HttpContext, endpoint:HttpEndpointTemplate ):void{
}
public find(method:HttpMethod, path:string):any/*HttpContext*/{
this.endpoints
.stream()
.filter((value:EdI)=>value.has(method,path))
.findFirst()
.get();
}
public static getHttpMethod(method:string):HttpMethod{return HttpMethod.valueOf(method.toUpperCase());}
}
//new EnpointManager().find()