Polyfill for RFC 566 "@cached decorator".
ember install ember-richgt-test-package-do-not-use
For addons, pass the -S
flag.
- Ember.js v3.13 or above
- Ember CLI v2.13 or above
- Node.js v10 or above
Add a @cached
decorator for memoizing the result of a getter based on
autotracking. In the following example, fullName
would only recalculate if
firstName
or lastName
is updated.
import { tracked, cached } from '@glimmer/tracking';
class Person {
@tracked firstName = 'Jen';
@tracked lastName = 'Weber';
@cached
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}
For detailed usage instructions, refer to the RFC 566 "@cached decorator".
TypeScript's normal type resolution for an import from @glimmer/tracking
will not find the types provided by this polyfill, since the actual
@glimmer/tracking
package does not include an export for cache
.
In order for TypeScript to recognize the extra cache
export, add an import
like this somewhere in your codebase (like app.ts
or test-helper.ts
):
import 'ember-richgt-test-package-do-not-use';
Once the upstream types have been updated to reflect RFC 566, this will no longer be necessary.