mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-23 05:08:12 +08:00
* type camera
* type reducer store
* type actionhelpers
* type catchErrorsWrap callsite
* missed camera member var
* type nameCreators
* type makeContinousDimensionName callsite
* type promise limit
* type quantile
* type range
* introduce TypedArray + NumericArray
* type range
* cleanup test
* fix call sites
* type plimit call site
* finish typing camera
* use our TypedArray
* type scientific and sigFig utils and callsites
* simple typings
* type catLabelSort
* type callsite
* type
* callsites
* type camera methods
* swap back to strings, set defaults accordingly
* partially type centroid
* explicit tuple and undefined check
* fix references to this
* call constructor with new and casting
* Revert "introduce TypedArray + NumericArray"
This reverts commit cf21538717.
* explicit tuple
* generics and import fixes
* add unsigned 8 clamped arrray
* back to literals
* use arraytypes
* fix return state
* type more actions
* Update client/src/util/actionHelpers.ts
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
* properly type dispatch
* properly type thunk
* use new dispatch
* remove nullish coallescer
* use AppDispatch
* generic jsonrequest
* use dispatch again
* lint
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
41 lines
908 B
TypeScript
41 lines
908 B
TypeScript
/*
|
|
Return the [minimum, maximum] extent, of the given typed array, ignoring
|
|
non-finite values (ie, +Infinity, -Infinity).
|
|
|
|
If undefined or empty array, or array contains only non-finite numbers,
|
|
will return [undefined, undefined]
|
|
*/
|
|
|
|
import type { TypedArray } from "../common/types/arraytypes";
|
|
|
|
function finiteExtent(
|
|
tarr: TypedArray
|
|
): [number, number] | [undefined, undefined] {
|
|
let min;
|
|
let max;
|
|
let i;
|
|
|
|
for (i = 0; i < tarr.length; i += 1) {
|
|
const val = tarr[i];
|
|
if (Number.isFinite(val)) {
|
|
min = val;
|
|
max = val;
|
|
i += 1;
|
|
break;
|
|
}
|
|
}
|
|
if (min !== undefined && max !== undefined) {
|
|
for (; i < tarr.length; i += 1) {
|
|
const val = tarr[i];
|
|
if (Number.isFinite(val)) {
|
|
if (min > val) min = val;
|
|
if (max < val) max = val;
|
|
}
|
|
}
|
|
return [min, max];
|
|
}
|
|
return [undefined, undefined];
|
|
}
|
|
|
|
export default finiteExtent;
|