Comments (6)
Can you try calling .toString()
on the id, before calling the method? I think the issue is because the cacheable decorator does not know that it needs to call the toString method on the Guid object to extract the actual guid.
from ts-cacheable.
Yes, i just did that for the id : string
parameter type example before passing it to the method and it works fine. Passing it as id : Guid
to the method displays the object with @Cacheable
in the debugger like that:
{value: "143dffe4-fe9e-40fb-ad49-673f8850bff5"}
So it is still correct but since the type has changed to object
the toString()
method won't work anymore and using Typescript i can't do neither of the two (the latter obviously won't compile due to value
being private in Guid
):
@Cacheable()
getUser(id:Guid) {
return this.http
.get(`api/users/${id.toString()}`);
}
@Cacheable()
getUser(id:Guid) {
return this.http
.get(`api/users/${id.value}`);
}
Do you see a way having the type of Guid
remain a real Guid
type instead of object
?
from ts-cacheable.
I reproduced your use case and it's indeed a bit tricky. However, isn't calling toString
before passing it to the method not a solution for you?
from ts-cacheable.
Sure, it's not the end of the world, but i don't want to change too much of my API, so this is a viable solution for now (which let's me keep my interfaces the same way):
getUser(id:Guid) {
return this.getUserInternal(id.toString());
}
@Cacheable()
private getUserInternal(id:string) {
return this.http
.get(`api/users/${id}`);
}
Maybe you can make it work in a future version, if it is not too tricky... :)
from ts-cacheable.
The issue is that pass the parameters through a JSON.parse(JSON.stringify(parameters))
so we make a deep copy of those because of #7 which is also a valid issue. Let me think about it.
from ts-cacheable.
I see, thanks for taking the time, much appreciated :)
from ts-cacheable.
Related Issues (20)
- GlobalCacheConfig.storageStrategy not used in Angular 9? HOT 7
- Possibility to cache per instance HOT 7
- JSON parse type issues HOT 4
- Cache query params HOT 2
- Refresh data HOT 7
- invoking a function after maxAge ends HOT 1
- How to keep cache isolated between different users ? HOT 5
- inMemoryStorageStrategy: What is the in-memory size that can be utilized using the cacheable decorator? HOT 2
- Does this work with subscribe? HOT 1
- [@CacheBuster()][Feature Proposal] Instant cache busting HOT 3
- Caching for urls without parameters
- Adapt description about "Cache busting" when different parameters are used HOT 4
- Observable<XXXXXX>>' is not assignable to parameter of type 'TypedPropertyDescriptor<ICacheable<Observable<any>>>'. HOT 4
- Support for optional parameters HOT 2
- When browser close, it will reset the cache. HOT 1
- Release number HOT 1
- Bust only one Cache in maxCacheCount HOT 3
- Access cached date HOT 3
- Does Ts-Cachable support typed observables? HOT 4
- StorageStrategy - removeAtIndex add entity to parameters HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ts-cacheable.