# @gaoming13/browser-storage

> Use cookies, local storage, session storage according to priority.

Latest version **1.0.8** (published 2021-10-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install @gaoming13/browser-storage
pnpm add @gaoming13/browser-storage
yarn add @gaoming13/browser-storage
bun add @gaoming13/browser-storage
```

Provides the command `browser-storage`.

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.8 |
| Published | 2021-10-27 |
| First published | 2019-12-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 154.8 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | gaoming13 |
| Keywords | cookies, local storage, session storage |

## Links

- npm: https://www.npmjs.com/package/@gaoming13/browser-storage
- Repository: https://github.com/gaoming13/browser-storage
- Homepage: https://github.com/gaoming13/browser-storage#readme
- Issues: https://github.com/gaoming13/browser-storage/issues
- npm.io page: https://npm.io/package/@gaoming13/browser-storage

## Dependencies (2)

- [coa](https://npm.io/package/coa.md) ^2.0.2
- [cookie](https://npm.io/package/cookie.md) ^0.4.1

## Alternatives

- [localforage](https://npm.io/package/localforage.md) — 6.2M weekly downloads
- [localforage-observable](https://npm.io/package/localforage-observable.md) — 30.8K weekly downloads
- [@y/y](https://npm.io/package/@y/y.md) — 30.1K weekly downloads
- [@metaobjectsdev/render](https://npm.io/package/@metaobjectsdev/render.md) — 3.5K weekly downloads
- [@ledgerhq/coin-algorand](https://npm.io/package/@ledgerhq/coin-algorand.md) — 1.1K weekly downloads

## Recent versions

- 1.0.8 (latest) — 2021-10-27
- 1.0.2-beta.1 (beta) — 2020-06-04
- 1.0.7 — 2021-10-27
- 1.0.6 — 2020-08-24
- 1.0.4 — 2020-08-21
- 1.0.2 — 2020-06-04
- 1.0.1 — 2019-12-13
- 1.0.0 — 2019-12-13

## README

# browser-storage

[English](README.md) | [中文简体](README-zh-CN.md)

[![Version][npm-v]][npm-url]
[![codecov][codecov]][codecov-url]
[![Build Status][travis]][travis-url]
[![Downloads][npm-dm]][npm-url]

Use Cookie, LocalStorage, SessionStorage according to priority.

Automatically detect whether the browser supports it, if it does not support using the next priority item for storage.

## Features
- Cookie storage options can be modified
- Compact size 8.1KB (2.3KB gzipped)

## Installation

You can install it via [yarn](https://yarnpkg.com/) or [NPM](http://npmjs.org/).
```
$ yarn add @gaoming13/browser-storage
$ npm i @gaoming13/browser-storage
```

### CDN

[jsdelivr](https://cdn.jsdelivr.net/npm/@gaoming13/browser-storage@1.0.1)

```html
<script src="https://cdn.jsdelivr.net/npm/@gaoming13/browser-storage@1.0.1"></script>
```

[unpkg](https://unpkg.com/@gaoming13/browser-storage@1.0.1)

```html
<script src="https://unpkg.com/@gaoming13/browser-storage@1.0.1"></script>
```

## Example

```js
import browserStorage from '@gaoming13/browser-storage';

// Define the storage priority, and find the storage supported by the browser according to the priority
// `c` means Cookie, `s` is SessionStorage, `l` is LocalStorage
browserStorage.setPriority('csl');

// Store a value
browserStorage.setItem('item1', 'hello world');

// Get stored content
browserStorage.getItem('item1'); // It will return `hello world`

// Delete a value
browserStorage.removeItem('item1');
```

```js
// Set priority to restrict use of cookie storage
browserStorage.setPriority('c');

// Set the prefix of the stored key name (for example, `item2` is stored, then the actual stored key name is` h5-item2`)
browserStorage.setPreKey('h5-');

// Set cookie storage options
// Set Expires / Max-Age = Session
browserStorage.setCookieOptions({ path: '/abc', domain: 'local.com' });
// For more options, please refer to [https://github.com/jshttp/cookie#options-1](https://github.com/jshttp/cookie#options-1)
browserStorage.setCookieOptions({ path: '/abc', maxAge: 86400, domain: 'local.com' });

// Store a value
browserStorage.setItem('item2', 'xxxx');
```

## API
- `getItem(key)` Get stored content
- `setItem(key, value)` Store a value
- `removeItem(key)` Delete a value
- `setPriority(priority)` Set storage priority
  - example `obj.setPriority('c')`
  - example `obj.setPriority('cl')`
  - example `obj.setPriority('cs')`
  - example `obj.setPriority('cls')`
- `setPreKey(key)` Set key prefix
  - @example `obj.setPreKey('h5-')`
- `cookieStoreSetPreKey(key)` Set cookie key name prefix
  - @example `obj.cookieStoreSetPreKey('h5-')`
- `localStoreSetPreKey(key)` Set LocalStorage key name prefix
- `seesionStoreSetPreKey(key)` Set SessionStorage key name prefix
- `cookieStoreIsSupport()` Does the browser support Cookie
- `localStoreIsSupport()` Does the browser support LocalStorage
- `seesionStoreIsSupport()` Does the browser support SessionStorage
- `cookieSetOptions` Set cookie storage options
  - example `setCookieOptions({ path: '/abc', maxAge: 86400, domain: 'local.com' })`

## Changelog

Details changes for each release are documented in the [release notes](https://github.com/gaoming13/browser-storage/releases).

## Contribution

If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/gaoming13/browser-storage/issues) or a [pull request](https://github.com/gaoming13/browser-storage/pulls).

## License

[MIT](http://opensource.org/licenses/MIT)

[codecov]: https://codecov.io/gh/gaoming13/browser-storage/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/gaoming13/browser-storage
[travis]: https://travis-ci.com/gaoming13/browser-storage.svg?branch=master
[travis-url]: https://travis-ci.com/gaoming13/browser-storage
[npm-dm]: https://img.shields.io/npm/dm/@gaoming13/browser-storage.svg
[npm-v]: https://img.shields.io/npm/v/@gaoming13/browser-storage.svg
[npm-url]: https://www.npmjs.com/package/@gaoming13/browser-storage

---
_Source: https://npm.io/package/@gaoming13/browser-storage · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
