UNPKG

@powersync/react-native

Version:

PowerSync React Native SDK. Sync Postgres, MongoDB or MySQL with SQLite in your React Native app

23 lines (22 loc) 886 B
import { SqliteBucketStorage } from '@powersync/common'; export class ReactNativeBucketStorageAdapter extends SqliteBucketStorage { control(op, payload) { if (payload instanceof Uint8Array) { // RNQS doesn't accept Uint8Array arguments - convert to ArrayBuffer first. payload = uint8ArrayToArrayBuffer(payload); } return super.control(op, payload); } } function uint8ArrayToArrayBuffer(array) { // SharedArrayBuffer isn't defined on ReactNative, so don't need to cater for that. const arrayBuffer = array.buffer; if (array.byteOffset == 0 && array.byteLength == arrayBuffer.byteLength) { // No copying needed - can use ArrayBuffer as-is return arrayBuffer; } else { // Need to make a copy return arrayBuffer.slice(array.byteOffset, array.byteOffset + array.byteLength); } }