codex-team/editor.js

BlockTunes API should remove "undefined" tune data

Open

#1,683 创建于 2021年5月14日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)TypeScript (26,602 star) (1,985 fork)batch import
good first issue

描述

While upgrading from 2.18.1 to 2.21.0 I have discovered that tunes is always set and I could have tunes which are undefined or empty objects depending on their state. This can be easily reproduced with:

export default class DisableBlockTune {
  save() {
    if (this.isDefaultState) {
          return;
    }
    return this.data; // whatever this could be: boolean, string with min length of 1 or an abject with at least one property
  }
}

I think if a block-tune is in "default" state it should not be added to the tunes array. What do you think?

The relevant code-part is here: https://github.com/codex-team/editor.js/pull/1596/files#diff-3a2e107229dbebf0e0b7e00160e7faec0cf71e6baf51872078e031789692c8b5R559

My expectation would be:

tuneData = tune.save();
if (tuneData) {
    tunesData[name] = tuneData;
}

贡献者指南