Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sheikhaminul/storage-sync-lite
Easily store objects or any type of data to localStorage or sessionStorage.
https://github.com/sheikhaminul/storage-sync-lite
localstorage sessionstorage storage
Last synced: about 2 months ago
JSON representation
Easily store objects or any type of data to localStorage or sessionStorage.
- Host: GitHub
- URL: https://github.com/sheikhaminul/storage-sync-lite
- Owner: SheikhAminul
- License: mit
- Created: 2022-11-13T03:37:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-01T19:18:20.000Z (about 1 year ago)
- Last Synced: 2024-11-17T18:06:53.710Z (2 months ago)
- Topics: localstorage, sessionstorage, storage
- Language: TypeScript
- Homepage:
- Size: 25.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
storage-sync-lite
[![NPM Version](https://img.shields.io/npm/v/storage-sync-lite.svg?branch=main)](https://www.npmjs.com/package/storage-sync-lite)
[![Install Size](https://badgen.net/packagephobia/install/storage-sync-lite)](https://packagephobia.now.sh/result?p=storage-sync-lite)
[![Downloads](https://img.shields.io/npm/dt/storage-sync-lite)](https://www.npmjs.com/package/storage-sync-lite)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/SheikhAminul/storage-sync-lite/blob/main/LICENSE)
================Easily store objects or any type of data to localStorage or sessionStorage.
Why this? When you store a JSON/object to localStorage or sessionStorage you need to stringify the data. After storing a number in localStorage when you will read it, you will get the number as a string. But storage-sync-lite allows storing and retrieving data without changing the type. If you store an object when you will read, it will return the object.## Table of Contents
- [Features](#features)
- [Install](#install)
- [Usage](#usage)
- [API Reference](#API-Reference)
- [Contributing](#contributing)
- [License](#license)
- [Author](#author)## Features
- Set, get and delete localStorage or sessionStorage without stringifying or changing the data type.
- Change/update objects in localStorage or sessionStorage.
- Clear localStorage or sessionStorage.## Install
```sh
npm i storage-sync-lite
```## Usage
Set and get local:
```javascript
import { setLocal, getLocal } from 'storage-sync-lite'// Set/Store
setLocal('user', {
email: '[email protected]',
age: 25
})// Get
let user = getLocal('user')
console.log(user) // Returns: { email: '[email protected]', age: 25 }
```Change/update properties from local:
```javascript
import { changeLocal, getLocal } from 'storage-sync-lite'// Change/update properties
changeLocal('user', {
name: 'Mr. User'
})console.log(getLocal('user')) // Returns: { email: '[email protected]', age: 25, name: 'Mr. User' }
```Delete data from local:
```javascript
import { deleteLocal, clearLocal } from 'storage-sync-lite'// Delete single data from local
deleteLocal('user')// Clear / delete all data from local
clearLocal()
```Set and get session:
```javascript
import { setSession, getSession } from 'storage-sync-lite'// Set/Store
setSession('user', {
email: '[email protected]',
age: 25
})// Get
let user = getSession('user')
console.log(user) // Returns: { email: '[email protected]', age: 25 }
```Change/update properties from session:
```javascript
import { changeSession, getSession } from 'storage-sync-lite'// Change/update properties
changeSession('user', {
name: 'Mr. User'
})console.log(getSession('user')) // Returns: { email: '[email protected]', age: 25, name: 'Mr. User' }
```Delete data from session:
```javascript
import { deleteSession, clearSession } from 'storage-sync-lite'// Delete single data from session
deleteSession('user')// Clear / delete all data from session
clearSession()
```## API Reference
### `setLocal(name, value, options)`
Stores a value in local storage.
- `name` (string): The name of the item to store.
- `value` (*): The value to store.
- `options` (object, optional): Optional configuration object.
- `options.expiration` (string | number | Date): The expiration date/time for the item.
- `options.timeToLive` (number): The time to live in milliseconds.Returns the stored value.
### `getLocal(name)`
Retrieves a value from local storage.
- `name` (string): The name of the item to retrieve.
Returns the value stored in local storage, or undefined if the item does not exist or has expired.
### `changeLocal(name, changes)`
Updates a value in local storage with the provided changes.
- `name` (string): The name of the item to update.
- `changes` (object): An object containing the changes to apply to the stored value.Returns the updated value.
### `deleteLocal(name)`
Deletes an item from local storage.
- `name` (string): The name of the item to delete.
### `clearLocal()`
Clears all items from local storage.
### `setSession(name, value, options)`
Stores a value in session storage.
- `name` (string): The name of the item to store.
- `value` (*): The value to store.
- `options` (object, optional): Optional configuration object.
- `options.expiration` (string | number | Date): The expiration date/time for the item.
- `options.timeToLive` (number): The time to live in milliseconds.Returns the stored value.
### `getSession(name)`
Retrieves a value from session storage.
- `name` (string): The name of the item to retrieve.
Returns the value stored in session storage, or undefined if the item does not exist or has expired.
### `changeSession(name, changes)`
Updates a value in session storage with the provided changes.
- `name` (string): The name of the item to update.
- `changes` (object): An object containing the changes to apply to the stored value.Returns the updated value.
### `deleteSession(name)`
Deletes an item from session storage.
- `name` (string): The name of the item to delete.
### `clearSession()`
Clears all items from session storage.
## Contributing
You are welcome to contribute! If you are adding a feature or fixing a bug, please contribute to the [GitHub repository](https://github.com/SheikhAminul/storage-sync-lite/).
## License
storage-sync-lite is licensed under the [MIT license](https://github.com/SheikhAminul/storage-sync-lite/blob/main/LICENSE).
## Author
|[![@SheikhAminul](https://avatars.githubusercontent.com/u/25372039?v=4&s=96)](https://github.com/SheikhAminul)|
|:---:|
|[@SheikhAminul](https://github.com/SheikhAminul)|