# web-extensions-settings-manager

> - Node.JS версии 14 и выше - yarn первой версии, последний стабильный релиз

Latest version **0.0.1** (published 2022-01-26) · ISC license · 0 weekly downloads

## Install

```sh
npm install web-extensions-settings-manager
pnpm add web-extensions-settings-manager
yarn add web-extensions-settings-manager
bun add web-extensions-settings-manager
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2022-01-26 |
| First published | 2022-01-26 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 281.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | ePN Development Team |
| Maintainers | epndevteam |
| Keywords | browser, chrome, web extension, firefox |

## Links

- npm: https://www.npmjs.com/package/web-extensions-settings-manager
- npm.io page: https://npm.io/package/web-extensions-settings-manager

## Dependencies (2)

- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [webextension-polyfill-ts](https://npm.io/package/webextension-polyfill-ts.md) ^0.26.0

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 0.0.1 (latest) — 2022-01-26

## README

<p align="center">
  <img src="http://www.nsfpic.com/data/r1/r1oj0z/icon.png" alt="Logo" width="120" height="120">

  <h3 align="center">Settings manager</h3>
  <blockquote>
    Хранение и управление параметрами необходимыми для работы плагина
  </blockquote>
</p>

### Системные требования
- Node.JS версии 14 и выше
- yarn первой версии, последний стабильный релиз

### Как использовать

```ts
const settings = new SettingsManager({
  defaultSettingKey: 'default-setting-value',
})
```

### Миграции
Вы можете изменять или удалять значенения их локального хранилища плагина.

Миграция на изменение данных:
```ts
const settings = new SettingsManager(
    {
        defaultSettingKey: 'default-setting-value',
    },
    [
        (currentOptions, _defaults) => {
            // Проверять наличие поле обязательно, в противном случае инициализация настроек упадет
            if (currentOptions.defaultSettingKey) {
                currentOptions.defaultSettingKey = 'new-value';
            }
        },
    ],
);
```

Миграция на удаление данных:
```ts
const settings = new SettingsManager(
    {
        defaultSettingKey: 'default-setting-value',
        thisKeyMustBeDetete: 'oops',
    },
    [
        (currentOptions, _defaults) => {
            // Проверять наличие поле обязательно, в противном случае инициализация настроек упадет
            if (currentOptions.thisKeyMustBeDetete) {
                delete currentOptions.thisKeyMustBeDetete;
            }
        },
    ],
);
```

### Документация
1. Перейдите в папку **/docs**
2. Откройте **index.html**

### Разработка

Для связи пакета с проектом можно использовать стандартный инструмент `yarn link` или пакет `yalc`.

Документация yalc: [https://github.com/wclr/yalc#usage]()

1. `yarn build`
Сборка production билда
---
2. `yarn watch`
Отсдеживание изменений кода и их сборка
---
3. `yarn lint`
Запуск eslint
---
4. `yarn prettier`
Запуск prettier
---
5. `yarn test`
Запуск unit тестов

### Релиз

1. `yarn publish`
Сборка и публикация пакета

Если релиз происходит локально то перед командой `yarn publish` выполняется команда `prepublishOnly`.
**Важно!** Если используется yarn версии 2 и выше то `prepublishOnly` работать не будет.

### Credits
A big thanks to:
- [webext-options-sync](https://github.com/fregante/webext-options-sync) - For the migrations idea

---
_Source: https://npm.io/package/web-extensions-settings-manager · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
