šļø Type-Safe Web Storage API Wrapper for Svelte
npm i @jill64/svelte-storage
Passing the localStorage
key to the storage
function will retrieve the svelte-store of that value.
<script>
import { storage } from '@jill64/svelte-storage'
/** @type {Writable<string>} */
const str = storage('localStorage-key', {
// Use sessionStorage instead of localStorage
// sessionStorage: boolean (default: false)
})
// Get value
$: consol.log($str)
// Set value
$str = 'value'
// or
str.set('value')
</script>
By passing a conversion function as the second argument, you can get the value converted to any type.
<script>
import { storage } from '@jill64/svelte-storage'
import { number } from '@jill64/svelte-storage/serde'
/** @type {Writable<number>} */
const store = storage(
'localStorage-key',
{
stringify: (value) => value.toString(),
parse: (str) => parseInt(str)
}
// {
// Storage Option
// }
)
</script>
You can also use the prepared converters in @jill64/svelte-storage/serde
.
<script>
import { storage } from '@jill64/svelte-storage'
import { number } from '@jill64/svelte-storage/serde'
/** @type {Writable<number>} */
const num = storage(
'localStorage-key',
number
// {
// Storage Option
// }
)
</script>