Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
@sysvale/vuex-make-request-store
Advanced tools
Utilitário vuex de gerenciamento do estado de requests HTTP baseado em Promises
Utilitário vuex de gerenciamento do estado de requests HTTP baseado em Promises
Clone o repositório, vá ao diretório do projeto e em seguida execute npm run install
em seu terminal.
Após o passo de Instalação, em seu terminal, execute npm run test
Realize a instalação em seu projeto com npm i @sysvale/vuex-make-request-store
Assumimos que você possui um conhecimento prévio em aplicações Vue e em Vuex.
Assumimos também que suas chamadas HTTP são realizadas através de alguma biblioteca que utiliza promises, como o Axios por exemplo.
Imagine que tenhamos um arquivo de um recurso Posts que expõe services que fazem chamadas à API de Posts:
services/Posts.js
import axios from 'axios';
export const getPosts = (params) => axios.get('/posts', { ...params });
O primeiro passo é criar um módulo que gerencie essa store desses recursos:
store/requests/posts
import makeRequestStore from 'vuex-make-request-store';
import {
getPosts,
} from '<path>/services/Posts';
const modules = [
{ getPosts },
];
export default {
namespaced: true,
modules: modules.reduce((acc, module) => ({
...acc,
...makeRequestStore(module),
}), {}),
};
Desse modo, caso hajam outros endpoints da API de posts, basta apenas adicioná-los ao services/Posts.js
, então importá-los no store/requests/posts.js
e inserí-los no array de módulos.
Feito isso, vamos unificar as stores dos recursos:
store/requests
import posts from './posts';
export default {
namespaced: true,
modules: {
posts,
},
};
Assim, se houverem outras stores de outros recursos, por exemplo comments
, é só importá-la e colocá-la nos módulos.
Por fim, na store de sua aplicação, importe a store de requests:
store.js
import Vue from 'vue';
import Vuex from 'vuex';
import requests from './requests';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
requests,
},
});
Então quando precisar utilizar esse service em um componente, por exemplo, é só chamar a mutation criada automaticamente pelo makeRequestStore
. Observe:
// <template></template>
// <script>
import { mapState, mapActions } from 'vuex';
export default {
computed: {
...mapState('requests/posts', {
loadingGetPosts: ({ getPosts }) => getPosts.isFetching,
failedGetPosts: ({ getPosts }) => getPosts.hasFailed,
succeededGetPosts: ({ getPosts }) => getPosts.hasSucceeded,
}),
},
methods: {
...mapActions('requests/posts', [
'getPosts',
]),
},
};
// </script>
Ao chamar this.getPosts()
a promise do seu service é retornada e você pode encadear o .then()
e o .catch()
de acordo com sua lógica.
Observe que é possível mapear os estados da requisição para utilizá-los caso seja necessário.
FAQs
Utilitário vuex de gerenciamento do estado de requests HTTP baseado em Promises
We found that @sysvale/vuex-make-request-store demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.