Define microservice URLs at a dedicated place and use them inside your Vuex actions.
Warning: This plugin uses JavaScript's Symbol. It's possible that your target browser is not supported.
$ npm install --save-dev vuex-microservice
The plugin uses decorators and Babel. Therefore, you need Babel and a Babel plugin to transpile them into native JavaScript.
$ npm install --save-dev babel-plugin-transform-decorators-legacy
Now add the Plugin to your .babelrc.
{
"plugins": ["transform-decorators-legacy"]
}
First, add the plugin to your Vuex instance. Second, pass the microservice URL as the first argument and the namespace where it's used as the second argument.
import { plugin } from 'vuex-microservice'
export default new Vuex.Store({
plugins: [plugin('http://microservice', 'nested/module')]
// ... Nested module setup
})
Now use the handy decorator to retrieve the microservice URL inside your actions.
import { decorator } from 'vuex-microservice'
export default {
@decorator('/api/data', 'nested/module')
action ({state}) {
const url = state[Symbol.for('nested/module')]
assert.equal('http://microservice/api/data', url)
}
}
Julian Claus and contributors.
MIT