Skip to content

Commit 0a38556

Browse files
author
Guillaume Chau
committed
refactor(ui): plugins getMetadata significantly faster
1 parent 3d4d8f0 commit 0a38556

File tree

1 file changed

+19
-7
lines changed
  • packages/@vue/cli-ui/src/graphql-api/connectors

1 file changed

+19
-7
lines changed

packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,26 @@ function readPackage (id, context) {
6565
return folders.readPackage(getPath(id), context)
6666
}
6767

68-
async function getMetadata (id) {
68+
async function getMetadata (id, context) {
6969
let metadata = metadataCache.get(id)
7070
if (metadata) {
7171
return metadata
7272
}
73-
const res = await getPackageVersion(id)
74-
if (res.statusCode === 200) {
75-
metadata = res.body
73+
if (isOfficialPlugin(id)) {
74+
const res = await getPackageVersion('vue-cli-version-marker', 'latest')
75+
if (res.statusCode === 200) {
76+
metadata = res.body
77+
}
78+
const pkg = folders.readPackage(path.dirname(require.resolve(id)), context)
79+
metadata.description = pkg.description
80+
} else {
81+
const res = await getPackageVersion(id, id.indexOf('@') === -1 ? 'latest' : '')
82+
if (res.statusCode === 200) {
83+
metadata = res.body
84+
}
85+
}
86+
87+
if (metadata) {
7688
metadataCache.set(id, metadata)
7789
return metadata
7890
}
@@ -87,9 +99,9 @@ async function getVersion ({ id, installed, versionRange }, context) {
8799
current = null
88100
}
89101
let latest
90-
const metadata = await getMetadata(id)
102+
const metadata = await getMetadata(id, context)
91103
if (metadata) {
92-
latest = metadata['dist-tags'].latest
104+
latest = (metadata['dist-tags'] && metadata['dist-tags'].latest) || metadata.version
93105
}
94106

95107
if (!latest) {
@@ -105,7 +117,7 @@ async function getVersion ({ id, installed, versionRange }, context) {
105117
}
106118

107119
async function getDescription ({ id }, context) {
108-
const metadata = await getMetadata(id)
120+
const metadata = await getMetadata(id, context)
109121
if (metadata) {
110122
return metadata.description
111123
}

0 commit comments

Comments
 (0)