[RFC]: add `ndarray/base/scalar-dtype`
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 1.3k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 611
Description
### Description
This RFC proposes to add `ndarray/base/scalar-dtype` that encapsulates the logic for resolving a default ndarray data type from a scalar value.
The scalar-to-dtype resolution logic is currently duplicated across multiple packages (e.g., `ndarray/base/atleastnd`, `ndarray/from-scalar`) and should be extracted into a dedicated reusable package.
### Related Issues
- TODO comment in `ndarray/base/atleastnd/lib/main.js`
> ```javascript
> // For scalar values, resolve a corresponding ndarray data type...
> if ( isNumber( v ) ) { // TODO: consider abstracting this logic to an `ndarray/base/scalar-dtype` (???) package, as this logic is found elsewhere (e.g., `ndarray/from-scalar`) and it would be good to avoid duplication, especially as we add support for more ndarray data types
> ```
### Questions
No.
### Other
No.
### Checklist
- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [x] Searched for existing issues and pull requests.
- [x] The issue name begins with `RFC:`.
Contributor guide
Research direction
Start by reading the TODO in ndarray/base/atleastnd/lib/main.js and compare the duplicated scalar-to-dtype logic in ndarray/from-scalar. Define the reusable ndarray/base/scalar-dtype package around that shared behavior, with completion meaning the relevant packages can use one consistent resolution implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- data
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100