bitmovin-player-react-native
Version:
Official React Native bindings for Bitmovin's mobile Player SDKs.
17 lines (16 loc) • 534 B
text/typescript
export function normalizeNonFinite<T>(input: T): T {
const sentinelPrefix = 'BMP_';
function walk(v: any): any {
if (v === `${sentinelPrefix}Infinity`) return Infinity;
if (v === `${sentinelPrefix}-Infinity`) return -Infinity;
if (v === `${sentinelPrefix}NaN`) return NaN;
if (Array.isArray(v)) return v.map(walk);
if (v && typeof v === 'object') {
const out: any = {};
for (const k of Object.keys(v)) out[k] = walk((v as any)[k]);
return out;
}
return v;
}
return walk(input);
}