@slothkit/storage
v1.2.1
Published
Enhanced localStorage with expiration, encryption, and compression.
Downloads
14
Readme
Storage Manager
The Storage Manager is a utility library that extends the functionality of the browser's localStorage
, adding support for expiration management, data encryption, and data compression.
Features
- Expiration Management: Automatically manage the expiration time of stored data.
- Encryption: Protect your stored data with encryption.
- Compression: Reduce the size of stored data.
Installation
Install the Storage Manager using npm:
npm install @slothkit/storage
Usage
Initialization
Before using the Storage Manager, you need to initialize it with optional global configuration.
import { init } from '@slothkit/storage'
init({
// Custom encryptor, if not configured, the built-in encryptor will be used
encryptor: {
encrypt: yourEncryptFunction,
decrypt: yourDecryptFunction
},
// Whether to encrypt all data
encrypt: true,
// Whether to compress all data
compress: true
})
You can alse import by this way:
import { storage } from '@slothkit/storage'
storage.init({/** your config */})
Saving Data
You can save data in localStorage
with optional configuration for encryption, compression, and expiration time.
import { set } from '@slothkit/storage'
// Expires in 1 hour, and encrypts, compresses the data
set('myKey', 'myValue', { encrypt: true, compress: true, ttl: 3600 })
// Expires in 1s
set('myKey2', 'myValue2', { expires: Date.now() + 1 })
Retrieving Data
Retrieve data from localStorage
, automatically handling encryption, compression, and expiration.
import { get } from '@slothkit/storage'
// If the data has expired, you will get null
const value = get('myKey')
Removing Items
Remove items from localStorage
.
import { remove } from '@slothkit/storage'
remove('myKey')
Flushing Expired Items
Remove all expired items from localStorage
. You can also force remove all items with expiration times.
import { flush } from '@slothkit/storage'
// Removes only expired items
flush()
// Removes all items with expiration times, regardless of whether they have expired or not
flush(true)
Clearing All Items
Clear all items from localStorage
.
import { clear } from '@slothkit/storage'
clear()
API
init(config: GlobalConfig = {})
Initialize the Storage Manager with global configuration.
config
: Global configuration object.encryptor
: Object containingencrypt
anddecrypt
functions.encrypt
: Boolean indicating whether to enable encryption by default.compress
: Boolean indicating whether to enable compression by default.
set<T = any>(key: string, value: T, config: StorageConfig = {})
Save data in localStorage
.
key
: The key for the item.value
: The value to store.config
: Configuration object.encrypt
: Boolean indicating whether to encrypt the item.compress
: Boolean indicating whether to compress the item.ttl
: Time to live in seconds.expires
: Expiration timestamp.
get<T = any>(key: string): T | null
Retrieve data from localStorage
.
key
: The key for the item.
remove(key: string)
Remove an item from localStorage
.
key
: The key for the item.
flush(force: boolean = false)
Remove expired items from localStorage
.
force
: Boolean indicating whether to force remove all items with expiration times.
clear()
Clear all items from localStorage
.
getExp(key: string): number | void | null
Get the expiration timestamp of an item.
key
: The key for the item.
License
This project is licensed under the MIT License. See the LICENSE file for details.