From 30c54d2fab405eba849b7747cceaecdad147a0fc Mon Sep 17 00:00:00 2001 From: Angel Nikolov Date: Fri, 29 Mar 2019 23:13:03 +0200 Subject: [PATCH] Fixed an issue where undefined parameters were changed to null --- cacheable.decorator.spec.ts | 39 +++- cacheable.decorator.ts | 2 +- dist/cache-buster.decorator.d.ts | 5 +- dist/cache-buster.decorator.js | 34 ++-- dist/cache-buster.decorator.js.map | 2 +- dist/cacheable.decorator.d.ts | 3 +- dist/cacheable.decorator.js | 191 ++++++++++--------- dist/cacheable.decorator.js.map | 2 +- dist/cacheable.decorator.spec.js | 32 ++++ dist/cacheable.decorator.spec.js.map | 2 +- dist/common/index.d.ts | 3 +- dist/common/index.js | 24 --- dist/common/index.js.map | 2 +- dist/promise.cache-buster.decorator.d.ts | 3 +- dist/promise.cache-buster.decorator.js | 36 ++-- dist/promise.cache-buster.decorator.js.map | 2 +- dist/promise.cacheable.decorator.d.ts | 3 +- dist/promise.cacheable.decorator.js | 181 +++++++++--------- dist/promise.cacheable.decorator.js.map | 2 +- dist/promise.cacheable.decorator.spec.js | 49 ++++- dist/promise.cacheable.decorator.spec.js.map | 2 +- package.json | 2 +- promise.cacheable.decorator.spec.ts | 43 ++++- promise.cacheable.decorator.ts | 2 +- 24 files changed, 420 insertions(+), 246 deletions(-) diff --git a/cacheable.decorator.spec.ts b/cacheable.decorator.spec.ts index 40e97be..0e209f6 100644 --- a/cacheable.decorator.spec.ts +++ b/cacheable.decorator.spec.ts @@ -12,6 +12,10 @@ class Service { return timer(1000).pipe(mapTo('SAVED')); } + mockServiceCallWithMultipleParameters(parameter1, parameter2) { + return timer(1000).pipe(mapTo({ payload: [parameter1, parameter2] })); + } + @Cacheable() getData(parameter: string) { return this.mockServiceCall(parameter); @@ -107,7 +111,18 @@ class Service { getDataWithCacheBusting(parameter: string) { return this.mockServiceCall(parameter); } + + @Cacheable() + getDataWithUndefinedParameter(parameter: string = '') { + return this.mockServiceCall(parameter); + } + + @Cacheable() + getDataWithMultipleUndefinedParameters(parameter: string = 'Parameter1', parameter1: string = 'Parameter2') { + return this.mockServiceCallWithMultipleParameters(parameter, parameter1); + } } + describe('CacheableDecorator', () => { let service: Service = null; let mockServiceCallSpy: jasmine.Spy = null; @@ -169,7 +184,6 @@ describe('CacheableDecorator', () => { expect(mockServiceCallSpy).toHaveBeenCalledTimes(4); }); - it('returns observables in cache with a referential type params', () => { let params = { number: [1] @@ -780,6 +794,29 @@ describe('CacheableDecorator', () => { */ expect(mockServiceCallSpy).toHaveBeenCalledTimes(6); }); + + it('should not change undefined parameters to null', () => { + service.getDataWithUndefinedParameter(undefined); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + service.getDataWithUndefinedParameter(); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + + let mockServiceCallWithMultipleParametersSpy = spyOn(service, 'mockServiceCallWithMultipleParameters').and.callThrough(); + + const asyncData = _timedStreamAsyncAwait( + service.getDataWithMultipleUndefinedParameters(undefined, undefined), + 1000 + ); + + expect(asyncData).toEqual({ payload: ['Parameter1', 'Parameter2'] }); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledWith('Parameter1', 'Parameter2'); + + service.getDataWithMultipleUndefinedParameters(undefined, undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(1); + + service.getDataWithMultipleUndefinedParameters('Parameter1', undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(2); + }); }); function _timedStreamAsyncAwait(stream$: Observable, skipTime?: number) { diff --git a/cacheable.decorator.ts b/cacheable.decorator.ts index d769de3..7dcb1a3 100644 --- a/cacheable.decorator.ts +++ b/cacheable.decorator.ts @@ -36,7 +36,7 @@ export function Cacheable(cacheConfig: IObservableCacheConfig = {}) { /* use function instead of an arrow function to keep context of invocation */ (propertyDescriptor.value as any) = function (..._parameters) { - let parameters = JSON.parse(JSON.stringify(_parameters)); + let parameters = _parameters.map(param => param !== undefined ? JSON.parse(JSON.stringify(param)) : param); let _foundCachePair = cachePairs.find(cp => cacheConfig.cacheResolver(cp.parameters, parameters) ); diff --git a/dist/cache-buster.decorator.d.ts b/dist/cache-buster.decorator.d.ts index 78b8041..c933fc3 100644 --- a/dist/cache-buster.decorator.d.ts +++ b/dist/cache-buster.decorator.d.ts @@ -1,3 +1,4 @@ -import { Observable } from 'rxjs'; import { ICacheBusterConfig } from './common/ICacheBusterConfig'; -export declare const CacheBuster: (cacheBusterConfig?: ICacheBusterConfig) => (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor<(...args: any[]) => Observable>) => TypedPropertyDescriptor<(...args: any[]) => Observable>; +import { ICacheable } from './common'; +import { Observable } from 'rxjs'; +export declare function CacheBuster(cacheBusterConfig?: ICacheBusterConfig): (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor>>) => TypedPropertyDescriptor>>; diff --git a/dist/cache-buster.decorator.js b/dist/cache-buster.decorator.js index e8c967e..a7689e1 100644 --- a/dist/cache-buster.decorator.js +++ b/dist/cache-buster.decorator.js @@ -1,19 +1,27 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var operators_1 = require("rxjs/operators"); -var common_1 = require("./common"); -exports.CacheBuster = common_1.makeCacheBusterDecorator(function (propertyDescriptor, oldMethod, cacheBusterConfig) { - /* use function instead of an arrow function to keep context of invocation */ - propertyDescriptor.value = function () { - var parameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - parameters[_i] = arguments[_i]; +function CacheBuster(cacheBusterConfig) { + return function (_target, _propertyKey, propertyDescriptor) { + var oldMethod = propertyDescriptor.value; + if (propertyDescriptor && propertyDescriptor.value) { + /* use function instead of an arrow function to keep context of invocation */ + propertyDescriptor.value = function () { + var parameters = []; + for (var _i = 0; _i < arguments.length; _i++) { + parameters[_i] = arguments[_i]; + } + return oldMethod.call.apply(oldMethod, [this].concat(parameters)).pipe(operators_1.tap(function () { + if (cacheBusterConfig.cacheBusterNotifier) { + cacheBusterConfig.cacheBusterNotifier.next(); + } + })); + }; } - return oldMethod.call.apply(oldMethod, [this].concat(parameters)).pipe(operators_1.tap(function () { - if (cacheBusterConfig.cacheBusterNotifier) { - cacheBusterConfig.cacheBusterNotifier.next(); - } - })); + ; + return propertyDescriptor; }; -}); +} +exports.CacheBuster = CacheBuster; +; //# sourceMappingURL=cache-buster.decorator.js.map \ No newline at end of file diff --git a/dist/cache-buster.decorator.js.map b/dist/cache-buster.decorator.js.map index 0edcf4d..c59a86d 100644 --- a/dist/cache-buster.decorator.js.map +++ b/dist/cache-buster.decorator.js.map @@ -1 +1 @@ -{"version":3,"file":"cache-buster.decorator.js","sourceRoot":"","sources":["../cache-buster.decorator.ts"],"names":[],"mappings":";;AACA,4CAAqC;AACrC,mCAAoD;AAGvC,QAAA,WAAW,GAAG,iCAAwB,CACjD,UAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAqC;IACnE,6EAA6E;IAC5E,kBAAkB,CAAC,KAAa,GAAG;QAAS,oBAAa;aAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;YAAb,+BAAa;;QACxD,OAAQ,SAAS,CAAC,IAAI,OAAd,SAAS,GAAM,IAAI,SAAK,UAAU,EAAqB,CAAC,IAAI,CAClE,eAAG,CAAC;YACF,IAAI,iBAAiB,CAAC,mBAAmB,EAAE;gBACzC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;aAC9C;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CACF,CAAC"} \ No newline at end of file +{"version":3,"file":"cache-buster.decorator.js","sourceRoot":"","sources":["../cache-buster.decorator.ts"],"names":[],"mappings":";;AAGA,4CAAqC;AAErC,qBAA4B,iBAAsC;IAChE,OAAO,UACL,OAAe,EACf,YAAoB,EACpB,kBAAwE;QAExE,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAC3C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,EAAE;YAClD,6EAA6E;YAC5E,kBAAkB,CAAC,KAAa,GAAG;gBAAU,oBAAa;qBAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;oBAAb,+BAAa;;gBACzD,OAAQ,SAAS,CAAC,IAAI,OAAd,SAAS,GAAM,IAAI,SAAK,UAAU,EAAqB,CAAC,IAAI,CAClE,eAAG,CAAC;oBACF,IAAI,iBAAiB,CAAC,mBAAmB,EAAE;wBACzC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;qBAC9C;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC;SACH;QAAA,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AArBD,kCAqBC;AAAA,CAAC"} \ No newline at end of file diff --git a/dist/cacheable.decorator.d.ts b/dist/cacheable.decorator.d.ts index 2304d90..223dfb4 100644 --- a/dist/cacheable.decorator.d.ts +++ b/dist/cacheable.decorator.d.ts @@ -1,4 +1,5 @@ import { Observable, Subject } from 'rxjs'; +import { ICacheable } from './common'; import { IObservableCacheConfig } from './common/IObservableCacheConfig'; export declare const globalCacheBusterNotifier: Subject; -export declare const Cacheable: (cacheConfig?: IObservableCacheConfig) => (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor<(...args: any[]) => Observable>) => TypedPropertyDescriptor<(...args: any[]) => Observable>; +export declare function Cacheable(cacheConfig?: IObservableCacheConfig): (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor>>) => TypedPropertyDescriptor>>; diff --git a/dist/cacheable.decorator.js b/dist/cacheable.decorator.js index 37fcf64..8cec757 100644 --- a/dist/cacheable.decorator.js +++ b/dist/cacheable.decorator.js @@ -4,104 +4,115 @@ var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var common_1 = require("./common"); exports.globalCacheBusterNotifier = new rxjs_1.Subject(); -exports.Cacheable = common_1.makeCacheableDecorator(function (propertyDescriptor, oldMethod, cachePairs, pendingCachePairs, cacheConfig) { - /** - * subscribe to the globalCacheBuster - * if a custom cacheBusterObserver is passed, subscribe to it as well - * subscribe to the cacheBusterObserver and upon emission, clear all caches - */ - rxjs_1.merge(exports.globalCacheBusterNotifier.asObservable(), cacheConfig.cacheBusterObserver - ? cacheConfig.cacheBusterObserver - : rxjs_1.empty()).subscribe(function (_) { - cachePairs.length = 0; - pendingCachePairs.length = 0; - }); - cacheConfig.cacheResolver = cacheConfig.cacheResolver - ? cacheConfig.cacheResolver - : common_1.DEFAULT_CACHE_RESOLVER; - /* use function instead of an arrow function to keep context of invocation */ - propertyDescriptor.value = function () { - var _parameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - _parameters[_i] = arguments[_i]; - } - var parameters = JSON.parse(JSON.stringify(_parameters)); - var _foundCachePair = cachePairs.find(function (cp) { - return cacheConfig.cacheResolver(cp.parameters, parameters); - }); - var _foundPendingCachePair = pendingCachePairs.find(function (cp) { - return cacheConfig.cacheResolver(cp.parameters, parameters); - }); - /** - * check if maxAge is passed and cache has actually expired - */ - if (cacheConfig.maxAge && _foundCachePair && _foundCachePair.created) { - if (new Date().getTime() - _foundCachePair.created.getTime() > - cacheConfig.maxAge) { - /** - * cache duration has expired - remove it from the cachePairs array - */ - cachePairs.splice(cachePairs.indexOf(_foundCachePair), 1); - _foundCachePair = null; - } - else if (cacheConfig.slidingExpiration) { - /** - * renew cache duration - */ - _foundCachePair.created = new Date(); - } - } - if (_foundCachePair) { - var cached$ = rxjs_1.of(_foundCachePair.response); - return cacheConfig.async ? cached$.pipe(operators_1.delay(0)) : cached$; - } - else if (_foundPendingCachePair) { - return _foundPendingCachePair.response; - } - else { - var response$ = oldMethod.call.apply(oldMethod, [this].concat(parameters)).pipe(operators_1.finalize(function () { - /** - * if there has been an observable cache pair for these parameters, when it completes or errors, remove it - */ - var _pendingCachePairToRemove = pendingCachePairs.find(function (cp) { +function Cacheable(cacheConfig) { + if (cacheConfig === void 0) { cacheConfig = {}; } + return function (_target, _propertyKey, propertyDescriptor) { + var oldMethod = propertyDescriptor.value; + if (propertyDescriptor && propertyDescriptor.value) { + var cachePairs_1 = []; + var pendingCachePairs_1 = []; + /** + * subscribe to the globalCacheBuster + * if a custom cacheBusterObserver is passed, subscribe to it as well + * subscribe to the cacheBusterObserver and upon emission, clear all caches + */ + rxjs_1.merge(exports.globalCacheBusterNotifier.asObservable(), cacheConfig.cacheBusterObserver + ? cacheConfig.cacheBusterObserver + : rxjs_1.empty()).subscribe(function (_) { + cachePairs_1.length = 0; + pendingCachePairs_1.length = 0; + }); + cacheConfig.cacheResolver = cacheConfig.cacheResolver + ? cacheConfig.cacheResolver + : common_1.DEFAULT_CACHE_RESOLVER; + /* use function instead of an arrow function to keep context of invocation */ + propertyDescriptor.value = function () { + var _parameters = []; + for (var _i = 0; _i < arguments.length; _i++) { + _parameters[_i] = arguments[_i]; + } + var parameters = _parameters.map(function (param) { return param !== undefined ? JSON.parse(JSON.stringify(param)) : param; }); + var _foundCachePair = cachePairs_1.find(function (cp) { + return cacheConfig.cacheResolver(cp.parameters, parameters); + }); + var _foundPendingCachePair = pendingCachePairs_1.find(function (cp) { return cacheConfig.cacheResolver(cp.parameters, parameters); }); - pendingCachePairs.splice(pendingCachePairs.indexOf(_pendingCachePairToRemove), 1); - }), operators_1.tap(function (response) { /** - * if no maxCacheCount has been passed - * if maxCacheCount has not been passed, just shift the cachePair to make room for the new one - * if maxCacheCount has been passed, respect that and only shift the cachePairs if the new cachePair will make them exceed the count + * check if maxAge is passed and cache has actually expired */ - if (!cacheConfig.shouldCacheDecider || - cacheConfig.shouldCacheDecider(response)) { - if (!cacheConfig.maxCacheCount || - cacheConfig.maxCacheCount === 1 || - (cacheConfig.maxCacheCount && - cacheConfig.maxCacheCount < cachePairs.length + 1)) { - cachePairs.shift(); + if (cacheConfig.maxAge && _foundCachePair && _foundCachePair.created) { + if (new Date().getTime() - _foundCachePair.created.getTime() > + cacheConfig.maxAge) { + /** + * cache duration has expired - remove it from the cachePairs array + */ + cachePairs_1.splice(cachePairs_1.indexOf(_foundCachePair), 1); + _foundCachePair = null; } - cachePairs.push({ + else if (cacheConfig.slidingExpiration) { + /** + * renew cache duration + */ + _foundCachePair.created = new Date(); + } + } + if (_foundCachePair) { + var cached$ = rxjs_1.of(_foundCachePair.response); + return cacheConfig.async ? cached$.pipe(operators_1.delay(0)) : cached$; + } + else if (_foundPendingCachePair) { + return _foundPendingCachePair.response; + } + else { + var response$ = oldMethod.call.apply(oldMethod, [this].concat(parameters)).pipe(operators_1.finalize(function () { + /** + * if there has been an observable cache pair for these parameters, when it completes or errors, remove it + */ + var _pendingCachePairToRemove = pendingCachePairs_1.find(function (cp) { + return cacheConfig.cacheResolver(cp.parameters, parameters); + }); + pendingCachePairs_1.splice(pendingCachePairs_1.indexOf(_pendingCachePairToRemove), 1); + }), operators_1.tap(function (response) { + /** + * if no maxCacheCount has been passed + * if maxCacheCount has not been passed, just shift the cachePair to make room for the new one + * if maxCacheCount has been passed, respect that and only shift the cachePairs if the new cachePair will make them exceed the count + */ + if (!cacheConfig.shouldCacheDecider || + cacheConfig.shouldCacheDecider(response)) { + if (!cacheConfig.maxCacheCount || + cacheConfig.maxCacheCount === 1 || + (cacheConfig.maxCacheCount && + cacheConfig.maxCacheCount < cachePairs_1.length + 1)) { + cachePairs_1.shift(); + } + cachePairs_1.push({ + parameters: parameters, + response: response, + created: cacheConfig.maxAge ? new Date() : null + }); + } + }), + /** + * replay cached observable, so we don't enter finalize and tap for every cached observable subscription + */ + operators_1.shareReplay()); + /** + * cache the stream + */ + pendingCachePairs_1.push({ parameters: parameters, - response: response, - created: cacheConfig.maxAge ? new Date() : null + response: response$, + created: new Date() }); + return response$; } - }), - /** - * replay cached observable, so we don't enter finalize and tap for every cached observable subscription - */ - operators_1.shareReplay()); - /** - * cache the stream - */ - pendingCachePairs.push({ - parameters: parameters, - response: response$, - created: new Date() - }); - return response$; + }; } + return propertyDescriptor; }; -}); +} +exports.Cacheable = Cacheable; +; //# sourceMappingURL=cacheable.decorator.js.map \ No newline at end of file diff --git a/dist/cacheable.decorator.js.map b/dist/cacheable.decorator.js.map index aaa321c..11b26a1 100644 --- a/dist/cacheable.decorator.js.map +++ b/dist/cacheable.decorator.js.map @@ -1 +1 @@ -{"version":3,"file":"cacheable.decorator.js","sourceRoot":"","sources":["../cacheable.decorator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"cacheable.decorator.js","sourceRoot":"","sources":["../cacheable.decorator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/cacheable.decorator.spec.js b/dist/cacheable.decorator.spec.js index 4bc3a5d..a57eaf0 100644 --- a/dist/cacheable.decorator.spec.js +++ b/dist/cacheable.decorator.spec.js @@ -56,6 +56,9 @@ var Service = /** @class */ (function () { Service.prototype.mockSaveServiceCall = function () { return rxjs_1.timer(1000).pipe(operators_1.mapTo('SAVED')); }; + Service.prototype.mockServiceCallWithMultipleParameters = function (parameter1, parameter2) { + return rxjs_1.timer(1000).pipe(operators_1.mapTo({ payload: [parameter1, parameter2] })); + }; Service.prototype.getData = function (parameter) { return this.mockServiceCall(parameter); }; @@ -95,6 +98,15 @@ var Service = /** @class */ (function () { Service.prototype.getDataWithCacheBusting = function (parameter) { return this.mockServiceCall(parameter); }; + Service.prototype.getDataWithUndefinedParameter = function (parameter) { + if (parameter === void 0) { parameter = ''; } + return this.mockServiceCall(parameter); + }; + Service.prototype.getDataWithMultipleUndefinedParameters = function (parameter, parameter1) { + if (parameter === void 0) { parameter = 'Parameter1'; } + if (parameter1 === void 0) { parameter1 = 'Parameter2'; } + return this.mockServiceCallWithMultipleParameters(parameter, parameter1); + }; __decorate([ cacheable_decorator_1.Cacheable() ], Service.prototype, "getData", null); @@ -162,6 +174,12 @@ var Service = /** @class */ (function () { cacheBusterObserver: cacheBusterNotifier.asObservable() }) ], Service.prototype, "getDataWithCacheBusting", null); + __decorate([ + cacheable_decorator_1.Cacheable() + ], Service.prototype, "getDataWithUndefinedParameter", null); + __decorate([ + cacheable_decorator_1.Cacheable() + ], Service.prototype, "getDataWithMultipleUndefinedParameters", null); return Service; }()); describe('CacheableDecorator', function () { @@ -652,6 +670,20 @@ describe('CacheableDecorator', function () { */ expect(mockServiceCallSpy).toHaveBeenCalledTimes(6); }); + it('should not change undefined parameters to null', function () { + service.getDataWithUndefinedParameter(undefined); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + service.getDataWithUndefinedParameter(); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + var mockServiceCallWithMultipleParametersSpy = spyOn(service, 'mockServiceCallWithMultipleParameters').and.callThrough(); + var asyncData = _timedStreamAsyncAwait(service.getDataWithMultipleUndefinedParameters(undefined, undefined), 1000); + expect(asyncData).toEqual({ payload: ['Parameter1', 'Parameter2'] }); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledWith('Parameter1', 'Parameter2'); + service.getDataWithMultipleUndefinedParameters(undefined, undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(1); + service.getDataWithMultipleUndefinedParameters('Parameter1', undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(2); + }); }); function _timedStreamAsyncAwait(stream$, skipTime) { var response = null; diff --git a/dist/cacheable.decorator.spec.js.map b/dist/cacheable.decorator.spec.js.map index e7679f3..c295442 100644 --- a/dist/cacheable.decorator.spec.js.map +++ b/dist/cacheable.decorator.spec.js.map @@ -1 +1 @@ -{"version":3,"file":"cacheable.decorator.spec.js","sourceRoot":"","sources":["../cacheable.decorator.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"cacheable.decorator.spec.js","sourceRoot":"","sources":["../cacheable.decorator.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/common/index.d.ts b/dist/common/index.d.ts index 0e118ba..7c14f42 100644 --- a/dist/common/index.d.ts +++ b/dist/common/index.d.ts @@ -5,5 +5,4 @@ export declare const DEFAULT_CACHE_RESOLVER: (oldParams: any, newParams: any) => export declare type ICacheRequestResolver = (oldParameters: Array, newParameters: Array) => boolean; export declare type IShouldCacheDecider = (response: any) => boolean; export declare type ICacheable = (...args) => T; -export declare const makeCacheableDecorator: (decorate: (propertyDescriptor: TypedPropertyDescriptor>, oldMethod: ICacheable, cachePairs: ICachePair[], pendingCachePairs: ICachePair[], cacheConfig: K) => void) => (cacheConfig?: K) => (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor>) => TypedPropertyDescriptor>; -export declare const makeCacheBusterDecorator: (decorate: (propertyDescriptor: TypedPropertyDescriptor>, oldMethod: ICacheable, cacheBusterConfig: ICacheBusterConfig) => void) => (cacheBusterConfig?: ICacheBusterConfig) => (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor>) => TypedPropertyDescriptor>; +export { ICacheBusterConfig, ICacheConfig, ICachePair }; diff --git a/dist/common/index.js b/dist/common/index.js index 38ebc92..cad6eea 100644 --- a/dist/common/index.js +++ b/dist/common/index.js @@ -3,28 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_CACHE_RESOLVER = function (oldParams, newParams) { return JSON.stringify(oldParams) === JSON.stringify(newParams); }; -exports.makeCacheableDecorator = function (decorate) { - return function Cacheable(cacheConfig) { - return function (_target, _propertyKey, propertyDescriptor) { - var oldMethod = propertyDescriptor.value; - if (propertyDescriptor && propertyDescriptor.value) { - var cachePairs = []; - var pendingCachePairs = []; - decorate(propertyDescriptor, oldMethod, cachePairs, pendingCachePairs, cacheConfig ? cacheConfig : {}); - } - return propertyDescriptor; - }; - }; -}; -exports.makeCacheBusterDecorator = function (decorate) { - return function CacheBuster(cacheBusterConfig) { - return function (_target, _propertyKey, propertyDescriptor) { - var oldMethod = propertyDescriptor.value; - if (propertyDescriptor && propertyDescriptor.value) { - decorate(propertyDescriptor, oldMethod, cacheBusterConfig); - } - return propertyDescriptor; - }; - }; -}; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/common/index.js.map b/dist/common/index.js.map index 06673d4..8a8515f 100644 --- a/dist/common/index.js.map +++ b/dist/common/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../common/index.ts"],"names":[],"mappings":";;AAIa,QAAA,sBAAsB,GAAG,UAAC,SAAS,EAAE,SAAS;IACzD,OAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAAvD,CAAuD,CAAC;AAW7C,QAAA,sBAAsB,GAAG,UACpC,QAMS;IAET,OAAO,mBAAmB,WAAe;QACvC,OAAO,UACL,OAAe,EACf,YAAoB,EACpB,kBAA0D;YAE1D,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAC3C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,EAAE;gBAClD,IAAM,UAAU,GAA2B,EAAE,CAAC;gBAC9C,IAAM,iBAAiB,GAAyB,EAAE,CAAC;gBACnD,QAAQ,CACN,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,EAAQ,CACtC,CAAC;aACH;YACD,OAAO,kBAAkB,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,wBAAwB,GAAG,UACtC,QAIS;IAET,OAAO,qBAAqB,iBAAsC;QAChE,OAAO,UACL,OAAe,EACf,YAAoB,EACpB,kBAA0D;YAE1D,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAC3C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,EAAE;gBAChD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;aAC7D;YACD,OAAO,kBAAkB,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../common/index.ts"],"names":[],"mappings":";;AAIa,QAAA,sBAAsB,GAAG,UAAC,SAAS,EAAE,SAAS;IACzD,OAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAAvD,CAAuD,CAAC"} \ No newline at end of file diff --git a/dist/promise.cache-buster.decorator.d.ts b/dist/promise.cache-buster.decorator.d.ts index de87766..c8695b4 100644 --- a/dist/promise.cache-buster.decorator.d.ts +++ b/dist/promise.cache-buster.decorator.d.ts @@ -1,2 +1,3 @@ import { ICacheBusterConfig } from './common/ICacheBusterConfig'; -export declare const PCacheBuster: (cacheBusterConfig?: ICacheBusterConfig) => (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>) => TypedPropertyDescriptor<(...args: any[]) => Promise>; +import { ICacheable } from './common'; +export declare function PCacheBuster(cacheBusterConfig?: ICacheBusterConfig): (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor>>) => TypedPropertyDescriptor>>; diff --git a/dist/promise.cache-buster.decorator.js b/dist/promise.cache-buster.decorator.js index 16d0ab4..fb19570 100644 --- a/dist/promise.cache-buster.decorator.js +++ b/dist/promise.cache-buster.decorator.js @@ -1,19 +1,27 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var common_1 = require("./common"); -exports.PCacheBuster = common_1.makeCacheBusterDecorator(function (propertyDescriptor, oldMethod, cacheBusterConfig) { - /* use function instead of an arrow function to keep context of invocation */ - propertyDescriptor.value = function () { - var parameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - parameters[_i] = arguments[_i]; +function PCacheBuster(cacheBusterConfig) { + return function (_target, _propertyKey, propertyDescriptor) { + var oldMethod = propertyDescriptor.value; + if (propertyDescriptor && propertyDescriptor.value) { + /* use function instead of an arrow function to keep context of invocation */ + propertyDescriptor.value = function () { + var parameters = []; + for (var _i = 0; _i < arguments.length; _i++) { + parameters[_i] = arguments[_i]; + } + return oldMethod.call.apply(oldMethod, [this].concat(parameters)).then(function (response) { + if (cacheBusterConfig.cacheBusterNotifier) { + cacheBusterConfig.cacheBusterNotifier.next(); + } + return response; + }); + }; } - return oldMethod.call.apply(oldMethod, [this].concat(parameters)).then(function (response) { - if (cacheBusterConfig.cacheBusterNotifier) { - cacheBusterConfig.cacheBusterNotifier.next(); - } - return response; - }); + ; + return propertyDescriptor; }; -}); +} +exports.PCacheBuster = PCacheBuster; +; //# sourceMappingURL=promise.cache-buster.decorator.js.map \ No newline at end of file diff --git a/dist/promise.cache-buster.decorator.js.map b/dist/promise.cache-buster.decorator.js.map index 6ab1fb8..a82a5b0 100644 --- a/dist/promise.cache-buster.decorator.js.map +++ b/dist/promise.cache-buster.decorator.js.map @@ -1 +1 @@ -{"version":3,"file":"promise.cache-buster.decorator.js","sourceRoot":"","sources":["../promise.cache-buster.decorator.ts"],"names":[],"mappings":";;AAAA,mCAAoD;AAGvC,QAAA,YAAY,GAAG,iCAAwB,CAClD,UAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAqC;IACnE,6EAA6E;IAC5E,kBAAkB,CAAC,KAAa,GAAG;QAAS,oBAAa;aAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;YAAb,+BAAa;;QACxD,OAAQ,SAAS,CAAC,IAAI,OAAd,SAAS,GAAM,IAAI,SAAK,UAAU,EAAkB,CAAC,IAAI,CAC/D,UAAA,QAAQ;YACN,IAAI,iBAAiB,CAAC,mBAAmB,EAAE;gBACzC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;aAC9C;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CACF,CAAC"} \ No newline at end of file +{"version":3,"file":"promise.cache-buster.decorator.js","sourceRoot":"","sources":["../promise.cache-buster.decorator.ts"],"names":[],"mappings":";;AAGA,sBAA6B,iBAAsC;IACjE,OAAO,UACL,OAAe,EACf,YAAoB,EACpB,kBAAqE;QAErE,IAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAC3C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,EAAE;YAClD,6EAA6E;YAC5E,kBAAkB,CAAC,KAAa,GAAG;gBAAU,oBAAa;qBAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;oBAAb,+BAAa;;gBACzD,OAAQ,SAAS,CAAC,IAAI,OAAd,SAAS,GAAM,IAAI,SAAK,UAAU,EAAkB,CAAC,IAAI,CAC/D,UAAA,QAAQ;oBACN,IAAI,iBAAiB,CAAC,mBAAmB,EAAE;wBACzC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;qBAC9C;oBACD,OAAO,QAAQ,CAAC;gBAClB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC;SACH;QAAA,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAtBD,oCAsBC;AAAA,CAAC"} \ No newline at end of file diff --git a/dist/promise.cacheable.decorator.d.ts b/dist/promise.cacheable.decorator.d.ts index 2898cc0..bb3ebb6 100644 --- a/dist/promise.cacheable.decorator.d.ts +++ b/dist/promise.cacheable.decorator.d.ts @@ -1,2 +1,3 @@ +import { ICacheable } from './common'; import { ICacheConfig } from './common/ICacheConfig'; -export declare const PCacheable: (cacheConfig?: ICacheConfig) => (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>) => TypedPropertyDescriptor<(...args: any[]) => Promise>; +export declare function PCacheable(cacheConfig?: ICacheConfig): (_target: Object, _propertyKey: string, propertyDescriptor: TypedPropertyDescriptor>>) => TypedPropertyDescriptor>>; diff --git a/dist/promise.cacheable.decorator.js b/dist/promise.cacheable.decorator.js index 2c35589..dd281c1 100644 --- a/dist/promise.cacheable.decorator.js +++ b/dist/promise.cacheable.decorator.js @@ -12,97 +12,108 @@ var removeCachePair = function (cachePairs, parameters, cacheConfig) { }); cachePairs.splice(cachePairs.indexOf(_pendingCachePairToRemove), 1); }; -exports.PCacheable = common_1.makeCacheableDecorator(function (propertyDescriptor, oldMethod, cachePairs, pendingCachePairs, cacheConfig) { - /** - * subscribe to the globalCacheBuster - * if a custom cacheBusterObserver is passed, subscribe to it as well - * subscribe to the cacheBusterObserver and upon emission, clear all caches - */ - rxjs_1.merge(cacheable_decorator_1.globalCacheBusterNotifier.asObservable(), cacheConfig.cacheBusterObserver - ? cacheConfig.cacheBusterObserver - : rxjs_1.empty()).subscribe(function (_) { - cachePairs.length = 0; - pendingCachePairs.length = 0; - }); - cacheConfig.cacheResolver = cacheConfig.cacheResolver - ? cacheConfig.cacheResolver - : common_1.DEFAULT_CACHE_RESOLVER; - /* use function instead of an arrow function to keep context of invocation */ - propertyDescriptor.value = function () { - var _parameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - _parameters[_i] = arguments[_i]; - } - var parameters = JSON.parse(JSON.stringify(_parameters)); - var _foundCachePair = cachePairs.find(function (cp) { - return cacheConfig.cacheResolver(cp.parameters, parameters); - }); - var _foundPendingCachePair = pendingCachePairs.find(function (cp) { - return cacheConfig.cacheResolver(cp.parameters, parameters); - }); - /** - * check if maxAge is passed and cache has actually expired - */ - if (cacheConfig.maxAge && _foundCachePair && _foundCachePair.created) { - if (new Date().getTime() - _foundCachePair.created.getTime() > - cacheConfig.maxAge) { - /** - * cache duration has expired - remove it from the cachePairs array - */ - cachePairs.splice(cachePairs.indexOf(_foundCachePair), 1); - _foundCachePair = null; - } - else if (cacheConfig.slidingExpiration) { - /** - * renew cache duration - */ - _foundCachePair.created = new Date(); - } - } - if (_foundCachePair) { - return Promise.resolve(_foundCachePair.response); - } - else if (_foundPendingCachePair) { - return _foundPendingCachePair.response; - } - else { - var response$ = oldMethod.call.apply(oldMethod, [this].concat(parameters)) - .then(function (response) { +function PCacheable(cacheConfig) { + if (cacheConfig === void 0) { cacheConfig = {}; } + return function (_target, _propertyKey, propertyDescriptor) { + var oldMethod = propertyDescriptor.value; + if (propertyDescriptor && propertyDescriptor.value) { + var cachePairs_1 = []; + var pendingCachePairs_1 = []; + /** + * subscribe to the globalCacheBuster + * if a custom cacheBusterObserver is passed, subscribe to it as well + * subscribe to the cacheBusterObserver and upon emission, clear all caches + */ + rxjs_1.merge(cacheable_decorator_1.globalCacheBusterNotifier.asObservable(), cacheConfig.cacheBusterObserver + ? cacheConfig.cacheBusterObserver + : rxjs_1.empty()).subscribe(function (_) { + cachePairs_1.length = 0; + pendingCachePairs_1.length = 0; + }); + cacheConfig.cacheResolver = cacheConfig.cacheResolver + ? cacheConfig.cacheResolver + : common_1.DEFAULT_CACHE_RESOLVER; + /* use function instead of an arrow function to keep context of invocation */ + propertyDescriptor.value = function () { + var _parameters = []; + for (var _i = 0; _i < arguments.length; _i++) { + _parameters[_i] = arguments[_i]; + } + var parameters = _parameters.map(function (param) { return param !== undefined ? JSON.parse(JSON.stringify(param)) : param; }); + var _foundCachePair = cachePairs_1.find(function (cp) { + return cacheConfig.cacheResolver(cp.parameters, parameters); + }); + var _foundPendingCachePair = pendingCachePairs_1.find(function (cp) { + return cacheConfig.cacheResolver(cp.parameters, parameters); + }); /** - * if no maxCacheCount has been passed - * if maxCacheCount has not been passed, just shift the cachePair to make room for the new one - * if maxCacheCount has been passed, respect that and only shift the cachePairs if the new cachePair will make them exceed the count + * check if maxAge is passed and cache has actually expired */ - if (!cacheConfig.shouldCacheDecider || - cacheConfig.shouldCacheDecider(response)) { - if (!cacheConfig.maxCacheCount || - cacheConfig.maxCacheCount === 1 || - (cacheConfig.maxCacheCount && - cacheConfig.maxCacheCount < cachePairs.length + 1)) { - cachePairs.shift(); + if (cacheConfig.maxAge && _foundCachePair && _foundCachePair.created) { + if (new Date().getTime() - _foundCachePair.created.getTime() > + cacheConfig.maxAge) { + /** + * cache duration has expired - remove it from the cachePairs array + */ + cachePairs_1.splice(cachePairs_1.indexOf(_foundCachePair), 1); + _foundCachePair = null; } - cachePairs.push({ + else if (cacheConfig.slidingExpiration) { + /** + * renew cache duration + */ + _foundCachePair.created = new Date(); + } + } + if (_foundCachePair) { + return Promise.resolve(_foundCachePair.response); + } + else if (_foundPendingCachePair) { + return _foundPendingCachePair.response; + } + else { + var response$ = oldMethod.call.apply(oldMethod, [this].concat(parameters)) + .then(function (response) { + /** + * if no maxCacheCount has been passed + * if maxCacheCount has not been passed, just shift the cachePair to make room for the new one + * if maxCacheCount has been passed, respect that and only shift the cachePairs if the new cachePair will make them exceed the count + */ + if (!cacheConfig.shouldCacheDecider || + cacheConfig.shouldCacheDecider(response)) { + if (!cacheConfig.maxCacheCount || + cacheConfig.maxCacheCount === 1 || + (cacheConfig.maxCacheCount && + cacheConfig.maxCacheCount < cachePairs_1.length + 1)) { + cachePairs_1.shift(); + } + cachePairs_1.push({ + parameters: parameters, + response: response, + created: cacheConfig.maxAge ? new Date() : null + }); + } + removeCachePair(pendingCachePairs_1, parameters, cacheConfig); + return response; + }) + .catch(function (_) { + removeCachePair(pendingCachePairs_1, parameters, cacheConfig); + }); + /** + * cache the stream + */ + pendingCachePairs_1.push({ parameters: parameters, - response: response, - created: cacheConfig.maxAge ? new Date() : null + response: response$, + created: new Date() }); + return response$; } - removeCachePair(pendingCachePairs, parameters, cacheConfig); - return response; - }) - .catch(function (_) { - removeCachePair(pendingCachePairs, parameters, cacheConfig); - }); - /** - * cache the stream - */ - pendingCachePairs.push({ - parameters: parameters, - response: response$, - created: new Date() - }); - return response$; + }; } + return propertyDescriptor; }; -}); +} +exports.PCacheable = PCacheable; +; //# sourceMappingURL=promise.cacheable.decorator.js.map \ No newline at end of file diff --git a/dist/promise.cacheable.decorator.js.map b/dist/promise.cacheable.decorator.js.map index e5fa3fc..0073eaa 100644 --- a/dist/promise.cacheable.decorator.js.map +++ b/dist/promise.cacheable.decorator.js.map @@ -1 +1 @@ -{"version":3,"file":"promise.cacheable.decorator.js","sourceRoot":"","sources":["../promise.cacheable.decorator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"promise.cacheable.decorator.js","sourceRoot":"","sources":["../promise.cacheable.decorator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/promise.cacheable.decorator.spec.js b/dist/promise.cacheable.decorator.spec.js index f37d3ca..527ed97 100644 --- a/dist/promise.cacheable.decorator.spec.js +++ b/dist/promise.cacheable.decorator.spec.js @@ -65,6 +65,13 @@ var Service = /** @class */ (function () { }, 1000); }); }; + Service.prototype.mockServiceCallWithMultipleParameters = function (parameter1, parameter2) { + return new Promise(function (resolve) { + setTimeout(function () { + resolve({ payload: [parameter1, parameter2] }); + }, 1000); + }); + }; Service.prototype.getData = function (parameter) { return this.mockServiceCall(parameter); }; @@ -101,6 +108,15 @@ var Service = /** @class */ (function () { Service.prototype.getDataWithCacheBusting = function (parameter) { return this.mockServiceCall(parameter); }; + Service.prototype.getDataWithUndefinedParameter = function (parameter) { + if (parameter === void 0) { parameter = ''; } + return this.mockServiceCall(parameter); + }; + Service.prototype.getDataWithMultipleUndefinedParameters = function (parameter, parameter1) { + if (parameter === void 0) { parameter = 'Parameter1'; } + if (parameter1 === void 0) { parameter1 = 'Parameter2'; } + return this.mockServiceCallWithMultipleParameters(parameter, parameter1); + }; __decorate([ promise_cacheable_decorator_1.PCacheable() ], Service.prototype, "getData", null); @@ -163,6 +179,12 @@ var Service = /** @class */ (function () { cacheBusterObserver: cacheBusterNotifier.asObservable() }) ], Service.prototype, "getDataWithCacheBusting", null); + __decorate([ + promise_cacheable_decorator_1.PCacheable() + ], Service.prototype, "getDataWithUndefinedParameter", null); + __decorate([ + promise_cacheable_decorator_1.PCacheable() + ], Service.prototype, "getDataWithMultipleUndefinedParameters", null); return Service; }()); describe('PCacheableDecorator', function () { @@ -218,7 +240,7 @@ describe('PCacheableDecorator', function () { } }); }); }); - it('returns observables in cache with a referential type params', function () { + it('returns promises in cache with a referential type params', function () { jasmine.clock().install(); var params = { number: [1] @@ -655,5 +677,30 @@ describe('PCacheableDecorator', function () { } }); }); }); + it('should not change undefined parameters to null', function () { return __awaiter(_this, void 0, void 0, function () { + var mockServiceCallWithMultipleParametersSpy, asyncData; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + service.getDataWithUndefinedParameter(undefined); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + service.getDataWithUndefinedParameter(); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + mockServiceCallWithMultipleParametersSpy = spyOn(service, 'mockServiceCallWithMultipleParameters').and.callThrough(); + service.getDataWithMultipleUndefinedParameters(undefined, undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledWith('Parameter1', 'Parameter2'); + return [4 /*yield*/, service.getDataWithMultipleUndefinedParameters(undefined, undefined)]; + case 1: + asyncData = _a.sent(); + expect(asyncData).toEqual({ payload: ['Parameter1', 'Parameter2'] }); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledWith('Parameter1', 'Parameter2'); + service.getDataWithMultipleUndefinedParameters(undefined, undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(1); + service.getDataWithMultipleUndefinedParameters('Parameter1', undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(2); + return [2 /*return*/]; + } + }); + }); }); }); //# sourceMappingURL=promise.cacheable.decorator.spec.js.map \ No newline at end of file diff --git a/dist/promise.cacheable.decorator.spec.js.map b/dist/promise.cacheable.decorator.spec.js.map index 55de167..55bb09d 100644 --- a/dist/promise.cacheable.decorator.spec.js.map +++ b/dist/promise.cacheable.decorator.spec.js.map @@ -1 +1 @@ -{"version":3,"file":"promise.cacheable.decorator.spec.js","sourceRoot":"","sources":["../promise.cacheable.decorator.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"promise.cacheable.decorator.spec.js","sourceRoot":"","sources":["../promise.cacheable.decorator.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 59e34e1..0a4ae83 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ngx-cacheable", - "version": "1.1.4", + "version": "1.1.5", "description": "Rx Observable cache decorator", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/promise.cacheable.decorator.spec.ts b/promise.cacheable.decorator.spec.ts index 248d9bf..3b8370b 100644 --- a/promise.cacheable.decorator.spec.ts +++ b/promise.cacheable.decorator.spec.ts @@ -20,6 +20,14 @@ class Service { }); } + mockServiceCallWithMultipleParameters(parameter1, parameter2) { + return new Promise(resolve => { + setTimeout(() => { + resolve({payload: [parameter1, parameter2]}); + }, 1000); + }); + } + @PCacheable() getData(parameter: string) { return this.mockServiceCall(parameter); @@ -108,6 +116,16 @@ class Service { getDataWithCacheBusting(parameter: string) { return this.mockServiceCall(parameter); } + + @PCacheable() + getDataWithUndefinedParameter(parameter: string = '') { + return this.mockServiceCall(parameter); + } + + @PCacheable() + getDataWithMultipleUndefinedParameters(parameter: string = 'Parameter1', parameter1: string = 'Parameter2') { + return this.mockServiceCallWithMultipleParameters(parameter, parameter1); + } } describe('PCacheableDecorator', () => { let service: Service = null; @@ -152,7 +170,7 @@ describe('PCacheableDecorator', () => { expect(mockServiceCallSpy).toHaveBeenCalledTimes(4); }); - it('returns observables in cache with a referential type params', () => { + it('returns promises in cache with a referential type params', () => { jasmine.clock().install(); let params = { number: [1] @@ -533,4 +551,27 @@ describe('PCacheableDecorator', () => { */ expect(mockServiceCallSpy).toHaveBeenCalledTimes(6); }); + + it('should not change undefined parameters to null', async () => { + service.getDataWithUndefinedParameter(undefined); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + service.getDataWithUndefinedParameter(); + expect(mockServiceCallSpy).toHaveBeenCalledWith(''); + + let mockServiceCallWithMultipleParametersSpy = spyOn(service, 'mockServiceCallWithMultipleParameters').and.callThrough(); + service.getDataWithMultipleUndefinedParameters(undefined, undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledWith('Parameter1', 'Parameter2'); + + + const asyncData = await service.getDataWithMultipleUndefinedParameters(undefined, undefined); + + expect(asyncData).toEqual({ payload: ['Parameter1', 'Parameter2'] }); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledWith('Parameter1', 'Parameter2'); + + service.getDataWithMultipleUndefinedParameters(undefined, undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(1); + + service.getDataWithMultipleUndefinedParameters('Parameter1', undefined); + expect(mockServiceCallWithMultipleParametersSpy).toHaveBeenCalledTimes(2); + }); }); diff --git a/promise.cacheable.decorator.ts b/promise.cacheable.decorator.ts index b9e3eac..7cad24e 100644 --- a/promise.cacheable.decorator.ts +++ b/promise.cacheable.decorator.ts @@ -49,7 +49,7 @@ export function PCacheable(cacheConfig: ICacheConfig = {}) { /* use function instead of an arrow function to keep context of invocation */ (propertyDescriptor.value as any) = function (..._parameters) { - let parameters = JSON.parse(JSON.stringify(_parameters)); + let parameters = _parameters.map(param => param !== undefined ? JSON.parse(JSON.stringify(param)) : param); let _foundCachePair = cachePairs.find(cp => cacheConfig.cacheResolver(cp.parameters, parameters) );