# RNAsyncStorageManager\<T>

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:10](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L10)

React Native AsyncStorage implementation of IStorageManager. Persists StorageObject instances using React Native's AsyncStorage.

## Type Parameters

| Type Parameter                                                                                                             | Default type                                                                                                 | Description                     |
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------- |
| `T` *extends* [`StorageObject`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/StorageObject.md) | [`StorageObject`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/StorageObject.md) | Type of StorageObject to manage |

## Implements

* [`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md)<`T`>

## Constructors

### Constructor

```
new RNAsyncStorageManager<T>(asyncStoragePrefix): RNAsyncStorageManager<T>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:19](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L19)

Creates a new RNAsyncStorageManager instance

#### Parameters

| Parameter            | Type     | Description                                                  |
| -------------------- | -------- | ------------------------------------------------------------ |
| `asyncStoragePrefix` | `string` | Prefix added to all keys to avoid collisions with other data |

#### Returns

`RNAsyncStorageManager`<`T`>

## Properties

### data

```
data: object = {};
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:29](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L29)

In-memory cache of stored objects, keyed by hash

#### Index Signature

```
[p: string]: T
```

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`data`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#data)

***

### prefix

```
readonly prefix: string;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:13](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L13)

Key prefix used to namespace storage entries

## Methods

### init()

```
init(): Promise<void>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:24](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L24)

Initializes the storage backend

#### Returns

`Promise`<`void`>

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`init`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#init)

***

### loadData()

```
loadData(type): Promise<T[]>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:32](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L32)

Loads all stored objects and deserializes them using the provided constructor

#### Parameters

| Parameter | Type            | Description                                     |
| --------- | --------------- | ----------------------------------------------- |
| `type`    | (`data`) => `T` | Constructor function to instantiate each object |

#### Returns

`Promise`<`T`\[]>

Array of deserialized objects

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`loadData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#loaddata)

***

### removeData()

```
removeData(hash): Promise<void>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:53](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L53)

Removes an object from storage

#### Parameters

| Parameter | Type     | Description                        |
| --------- | -------- | ---------------------------------- |
| `hash`    | `string` | Identifier of the object to remove |

#### Returns

`Promise`<`void`>

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`removeData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#removedata)

***

### removeDataArr()

```
removeDataArr(keys): Promise<void>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:59](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L59)

Removes multiple objects from storage (optional batch operation)

#### Parameters

| Parameter | Type        | Description                    |
| --------- | ----------- | ------------------------------ |
| `keys`    | `string`\[] | Array of identifiers to remove |

#### Returns

`Promise`<`void`>

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`removeDataArr`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#removedataarr)

***

### saveData()

```
saveData(hash, object): Promise<void>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:65](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L65)

Saves an object to storage

#### Parameters

| Parameter | Type     | Description                      |
| --------- | -------- | -------------------------------- |
| `hash`    | `string` | Unique identifier for the object |
| `object`  | `T`      | Object to save                   |

#### Returns

`Promise`<`void`>

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`saveData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#savedata)

***

### saveDataArr()

```
saveDataArr(values): Promise<void>;
```

Defined in: [atomiq-storage-rn-async/src/RNAsyncStorageManager.ts:71](https://github.com/atomiqlabs/atomiq-storage-rn-async/blob/d72db35bdcf39750e50ed13a90edb5c50b764a5b/src/RNAsyncStorageManager.ts#L71)

Saves multiple objects to storage (optional batch operation)

#### Parameters

| Parameter | Type        | Description                      |
| --------- | ----------- | -------------------------------- |
| `values`  | `object`\[] | Array of id-object pairs to save |

#### Returns

`Promise`<`void`>

#### Implementation of

[`IStorageManager`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md).[`saveDataArr`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/IStorageManager.md#savedataarr)
