Sieve: use Optional chaining operator

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
This commit is contained in:
the-djmaze 2022-05-21 23:58:46 +02:00
parent 3a1046f215
commit e1426b484e
6 changed files with 12 additions and 13 deletions

View file

@ -46,14 +46,13 @@ export class AbstractModel {
onDestroy() {
/** dispose ko subscribables */
this.disposables.forEach(disposable => {
disposable && typeof disposable.dispose === 'function' && disposable.dispose();
typeof disposable?.dispose === 'function' && disposable.dispose();
});
/** clear object entries */
// forEachObjectEntry(this, (key, value) => {
forEachObjectValue(this, value => {
/** clear CollectionModel */
let arr = ko.isObservableArray(value) ? value() : value;
arr && arr.onDestroy && arr.onDestroy();
(ko.isObservableArray(value) ? value() : value)?.onDestroy?.();
/** destroy ko.observable/ko.computed? */
// dispose(value);
/** clear object value */
@ -78,7 +77,7 @@ export class AbstractModel {
*/
static reviveFromJson(json) {
let obj = this.validJson(json) ? new this() : null;
obj && obj.revivePropertiesFromJson(json);
obj?.revivePropertiesFromJson(json);
return obj;
}

View file

@ -65,7 +65,7 @@ export class FilterModel extends AbstractModel {
const fGetRealFolderName = folderFullName => {
// const folder = getFolderFromCacheList(folderFullName);
// return folder ? folder.fullName.replace('.' === folder.delimiter ? /\./ : /[\\/]+/, ' / ') : folderFullName;
// return folder?.fullName.replace('.' === folder.delimiter ? /\./ : /[\\/]+/, ' / ') : folderFullName;
return folderFullName;
};
@ -222,9 +222,9 @@ export class FilterModel extends AbstractModel {
static reviveFromJson(json) {
const filter = super.reviveFromJson(json);
if (filter) {
filter.id = filter.id ? '' + filter.id : '';
filter.id = '' + (filter.id || '');
filter.conditions(
json.Conditions ? json.Conditions.map(aData => FilterConditionModel.reviveFromJson(aData)).filter(v => v) : []
(json.Conditions || []).map(aData => FilterConditionModel.reviveFromJson(aData)).filter(v => v)
);
filter.actionKeep(0 != json.Keep);
filter.actionNoStop(0 == json.Stop);