---
name: "setStorage"
mode: "kit"
versionRequirements:
  - { name: "BaseKit", version: "2.0.1" }
  - { name: "@ray-js/ray", version: "0.3.23" }
platform:
  - "iOS"
  - "Android"
async: true
---

## setStorage

> [VERSION] BaseKit >= 2.0.1 | @ray-js/ray >= 0.3.23

> [PLATFORM] iOS, Android

> ⚡ **Supports Promise** — Returns a Promise when success / fail / complete callbacks are omitted.

### Description

Store data in local storage under the specified key. Overwrites any existing value for that key. Data persists unless the user deletes it or the system clears it due to storage constraints. The maximum size per key is 1 MB, and the total storage limit is 10 MB.

### Parameters

| Property | Type | Required | Default | Since | Description |
| --- | --- | --- | --- | --- | --- |
| `key` | `string` | Yes | - | `2.0.1` | The specified key in local storage |
| `data` | `string` | Yes | - | `2.0.1` | Value for the key |
| `complete` | `() => void` | No | - | - | Completion callback (executed on both success and failure) |
| `success` | `() => void` | No | - | - | Callback on successful API call |
| `fail` | `(params: Object) => void` ↓see below | No | - | - | Failure callback |

#### fail callback parameters

| Property | Type | Description |
| --- | --- | --- |
| `errorMsg` | `string` | Error message |
| `errorCode` | `string \| number` | Error code |
| `innerError` | `Object` | Error extension |

##### fail(params).innerError properties

| Property | Type | Description |
| --- | --- | --- |
| `errorCode` | `string \| number` | Error extension code |
| `errorMsg` | `string` | Error extension message |


### Examples

#### Demo

```tsx
import { setStorage } from '@ray-js/ray'

// Write data to the specified key in local storage (overwrites existing content)
setStorage({
  key: "demoKey",
  data: "demoValue",
  success: () => console.log("Written"),
  fail: error => console.error(error),
});
```
