diff --git a/packages/@vue/cli-ui/locales/en.json b/packages/@vue/cli-ui/locales/en.json index dfef1d1b3..603006b74 100644 --- a/packages/@vue/cli-ui/locales/en.json +++ b/packages/@vue/cli-ui/locales/en.json @@ -112,7 +112,8 @@ }, "report-bug": "Report bug", "translate": "Help translate", - "dark-mode": "Toggle dark mode" + "dark-mode": "Toggle dark mode", + "reset-plugin-api": "Refresh plugins API" }, "suggestion-bar": { "suggestion": "Suggestion", diff --git a/packages/@vue/cli-ui/src/components/StatusBar.vue b/packages/@vue/cli-ui/src/components/StatusBar.vue index 933ef0f70..2e529dbee 100644 --- a/packages/@vue/cli-ui/src/components/StatusBar.vue +++ b/packages/@vue/cli-ui/src/components/StatusBar.vue @@ -70,6 +70,13 @@ > +
+ +
@@ -79,6 +86,8 @@ import PROJECT_CURRENT from '../graphql/projectCurrent.gql' import CONSOLE_LOG_LAST from '../graphql/consoleLogLast.gql' import CONSOLE_LOG_ADDED from '../graphql/consoleLogAdded.gql' import DARK_MODE_SET from '../graphql/darkModeSet.gql' +import PLUGIN_RESET_API from '../graphql/pluginResetApi.gql' +import { resetApollo } from '../vue-apollo' let lastRoute @@ -174,6 +183,14 @@ export default { toggleDarkMode () { this.applyDarkMode(!this.darkMode) + }, + + async resetPluginApi () { + await this.$apollo.mutate({ + mutation: PLUGIN_RESET_API + }) + + await resetApollo() } } } diff --git a/packages/@vue/cli-ui/src/components/TopBar.vue b/packages/@vue/cli-ui/src/components/TopBar.vue index cf2826984..8088eef88 100644 --- a/packages/@vue/cli-ui/src/components/TopBar.vue +++ b/packages/@vue/cli-ui/src/components/TopBar.vue @@ -69,7 +69,7 @@ export default { } }) - resetApollo() + await resetApollo() } } } diff --git a/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js b/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js index 1d6185fbf..f11f40efb 100644 --- a/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js +++ b/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js @@ -132,6 +132,8 @@ function resetPluginApi (context) { if (currentView) views.open(currentView.id) } }) + + return true } function runPluginApi (id, context, fileName = 'ui') { diff --git a/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js b/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js index 5a30e7038..e2c76512a 100644 --- a/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js +++ b/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js @@ -18,6 +18,7 @@ extend type Mutation { pluginUpdate (id: ID!): Plugin pluginActionCall (id: ID!, params: JSON): PluginActionResult pluginsUpdate: [Plugin] + pluginResetApi: Boolean } extend type Subscription { @@ -82,7 +83,8 @@ exports.resolvers = { pluginFinishInstall: (root, args, context) => plugins.finishInstall(context), pluginUpdate: (root, { id }, context) => plugins.update(id, context), pluginActionCall: (root, args, context) => plugins.callAction(args, context), - pluginsUpdate: (root, args, context) => plugins.updateAll(context) + pluginsUpdate: (root, args, context) => plugins.updateAll(context), + pluginResetApi: (root, args, context) => plugins.resetPluginApi(context) }, Subscription: { diff --git a/packages/@vue/cli-ui/src/graphql/pluginResetApi.gql b/packages/@vue/cli-ui/src/graphql/pluginResetApi.gql new file mode 100644 index 000000000..94a16175d --- /dev/null +++ b/packages/@vue/cli-ui/src/graphql/pluginResetApi.gql @@ -0,0 +1,3 @@ +mutation pluginResetApi { + pluginResetApi +} \ No newline at end of file