Ghost/ghost/custom-theme-settings-service/lib/cache.js
Kevin Ansfield dbf7d33c88 Added tests for Cache class, fixed singular .get('key') behaviour
refs https://github.com/TryGhost/Team/issues/1104

- `.get('key')` would error because it was incorrectly expecting the internal content object to contain `{key, value}` objects
- changed `.getAll()` to return a shallow copy of the internal content object so we don't leak references that can result in unexpected changes to the cache content
- changed the internal content object naming to `_content` to highlight that it's an internal/private implementation detail rather than a public API
2021-10-06 13:12:26 +01:00

28 lines
521 B
JavaScript

module.exports = class CustomThemeSettingsCache {
constructor() {
this._content = new Object();
}
get(key) {
return this._content[key];
}
getAll() {
return Object.assign({}, this._content);
}
populate(settings) {
this.clear();
settings.forEach((setting) => {
this._content[setting.key] = setting.value;
});
}
clear() {
for (const key in this._content) {
delete this._content[key];
}
}
};