# @bildvitta/store-adapter

> Adaptador de "stores" para pinia e vuex.

Latest version **1.0.0** (published 2023-02-03) · 0 weekly downloads

## Install

```sh
npm install @bildvitta/store-adapter
pnpm add @bildvitta/store-adapter
yarn add @bildvitta/store-adapter
bun add @bildvitta/store-adapter
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2023-02-03 |
| First published | 2022-08-18 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 30.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | waguerrero, felipejuzo02, caiotarifa, douglascalora |
| Keywords | pinia, vuex, quasar, vuex |

## Links

- npm: https://www.npmjs.com/package/@bildvitta/store-adapter
- npm.io page: https://npm.io/package/@bildvitta/store-adapter

## Dependencies (2)

- [humps](https://npm.io/package/humps.md) ^2.0.1
- [vite-plugin-dts](https://npm.io/package/vite-plugin-dts.md) ^1.4.1

## Recent versions

- 1.0.0 (latest) — 2023-02-03
- 1.0.0-beta.1 (beta) — 2022-08-18
- 1.0.0-beta.23 — 2022-09-02
- 1.0.0-beta.22 — 2022-08-31
- 1.0.0-beta.21 — 2022-08-26
- 1.0.0-beta.20 — 2022-08-26
- 1.0.0-beta.19 — 2022-08-23
- 1.0.0-beta.18 — 2022-08-22
- 1.0.0-beta.17 — 2022-08-22
- 1.0.0-beta.16 — 2022-08-22
- 1.0.0-beta.15 — 2022-08-22
- 1.0.0-beta.14 — 2022-08-22
- 1.0.0-beta.13 — 2022-08-22
- 1.0.0-beta.12 — 2022-08-22
- 1.0.0-beta.11 — 2022-08-22
- … 9 more at https://npm.io/package/@bildvitta/store-adapter/versions

## README

# store-adapter
Adaptador de "stores" para pinia e vuex.

## Instalação
@bildvitta/store-adapter

## Helpers
### getActionPayload
quando estamos trabalhando com o "vuex", o primeiro parâmetro sempre vai ser o "ActionContext" porém quando trabalhamos com o "pinia", o primeiro parâmetro já é parâmetro real da action, desta forma, sempre pegamos o args[argIndex] como sendo nosso parâmetro real, e ignoramos no caso do vuex o ActionContext.

Exemplo:
```js
getActionPayload(true, { payload })
```

### getStateFromAction
Função para retornar "state" dentro das actions

Exemplo:
```js
getState.call(this, { isPinia: true })
getState.call(this, { isPinia: false, resource: 'users' })
```

> Obs: O `resource` vai sempre buscar por uma store declarada em "camelCase" mesmo que passe em `snake_case` ou `kebab-case`
Ex: `users-store` ou `users_store` -> converte para: `usersStore`.

### storeHandler
Função para retornar "state" do pinia ou vuex

Exemplo:
```js
getState.call(this, { entity: 'users', key: 'list')
```

## Plugins
### DefineGlobalPiniaStore
Adiciona uma variável global "$piniaStore" para ter acesso as stores sem ter que importar elas.

Exemplo:
```js
app.use(DefineGlobalPiniaStore, { stores: { users } })
// Desta forma em nossa aplicação Vue, poderíamos acessar a store "myUserStore" da seguinte maneira:
// this.$piniaStore.users.list
```

### InitializeGlobalStores
Inicializa variáveis globais "$store" e "$piniaStore" mesmo que não estejam utilizando assim resolve o problema de warning no template (view).

Exemplo:
```js
app.use(InitializeGlobalStores)
```

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