Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@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
The npm package @sysvale/vuex-make-request-store receives a total of 11 weekly downloads. As such, @sysvale/vuex-make-request-store popularity was classified as not popular.
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
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.