mt-mappersmith
Version:
It is a lightweight rest client for node.js and the browser
1 lines • 3.16 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/middleware/log.ts"],"sourcesContent":["import { Response } from '../response'\nimport type { Request } from '../request'\nimport type { Middleware } from './index'\n\nexport const defaultSuccessLogger = (message: string) => {\n const logger = console.info ? console.info : console.log\n logger(message)\n}\n\nexport const defaultErrorLogger = (message: string) => {\n const logger = console.error ? console.error : console.log\n logger(message)\n}\n\nlet isLoggerEnabled = Boolean(console && console.log)\nlet successLogger = defaultSuccessLogger\nlet errorLogger = defaultErrorLogger\n\nexport const setSuccessLogger = (logger: (message: string) => void) => {\n successLogger = logger\n}\nexport const setErrorLogger = (logger: (message: string) => void) => {\n errorLogger = logger\n}\nexport const setLoggerEnabled = (value: boolean) => {\n isLoggerEnabled = value\n}\n\nconst log = (request: Request, response?: Response) => {\n if (isLoggerEnabled) {\n const httpCall = `${request.method().toUpperCase()} ${request.url()}`\n const direction = response ? '<-' : '->'\n const isError = response && !response.success()\n const errorLabel = isError ? '(ERROR) ' : ''\n const extra = response ? ` status=${response.status()} '${response.rawData()}'` : ''\n const logger = isError ? errorLogger : successLogger\n\n logger(`${direction} ${errorLabel}${httpCall}${extra}`)\n }\n\n return response || request\n}\n\n/**\n * Log all requests and responses.\n */\nexport const LogMiddleware: Middleware = () => ({\n async prepareRequest(next) {\n const request = await next()\n log(request)\n return request\n },\n\n async response(next) {\n try {\n const response = await next()\n log(response.request(), response)\n return response\n } catch (err) {\n if (err instanceof Response) {\n log(err.request(), err)\n }\n throw err\n }\n },\n})\n\nexport default LogMiddleware\n"],"mappings":";AAAA,SAAS,gBAAgB;AAIlB,IAAM,uBAAuB,CAAC,YAAoB;AACvD,QAAM,SAAS,QAAQ,OAAO,QAAQ,OAAO,QAAQ;AACrD,SAAO,OAAO;AAChB;AAEO,IAAM,qBAAqB,CAAC,YAAoB;AACrD,QAAM,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ;AACvD,SAAO,OAAO;AAChB;AAEA,IAAI,kBAAkB,QAAQ,WAAW,QAAQ,GAAG;AACpD,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAEX,IAAM,mBAAmB,CAAC,WAAsC;AACrE,kBAAgB;AAClB;AACO,IAAM,iBAAiB,CAAC,WAAsC;AACnE,gBAAc;AAChB;AACO,IAAM,mBAAmB,CAAC,UAAmB;AAClD,oBAAkB;AACpB;AAEA,IAAM,MAAM,CAAC,SAAkB,aAAwB;AACrD,MAAI,iBAAiB;AACnB,UAAM,WAAW,GAAG,QAAQ,OAAO,EAAE,YAAY,CAAC,IAAI,QAAQ,IAAI,CAAC;AACnE,UAAM,YAAY,WAAW,OAAO;AACpC,UAAM,UAAU,YAAY,CAAC,SAAS,QAAQ;AAC9C,UAAM,aAAa,UAAU,aAAa;AAC1C,UAAM,QAAQ,WAAW,WAAW,SAAS,OAAO,CAAC,KAAK,SAAS,QAAQ,CAAC,MAAM;AAClF,UAAM,SAAS,UAAU,cAAc;AAEvC,WAAO,GAAG,SAAS,IAAI,UAAU,GAAG,QAAQ,GAAG,KAAK,EAAE;AAAA,EACxD;AAEA,SAAO,YAAY;AACrB;AAKO,IAAM,gBAA4B,OAAO;AAAA,EAC9C,MAAM,eAAe,MAAM;AACzB,UAAM,UAAU,MAAM,KAAK;AAC3B,QAAI,OAAO;AACX,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS,MAAM;AACnB,QAAI;AACF,YAAM,WAAW,MAAM,KAAK;AAC5B,UAAI,SAAS,QAAQ,GAAG,QAAQ;AAChC,aAAO;AAAA,IACT,SAAS,KAAK;AACZ,UAAI,eAAe,UAAU;AAC3B,YAAI,IAAI,QAAQ,GAAG,GAAG;AAAA,MACxB;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,cAAQ;","names":[]}