ya-webadb/libraries/dataview-bigint-polyfill
2022-03-22 18:16:43 +08:00
..
src feat: convert to Node.js compatible ES Module 2022-03-15 16:53:07 +08:00
LICENSE chore: update license year 2022-01-17 01:27:55 +08:00
package.json refactor: simplify base64 methods and rewrite test 2022-03-22 18:16:43 +08:00
README.md feat(struct): include polyfill for bigint types 2022-02-02 18:14:47 +08:00
tsconfig.json feat: add dataview bigint polyfill package 2022-01-17 01:22:41 +08:00

@yume-chan/dataview-bigint-polyfill

Polyfill for DataView#getBigInt64, DataView#getBigUint64, DataView#setBigInt64 and DataView#setBigUint64.

Requires native BigInt support.

Flavors

It ships with 3 flavors:

Pure: provide alternative implementations.

import { getBigInt64, getBigUint64, setBigInt64, setBigUint64 } from '@yume-chan/dataview-bigint-polyfill';

getBigInt64(dataView, byteOffset, littleEndian);
getBigUint64(dataView, byteOffset, littleEndian);
setBigInt64(dataView, byteOffset, value, littleEndian);
setBigUint64(dataView, byteOffset, value, littleEndian);

Fallback: use native implementations if available.

import { getBigInt64, getBigUint64, setBigInt64, setBigUint64 } from '@yume-chan/dataview-bigint-polyfill/esm/fallback';

getBigInt64(dataView, byteOffset, littleEndian);
getBigUint64(dataView, byteOffset, littleEndian);
setBigInt64(dataView, byteOffset, value, littleEndian);
setBigUint64(dataView, byteOffset, value, littleEndian);

Polyfill: patch DataView.prototype when native support is not available.

import '@yume-chan/dataview-bigint-polyfill/esm/polyfill.js';

dataView.getBigInt64(byteOffset, littleEndian);
dataView.getBigUint64(byteOffset, littleEndian);
dataView.setBigInt64(byteOffset, value, littleEndian);
dataView.setBigUint64(byteOffset, value, littleEndian);