|
|
@ -36,14 +36,23 @@ module.exports = function createObject(options) { |
|
|
|
transformedProperties = properties; |
|
|
|
} |
|
|
|
|
|
|
|
Object.assign(this, transformedProperties); |
|
|
|
|
|
|
|
if (Object.keys(transformedProperties).some(property => this.sizeBustingProperties.includes(property))) { |
|
|
|
/* If the size changes, the cache should also be implicitly busted. */ |
|
|
|
this.bustSize(); |
|
|
|
this.bustCache(); |
|
|
|
} else if (Object.keys(transformedProperties).some(property => this.cacheBustingProperties.includes(property))) { |
|
|
|
this.bustCache(); |
|
|
|
Object.keys(transformedProperties).forEach((property) => { |
|
|
|
/* Don't apply unchanged properties, to prevent unnecessary cache or size busting. */ |
|
|
|
if (this[property] === transformedProperties[property]) { |
|
|
|
delete transformedProperties[property]; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
if (Object.keys(transformedProperties).length > 0) { |
|
|
|
Object.assign(this, transformedProperties); |
|
|
|
|
|
|
|
if (Object.keys(transformedProperties).some(property => this.sizeBustingProperties.includes(property))) { |
|
|
|
/* If the size changes, the cache should also be implicitly busted. */ |
|
|
|
this.bustSize(); |
|
|
|
this.bustCache(); |
|
|
|
} else if (Object.keys(transformedProperties).some(property => this.cacheBustingProperties.includes(property))) { |
|
|
|
this.bustCache(); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
render: function renderObject(context, options = {}) { |
|
|
|