From 89ee5aca4a0e1590617daf253b0686dad24e3d83 Mon Sep 17 00:00:00 2001 From: Haegul Pyun Date: Sun, 14 Jul 2019 14:43:21 +0900 Subject: [PATCH] Feature/configuration (#30) * Merge two config field * Add configuration settings * Update version * Add new build files --- README.md | 31 ++++++++++++++++++++++++++++ lib/common/config.d.ts | 24 +++++++-------------- lib/common/string-builder.d.ts | 2 +- lib/common/string-builder.js | 6 ++++-- lib/common/types.d.ts | 6 ++---- package.json | 2 +- src/common/string-builder.ts | 5 +++-- src/common/types.ts | 6 ++---- src/logger/__test__/error.spec.js | 11 ++++++++++ src/logger/__test__/request.spec.js | 11 ++++++++++ src/logger/__test__/response.spec.js | 11 ++++++++++ 11 files changed, 85 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 53877f2..820ec03 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,37 @@ instance.interceptors.response.use(AxiosLogger.responseLogger, (err) => { }); ``` +## Configuration Settings + +You can adjust several features as desired through configuration file. +If you want to set config globally, using `setGlobalConfig` method. + +```javascript +setGlobalConfig({ + prefixText: 'your prefix', + dateFormat: 'HH:MM:ss', + status: false, +}); +``` + +Or it can also be passed on as a second argument and applied locally. + +```javascript +instance.interceptors.request.use((config) => { + // write down your request intercept. + return AxiosLogger.requestLogger(config, { + prefixText: 'your prefix', + dateFormat: 'HH:MM:ss', + status: false, + }); +}); +``` + +#### Enable config list + +- prefixText: string | false (default Axios) +- dateFormat: [dateformat](https://github.com/felixge/node-dateformat) | false (default isoDateTime) + ## CONTRIBUTE I always welcome Feedback and Pull Request :) diff --git a/lib/common/config.d.ts b/lib/common/config.d.ts index 3a11a00..f89cb0e 100644 --- a/lib/common/config.d.ts +++ b/lib/common/config.d.ts @@ -9,19 +9,15 @@ declare function mergeWithGlobalConfig(config?: RequestLogConfig | ResponseLogCo status?: boolean | undefined; statusText?: boolean | undefined; code?: boolean | undefined; - usePrefix?: boolean | undefined; - prefixText?: string | undefined; - useDate?: boolean | undefined; - dateFormat?: string | undefined; + prefixText?: string | boolean | undefined; + dateFormat?: string | boolean | undefined; } | { data?: boolean | undefined; url?: boolean | undefined; method?: boolean | undefined; headers?: boolean | undefined; - usePrefix?: boolean | undefined; - prefixText?: string | undefined; - useDate?: boolean | undefined; - dateFormat?: string | undefined; + prefixText?: string | boolean | undefined; + dateFormat?: string | boolean | undefined; status?: boolean | undefined; statusText?: boolean | undefined; code?: boolean | undefined; @@ -30,20 +26,16 @@ declare function mergeWithGlobalConfig(config?: RequestLogConfig | ResponseLogCo status?: boolean | undefined; statusText?: boolean | undefined; headers?: boolean | undefined; - usePrefix?: boolean | undefined; - prefixText?: string | undefined; - useDate?: boolean | undefined; - dateFormat?: string | undefined; + prefixText?: string | boolean | undefined; + dateFormat?: string | boolean | undefined; url?: boolean | undefined; method?: boolean | undefined; code?: boolean | undefined; } | { data?: boolean | undefined; code?: boolean | undefined; - usePrefix?: boolean | undefined; - prefixText?: string | undefined; - useDate?: boolean | undefined; - dateFormat?: string | undefined; + prefixText?: string | boolean | undefined; + dateFormat?: string | boolean | undefined; url?: boolean | undefined; method?: boolean | undefined; headers?: boolean | undefined; diff --git a/lib/common/string-builder.d.ts b/lib/common/string-builder.d.ts index c252899..f87a893 100644 --- a/lib/common/string-builder.d.ts +++ b/lib/common/string-builder.d.ts @@ -3,7 +3,7 @@ declare class StringBuilder { private config; private printQueue; constructor(config: GlobalLogConfig); - makePrefix(logType: string): this; + makePrefix(logType: string | false): this; makeDateFormat(): this; makeUrl(url?: string): this; makeMethod(method?: string): this; diff --git a/lib/common/string-builder.js b/lib/common/string-builder.js index 465b521..0c351e5 100644 --- a/lib/common/string-builder.js +++ b/lib/common/string-builder.js @@ -33,12 +33,14 @@ class StringBuilder { } makePrefix(logType) { - const prefix = this.config.prefixText ? `[${this.config.prefixText}][${logType}]` : `[Axios][${logType}]`; + const prefix = + this.config.prefixText === false ? `[${logType}]` : `[${this.config.prefixText || 'Axios'}][${logType}]`; this.printQueue.push(_chalk.default.green(prefix)); return this; } makeDateFormat() { + // @ts-ignore const dateFormat = (0, _dateformat.default)(new Date(), this.config.dateFormat || 'isoDateTime'); this.printQueue.push(dateFormat); return this; @@ -71,4 +73,4 @@ class StringBuilder { var _default = StringBuilder; exports.default = _default; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vc3RyaW5nLWJ1aWxkZXIudHMiXSwibmFtZXMiOlsiU3RyaW5nQnVpbGRlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwicHJpbnRRdWV1ZSIsIm1ha2VQcmVmaXgiLCJsb2dUeXBlIiwicHJlZml4IiwicHJlZml4VGV4dCIsInB1c2giLCJjaGFsayIsImdyZWVuIiwibWFrZURhdGVGb3JtYXQiLCJkYXRlRm9ybWF0IiwiRGF0ZSIsIm1ha2VVcmwiLCJ1cmwiLCJtYWtlTWV0aG9kIiwibWV0aG9kIiwieWVsbG93IiwidG9VcHBlckNhc2UiLCJtYWtlRGF0YSIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwibWFrZVN0YXR1cyIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJidWlsZCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7O0FBRUEsTUFBTUEsYUFBTixDQUFvQjtBQUloQkMsRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQTBCO0FBQUE7O0FBQUE7O0FBQ2pDLFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsRUFBbEI7QUFDSDs7QUFFREMsRUFBQUEsVUFBVSxDQUFDQyxPQUFELEVBQWtCO0FBQ3hCLFVBQU1DLE1BQU0sR0FBRyxLQUFLSixNQUFMLENBQVlLLFVBQVosR0FBMEIsSUFBRyxLQUFLTCxNQUFMLENBQVlLLFVBQVcsS0FBSUYsT0FBUSxHQUFoRSxHQUFzRSxXQUFVQSxPQUFRLEdBQXZHO0FBQ0EsU0FBS0YsVUFBTCxDQUFnQkssSUFBaEIsQ0FBcUJDLGVBQU1DLEtBQU4sQ0FBWUosTUFBWixDQUFyQjtBQUNBLFdBQU8sSUFBUDtBQUNIOztBQUVESyxFQUFBQSxjQUFjLEdBQUc7QUFDYixVQUFNQyxVQUFVLEdBQUcseUJBQVcsSUFBSUMsSUFBSixFQUFYLEVBQXVCLEtBQUtYLE1BQUwsQ0FBWVUsVUFBWixJQUEwQixhQUFqRCxDQUFuQjtBQUNBLFNBQUtULFVBQUwsQ0FBZ0JLLElBQWhCLENBQXFCSSxVQUFyQjtBQUNBLFdBQU8sSUFBUDtBQUNIOztBQUVERSxFQUFBQSxPQUFPLENBQUNDLEdBQUQsRUFBZTtBQUNsQixRQUFHQSxHQUFILEVBQVEsS0FBS1osVUFBTCxDQUFnQkssSUFBaEIsQ0FBcUJPLEdBQXJCO0FBQ1IsV0FBTyxJQUFQO0FBQ0g7O0FBRURDLEVBQUFBLFVBQVUsQ0FBQ0MsTUFBRCxFQUFrQjtBQUN4QixRQUFHQSxNQUFILEVBQVcsS0FBS2QsVUFBTCxDQUFnQkssSUFBaEIsQ0FBcUJDLGVBQU1TLE1BQU4sQ0FBYUQsTUFBTSxDQUFDRSxXQUFQLEVBQWIsQ0FBckI7QUFDWCxXQUFPLElBQVA7QUFDSDs7QUFFREMsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQWU7QUFDbkIsUUFBR0EsSUFBSCxFQUFTLEtBQUtsQixVQUFMLENBQWdCSyxJQUFoQixDQUFxQmMsSUFBSSxDQUFDQyxTQUFMLENBQWVGLElBQWYsQ0FBckI7QUFDVCxXQUFPLElBQVA7QUFDSDs7QUFFREcsRUFBQUEsVUFBVSxDQUFDQyxNQUFELEVBQWlCQyxVQUFqQixFQUFzQztBQUM1QyxRQUFHRCxNQUFNLElBQUlDLFVBQWIsRUFBeUIsS0FBS3ZCLFVBQUwsQ0FBZ0JLLElBQWhCLENBQXNCLEdBQUVpQixNQUFPLElBQUdDLFVBQVcsRUFBN0M7QUFDekIsV0FBTyxJQUFQO0FBQ0g7O0FBRURDLEVBQUFBLEtBQUssR0FBRztBQUNKLFdBQU8sS0FBS3hCLFVBQUwsQ0FBZ0J5QixJQUFoQixDQUFxQixHQUFyQixDQUFQO0FBQ0g7O0FBM0NlOztlQThDTDVCLGEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF0ZWZvcm1hdCBmcm9tICdkYXRlZm9ybWF0JztcbmltcG9ydCB7IEdsb2JhbExvZ0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcblxuY2xhc3MgU3RyaW5nQnVpbGRlciB7XG4gICAgcHJpdmF0ZSBjb25maWc6IEdsb2JhbExvZ0NvbmZpZztcbiAgICBwcml2YXRlIHByaW50UXVldWU6IEFycmF5PHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IEdsb2JhbExvZ0NvbmZpZykge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5wcmludFF1ZXVlID0gW107XG4gICAgfVxuXG4gICAgbWFrZVByZWZpeChsb2dUeXBlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5jb25maWcucHJlZml4VGV4dCA/IGBbJHt0aGlzLmNvbmZpZy5wcmVmaXhUZXh0fV1bJHtsb2dUeXBlfV1gIDogYFtBeGlvc11bJHtsb2dUeXBlfV1gO1xuICAgICAgICB0aGlzLnByaW50UXVldWUucHVzaChjaGFsay5ncmVlbihwcmVmaXgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgbWFrZURhdGVGb3JtYXQoKSB7XG4gICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBkYXRlZm9ybWF0KG5ldyBEYXRlKCksIHRoaXMuY29uZmlnLmRhdGVGb3JtYXQgfHwgJ2lzb0RhdGVUaW1lJyk7XG4gICAgICAgIHRoaXMucHJpbnRRdWV1ZS5wdXNoKGRhdGVGb3JtYXQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYWtlVXJsKHVybD86IHN0cmluZykge1xuICAgICAgICBpZih1cmwpIHRoaXMucHJpbnRRdWV1ZS5wdXNoKHVybCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1ha2VNZXRob2QobWV0aG9kPzogc3RyaW5nKSB7XG4gICAgICAgIGlmKG1ldGhvZCkgdGhpcy5wcmludFF1ZXVlLnB1c2goY2hhbGsueWVsbG93KG1ldGhvZC50b1VwcGVyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1ha2VEYXRhKGRhdGE6IG9iamVjdCkge1xuICAgICAgICBpZihkYXRhKSB0aGlzLnByaW50UXVldWUucHVzaChKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1ha2VTdGF0dXMoc3RhdHVzPzpudW1iZXIsIHN0YXR1c1RleHQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYoc3RhdHVzICYmIHN0YXR1c1RleHQpIHRoaXMucHJpbnRRdWV1ZS5wdXNoKGAke3N0YXR1c306JHtzdGF0dXNUZXh0fWApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBidWlsZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJpbnRRdWV1ZS5qb2luKCcgJyk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTdHJpbmdCdWlsZGVyOyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vc3RyaW5nLWJ1aWxkZXIudHMiXSwibmFtZXMiOlsiU3RyaW5nQnVpbGRlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwicHJpbnRRdWV1ZSIsIm1ha2VQcmVmaXgiLCJsb2dUeXBlIiwicHJlZml4IiwicHJlZml4VGV4dCIsInB1c2giLCJjaGFsayIsImdyZWVuIiwibWFrZURhdGVGb3JtYXQiLCJkYXRlRm9ybWF0IiwiRGF0ZSIsIm1ha2VVcmwiLCJ1cmwiLCJtYWtlTWV0aG9kIiwibWV0aG9kIiwieWVsbG93IiwidG9VcHBlckNhc2UiLCJtYWtlRGF0YSIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwibWFrZVN0YXR1cyIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJidWlsZCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7O0FBRUEsTUFBTUEsYUFBTixDQUFvQjtBQUloQkMsRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQTBCO0FBQUE7O0FBQUE7O0FBQ2pDLFNBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsRUFBbEI7QUFDSDs7QUFFREMsRUFBQUEsVUFBVSxDQUFDQyxPQUFELEVBQTBCO0FBQ2hDLFVBQU1DLE1BQU0sR0FBRyxLQUFLSixNQUFMLENBQVlLLFVBQVosS0FBMkIsS0FBM0IsR0FBb0MsSUFBR0YsT0FBUSxHQUEvQyxHQUFxRCxJQUFHLEtBQUtILE1BQUwsQ0FBWUssVUFBWixJQUEwQixPQUFRLEtBQUlGLE9BQVEsR0FBckg7QUFDQSxTQUFLRixVQUFMLENBQWdCSyxJQUFoQixDQUFxQkMsZUFBTUMsS0FBTixDQUFZSixNQUFaLENBQXJCO0FBQ0EsV0FBTyxJQUFQO0FBQ0g7O0FBRURLLEVBQUFBLGNBQWMsR0FBRztBQUNiO0FBQ0EsVUFBTUMsVUFBVSxHQUFHLHlCQUFXLElBQUlDLElBQUosRUFBWCxFQUF1QixLQUFLWCxNQUFMLENBQVlVLFVBQVosSUFBMEIsYUFBakQsQ0FBbkI7QUFDQSxTQUFLVCxVQUFMLENBQWdCSyxJQUFoQixDQUFxQkksVUFBckI7QUFDQSxXQUFPLElBQVA7QUFDSDs7QUFFREUsRUFBQUEsT0FBTyxDQUFDQyxHQUFELEVBQWU7QUFDbEIsUUFBR0EsR0FBSCxFQUFRLEtBQUtaLFVBQUwsQ0FBZ0JLLElBQWhCLENBQXFCTyxHQUFyQjtBQUNSLFdBQU8sSUFBUDtBQUNIOztBQUVEQyxFQUFBQSxVQUFVLENBQUNDLE1BQUQsRUFBa0I7QUFDeEIsUUFBR0EsTUFBSCxFQUFXLEtBQUtkLFVBQUwsQ0FBZ0JLLElBQWhCLENBQXFCQyxlQUFNUyxNQUFOLENBQWFELE1BQU0sQ0FBQ0UsV0FBUCxFQUFiLENBQXJCO0FBQ1gsV0FBTyxJQUFQO0FBQ0g7O0FBRURDLEVBQUFBLFFBQVEsQ0FBQ0MsSUFBRCxFQUFlO0FBQ25CLFFBQUdBLElBQUgsRUFBUyxLQUFLbEIsVUFBTCxDQUFnQkssSUFBaEIsQ0FBcUJjLElBQUksQ0FBQ0MsU0FBTCxDQUFlRixJQUFmLENBQXJCO0FBQ1QsV0FBTyxJQUFQO0FBQ0g7O0FBRURHLEVBQUFBLFVBQVUsQ0FBQ0MsTUFBRCxFQUFpQkMsVUFBakIsRUFBc0M7QUFDNUMsUUFBR0QsTUFBTSxJQUFJQyxVQUFiLEVBQXlCLEtBQUt2QixVQUFMLENBQWdCSyxJQUFoQixDQUFzQixHQUFFaUIsTUFBTyxJQUFHQyxVQUFXLEVBQTdDO0FBQ3pCLFdBQU8sSUFBUDtBQUNIOztBQUVEQyxFQUFBQSxLQUFLLEdBQUc7QUFDSixXQUFPLEtBQUt4QixVQUFMLENBQWdCeUIsSUFBaEIsQ0FBcUIsR0FBckIsQ0FBUDtBQUNIOztBQTVDZTs7ZUErQ0w1QixhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRhdGVmb3JtYXQgZnJvbSAnZGF0ZWZvcm1hdCc7XG5pbXBvcnQgeyBHbG9iYWxMb2dDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmNsYXNzIFN0cmluZ0J1aWxkZXIge1xuICAgIHByaXZhdGUgY29uZmlnOiBHbG9iYWxMb2dDb25maWc7XG4gICAgcHJpdmF0ZSBwcmludFF1ZXVlOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBHbG9iYWxMb2dDb25maWcpIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgICAgIHRoaXMucHJpbnRRdWV1ZSA9IFtdO1xuICAgIH1cblxuICAgIG1ha2VQcmVmaXgobG9nVHlwZTogc3RyaW5nIHwgZmFsc2UpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5jb25maWcucHJlZml4VGV4dCA9PT0gZmFsc2UgPyBgWyR7bG9nVHlwZX1dYCA6IGBbJHt0aGlzLmNvbmZpZy5wcmVmaXhUZXh0IHx8ICdBeGlvcyd9XVske2xvZ1R5cGV9XWA7XG4gICAgICAgIHRoaXMucHJpbnRRdWV1ZS5wdXNoKGNoYWxrLmdyZWVuKHByZWZpeCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYWtlRGF0ZUZvcm1hdCgpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gZGF0ZWZvcm1hdChuZXcgRGF0ZSgpLCB0aGlzLmNvbmZpZy5kYXRlRm9ybWF0IHx8ICdpc29EYXRlVGltZScpO1xuICAgICAgICB0aGlzLnByaW50UXVldWUucHVzaChkYXRlRm9ybWF0KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgbWFrZVVybCh1cmw/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYodXJsKSB0aGlzLnByaW50UXVldWUucHVzaCh1cmwpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYWtlTWV0aG9kKG1ldGhvZD86IHN0cmluZykge1xuICAgICAgICBpZihtZXRob2QpIHRoaXMucHJpbnRRdWV1ZS5wdXNoKGNoYWxrLnllbGxvdyhtZXRob2QudG9VcHBlckNhc2UoKSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYWtlRGF0YShkYXRhOiBvYmplY3QpIHtcbiAgICAgICAgaWYoZGF0YSkgdGhpcy5wcmludFF1ZXVlLnB1c2goSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYWtlU3RhdHVzKHN0YXR1cz86bnVtYmVyLCBzdGF0dXNUZXh0Pzogc3RyaW5nKSB7XG4gICAgICAgIGlmKHN0YXR1cyAmJiBzdGF0dXNUZXh0KSB0aGlzLnByaW50UXVldWUucHVzaChgJHtzdGF0dXN9OiR7c3RhdHVzVGV4dH1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByaW50UXVldWUuam9pbignICcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3RyaW5nQnVpbGRlcjsiXX0= diff --git a/lib/common/types.d.ts b/lib/common/types.d.ts index 1dae82a..0771780 100644 --- a/lib/common/types.d.ts +++ b/lib/common/types.d.ts @@ -1,8 +1,6 @@ export interface CommonConfig { - usePrefix?: boolean; - prefixText?: string; - useDate?: boolean; - dateFormat?: string; + prefixText?: string | boolean; + dateFormat?: string | boolean; } export interface GlobalLogConfig extends CommonConfig { data?: boolean; diff --git a/package.json b/package.json index 0522861..ae5cfbf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "axios-logger", - "version": "2.0.1", + "version": "2.1.0", "description": "Beautify Axios Logging Messages", "main": "lib/index.js", "keywords": [ diff --git a/src/common/string-builder.ts b/src/common/string-builder.ts index e2dad4c..14bb4f9 100644 --- a/src/common/string-builder.ts +++ b/src/common/string-builder.ts @@ -11,13 +11,14 @@ class StringBuilder { this.printQueue = []; } - makePrefix(logType: string) { - const prefix = this.config.prefixText ? `[${this.config.prefixText}][${logType}]` : `[Axios][${logType}]`; + makePrefix(logType: string | false) { + const prefix = this.config.prefixText === false ? `[${logType}]` : `[${this.config.prefixText || 'Axios'}][${logType}]`; this.printQueue.push(chalk.green(prefix)); return this; } makeDateFormat() { + // @ts-ignore const dateFormat = dateformat(new Date(), this.config.dateFormat || 'isoDateTime'); this.printQueue.push(dateFormat); return this; diff --git a/src/common/types.ts b/src/common/types.ts index d023075..1492e22 100644 --- a/src/common/types.ts +++ b/src/common/types.ts @@ -1,8 +1,6 @@ export interface CommonConfig { - usePrefix?: boolean, - prefixText?: string, - useDate?: boolean, - dateFormat?: string, + prefixText?: string | boolean, + dateFormat?: string | boolean, } export interface GlobalLogConfig extends CommonConfig { diff --git a/src/logger/__test__/error.spec.js b/src/logger/__test__/error.spec.js index 1119b35..6ef78c4 100644 --- a/src/logger/__test__/error.spec.js +++ b/src/logger/__test__/error.spec.js @@ -78,3 +78,14 @@ test('if both global and local config are defined, local config should override expect(printLog).toHaveBeenCalled(); expect(printLog).toBeCalledWith(expect.stringContaining('[local custom prefix]')); }); + +test('if prefixText is false, remove prefix', () => { + const globalConfig = { + prefixText: false, + }; + + setGlobalConfig(globalConfig); + errorLoggerWithoutPromise(axiosError); + expect(printLog).toHaveBeenCalled(); + expect(printLog).toBeCalledWith(expect.not.stringContaining('[Axios]')); +}); diff --git a/src/logger/__test__/request.spec.js b/src/logger/__test__/request.spec.js index b327715..d8addea 100644 --- a/src/logger/__test__/request.spec.js +++ b/src/logger/__test__/request.spec.js @@ -66,3 +66,14 @@ test('if both global and local config are defined, local config should override expect(printLog).toHaveBeenCalled(); expect(printLog).toBeCalledWith(expect.stringContaining('[local custom prefix]')); }); + +test('if prefixText is false, remove prefix', () => { + const globalConfig = { + prefixText: false, + }; + + setGlobalConfig(globalConfig); + requestLogger(axiosRequestConfig); + expect(printLog).toHaveBeenCalled(); + expect(printLog).toBeCalledWith(expect.not.stringContaining('[Axios]')); +}); diff --git a/src/logger/__test__/response.spec.js b/src/logger/__test__/response.spec.js index e410644..a234d09 100644 --- a/src/logger/__test__/response.spec.js +++ b/src/logger/__test__/response.spec.js @@ -76,3 +76,14 @@ test('if both global and local config are defined, local config should override expect(printLog).toHaveBeenCalled(); expect(printLog).toBeCalledWith(expect.stringContaining('[local custom prefix]')); }); + +test('if prefixText is false, remove prefix', () => { + const globalConfig = { + prefixText: false, + }; + + setGlobalConfig(globalConfig); + responseLogger(axiosResponse); + expect(printLog).toHaveBeenCalled(); + expect(printLog).toBeCalledWith(expect.not.stringContaining('[Axios]')); +});