diff --git a/modules/core/preferences.js b/modules/core/preferences.js index e82d6e338..2a5a88378 100644 --- a/modules/core/preferences.js +++ b/modules/core/preferences.js @@ -20,7 +20,7 @@ const _listeners = {}; // /** * @param {string} k - * @param {string?} v + * @param {string?} [v] * @returns {boolean} true if the action succeeded */ function corePreferences(k, v) { diff --git a/modules/renderer/features.js b/modules/renderer/features.js index 232e4a5ce..da12af03d 100644 --- a/modules/renderer/features.js +++ b/modules/renderer/features.js @@ -71,10 +71,17 @@ export function rendererFeatures(context) { } + /** + * @callback FilterFunction + * @param {Record} tags + * @param {string} [geometry] + * @returns {boolean} + */ + /** * @param {string} k - * @param {(tags: Record, geometry: string) => boolean} filter - * @param {?number} max + * @param {FilterFunction} filter + * @param {number} [max] */ function defineRule(k, filter, max) { var isEnabled = true; @@ -124,11 +131,11 @@ export function rendererFeatures(context) { }, 250); defineRule('building_parts', function isBuildingPart(tags) { - return tags['building:part']; + return !!tags['building:part']; }); defineRule('indoor', function isIndoor(tags) { - return tags.indoor; + return !!tags.indoor; }); defineRule('landuse', function isLanduse(tags, geometry) { @@ -194,8 +201,8 @@ export function rendererFeatures(context) { }); defineRule('aerialways', function isAerialways(tags) { - return tags.aerialway && - tags.aerialway !== 'yes' && + return !!tags?.aerialway && + tags.aerialway !== 'yes' && tags.aerialway !== 'station'; }); @@ -260,7 +267,7 @@ export function rendererFeatures(context) { if (!arguments.length) { return _keys.filter(function(k) { return _rules[k].hidden(); }); } - return _rules[k] && _rules[k].hidden(); + return _rules[k]?.hidden(); };