Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jill64/svelte-storage

🗃️ Type-Safe Web Storage API Wrapper for Svelte
https://github.com/jill64/svelte-storage

localstorage sessionstorage svelte type-safe

Last synced: about 1 month ago
JSON representation

🗃️ Type-Safe Web Storage API Wrapper for Svelte

Awesome Lists containing this project

README

        

# @jill64/svelte-storage

npm-version npm-license npm-download-month npm-min-size ci.yml

🗃️ Type-Safe Web Storage API Wrapper for Svelte

## Installation

```sh
npm i @jill64/svelte-storage
```

## Simple Example

Passing the `localStorage` key to the `storage` function will retrieve the svelte-store of that value.

```svelte

import { storage } from '@jill64/svelte-storage'
import { string } from '@jill64/svelte-storage/serde'

const storage = storage(
{ ['localStorage-key']: string },
{
// Use sessionStorage instead of localStorage
// sessionStorage: boolean (default: false)
}
)

// Get value
consol.log(storage['localStorage-key'])

// Set value
storage['localStorage-key'] = 'value'

```

## Prepared Converters

You can also use the prepared converters in `@jill64/svelte-storage/serde`.

```svelte

import { storage } from '@jill64/svelte-storage'
import { number } from '@jill64/svelte-storage/serde'

const storage = storage(
{ ['localStorage-key']: number }
// {
// Storage Option
// }
)

```

## Custom Converter

By passing a conversion function as the second argument, you can get the value converted to any type.

```svelte

import { storage } from '@jill64/svelte-storage'

const store = storage(
{
['localStorage-key']: {
stringify: (value) => value.toString(),
parse: (str) => parseInt(str)
}
}
// {
// Storage Option
// }
)

```

## License

[MIT](LICENSE)