import ShortloopAutoConfiguration from "./ShortloopAutoConfiguration"; import SDKLogger from "./SDKLogger"; interface IOptions { url: string; userApplicationName: string; loggingEnabled?: boolean; } class ShortloopSDK { private static shortloopAutoConfig: ShortloopAutoConfiguration; private static isSuccess: boolean = false; public static init(options: IOptions): void { if (!ShortloopAutoConfiguration.isValidConfig(options)) { return; } if (options.loggingEnabled) { SDKLogger.logginEnabled = options.loggingEnabled; } this.shortloopAutoConfig = new ShortloopAutoConfiguration( options.url, options.userApplicationName ); this.isSuccess = this.shortloopAutoConfig.init(); } public static capture(): Function { return (req: any, res: any, next: Function) => { if (!this.isSuccess) { next(); return; } this.shortloopAutoConfig .getNodeFilter() ?.processReqAndRes(req, res, next); }; } } export = ShortloopSDK;