Avoid executing unnecessary write operations to flash/UCI when the
user's form selection or input exactly matches the component's
`default` configuration.
Previously, if a field had a valid value identical to its default,
it would bypass the empty check and trigger a `write()` call, leading
to configuration bloating. This change ensures that such values are
correctly intercepted and handled via `this.remove()` to keep the
underlying configuration file clean and precise.
Signed-off-by: Andy Chiang <redacted>
const cval = this.cfgvalue(section_id);
const fval = this.formvalue(section_id);
- if (fval == null || fval == '') {
+ if (fval == null || fval == '' || (fval == this.default && (this.optional || this.rmempty))) {
if (this.rmempty || this.optional) {
return Promise.resolve(this.remove(section_id));
}