feat(xo-server): make plugins searchable by keywords

This commit is contained in:
Julien Fontanet
2023-03-13 14:13:30 +01:00
parent f1b5416d0b
commit 1eac62a26e
2 changed files with 19 additions and 2 deletions

View File

@@ -298,7 +298,11 @@ const requireResolve = createRequire(import.meta.url).resolve
async function registerPlugin(pluginPath, pluginName) {
const plugin = (await import(requireResolve(pluginPath))).default
const { description, version = 'unknown' } = await fse
const {
description,
keywords,
version = 'unknown',
} = await fse
.readFile(pluginPath + '/package.json')
.then(JSON.parse)
.catch(error => {
@@ -336,6 +340,7 @@ async function registerPlugin(pluginPath, pluginName) {
configurationSchema,
configurationPresets,
description,
keywords,
testSchema,
version
)

View File

@@ -54,7 +54,16 @@ export default class {
return this._pluginsMetadata.first(id)
}
async registerPlugin(name, instance, configurationSchema, configurationPresets, description, testSchema, version) {
async registerPlugin(
name,
instance,
configurationSchema,
configurationPresets,
description,
keywords,
testSchema,
version
) {
const id = name
const plugin = (this._plugins[id] = {
configurationPresets,
@@ -63,6 +72,7 @@ export default class {
description,
id,
instance,
keywords,
name,
testable: typeof instance.test === 'function',
testSchema,
@@ -106,6 +116,7 @@ export default class {
configurationPresets,
configurationSchema,
description,
keywords,
loaded,
name,
testable,
@@ -121,6 +132,7 @@ export default class {
autoload,
description,
loaded,
keywords,
unloadable,
version,
configuration: sensitiveValues.obfuscate(configuration),