##### Best Practices

# 📑 `array-callback-return`

![array-callback-return](https://img.shields.io/badge/standard--eslint--config-array--callback--return-%234B32C3.svg?&logo=eslint&logoColor=4B32C3) [![FLAG](https://img.shields.io/badge/FLAG%20FOR%20REVIEW-%23BC0031.svg?&logo=microsoft-academic&logoColor=white)](https://www.omniframe.org)  

This rule enforces a style where it requires to have a getter for every property
which has a setter defined.

**@see**: https://eslint.org/docs/rules/array-callback-return

---

## Rationale

It's a common mistake in JavaScript to create an object with just a setter for a property but never have a corresponding getter defined for it. The opposite is not necessarily true, as it is common for getters to be defined without setters to make a property immutable from the outside without compromising mutability internally. The rule will warn you during development but remain silent while building for production.

---

## Options

| Option                   | Type      | Default |  Description                                                                                                                                                    |
|--------------------------|-----------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `setWithoutGet`          | `boolean` | `true`  | Set to `true` will warn for setters without getters                                                                                                             |
| `getWithoutSet`          | `boolean` | `false` | Set to `true` will warn for getters without setters                                                                                                             |
| `enforceForClassMembers` | `boolean` | `true`  | Set to `true` additionally applies this rule to class getters/setters. Set to `false` if you want this rule to ignore class declarations and class expressions. |

---

## Tests

* **'array-callback-return'**
  * when environment is development
    * should have the correct rule
    * should be discouraged
    * should use the default options
  * when environment is production
    * should have the correct rule
    * should be disabled
    * should use the default options

---

Copyright (c) 2020 Omniframe Foundation, Inc. (https://www.omniframe.org/)

[![EMAIL](https://img.shields.io/badge/engineering@omniframe.org-%230078D4.svg?&logo=microsoft-outlook&logoColor=white)](mailto:engineering@omniframe.org)  [![WEBSITE](https://img.shields.io/badge/https%3a//www.omniframe.org-%23000000.svg?&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF6GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDktMTRUMjI6MTYtMDU6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDktMTRUMjI6MTYtMDU6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA5LTE0VDIyOjE2LTA1OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjllMjQ0NTA1LWJiZDQtNGI3NS1hNDg2LTQ0OTcyY2UyNzA2NCIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBlOGUxN2VjLWFjNGUtZmI0MS05ZjE3LTM1YWI5MWQ4OGZiMiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmZmNDY2NzJjLWE3ZDMtNDhhYS05YWEzLWU5ODA5NDkxNDZjZSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZmY0NjY3MmMtYTdkMy00OGFhLTlhYTMtZTk4MDk0OTE0NmNlIiBzdEV2dDp3aGVuPSIyMDIwLTA5LTE0VDIyOjE2LTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWUyNDQ1MDUtYmJkNC00Yjc1LWE0ODYtNDQ5NzJjZTI3MDY0IiBzdEV2dDp3aGVuPSIyMDIwLTA5LTE0VDIyOjE2LTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7eGjaHAAACJUlEQVRYw8XXP2gUQRTH8UMkEgnBQhQhXCFp1CpWhzYWFiktLVQELRSDfyotJFimEEmngoWghYWIjZLC0sJKrKysREhjkSIQCMGPhe90Hed2Z/cOHFhY9g3z+857+2be66H3P59OA7txEV+whkHHdcYS3sEzfPBrtAYpBsAunK8IP8U8DmAKiwnI8YkAhPBZfE6ED2EVW/iKKxmQ11joBJAIb+NxRjgdrUH+AcgIP0K/QbgzyG+ACQm3BkGvhyMZ4f2431E4B3I5MigF6fVwJj70Y9IevDTZsYWlireX4/sfgDC+wx3MYBApNa7waoRyPrJoKc6SLMCnMHwfEyQnvBO2myUAKiDXw1YCUhWeTYS1BUh3cbXGI23mNgLUuS8NzZsWc9dKAG5hLrOYTGjuYC8OF86dwUmcrgOYjuc5fhT8bKfCA01jA9dCY6oO4D1W4iA6ihcNIE0AG7iHfViIw+dGyU+4WQgyCiAnrEsabuJ22HIgKUBVeBavMnDFANXFBrib8cgQIN3xcmRGDroRIF3sbeKRamj6AZdz9RYeZKBrAS6MWEwmNCvh5mOFc4cgJ7IAlat4Gg/jep5UGq7jUmxyER+rANVKt1oT9ON9ewyA9XD5dKZwHfxVknUEGQVQK1xblGZAnsTRPJcpz1KAbyXCRWV5pgnJleRDgFH1X22zUtSYNIAcjCxoJdypNasBaS3cuTfMgOjaF3YGSEDOde2MhwA/AY+ANDba2/KnAAAAAElFTkSuQmCC&logoColor=white)](https://www.robhameetman.com)  
[![LINKEDIN](https://img.shields.io/badge/LinkedIn-%230077B5.svg?&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/rhameetman/) [![TWITTER](https://img.shields.io/badge/Twitter-%231DA1F2.svg?&logo=twitter&logoColor=white)](https://twitter.com/RobHameetman) [![SO](https://img.shields.io/badge/StackOverflow-%232d2d2d.svg?&logo=stack-overflow&logoColor=FE7A16)](https://twitter.com/RobHameetman)  

[![LICENSE](https://img.shields.io/badge/License-MIT-%232d2d2d.svg?&logo=open-source-initiative&logoColor=3DA639)](https://github.com/RobHameetman/RobHameetman/blob/master/LICENSE)

This document is licensed under the MIT License.  
See the [LICENSE](https://github.com/RobHameetman/RobHameetman/blob/master/LICENSE) file for details.

[header]: https://github.com/RobHameetman/RobHameetman/blob/master/.github/header.png '@rob.hameetman'