plugin.ts: Describe private counterpart functions

Addresses Will's comments.
This commit is contained in:
Anmol Sethi 2020-11-03 21:14:19 -05:00
parent e03bbe3149
commit 139a28e0ea
No known key found for this signature in database
GPG Key ID: 8CEF1878FF10ADEB
4 changed files with 20 additions and 5 deletions

View File

@ -110,6 +110,13 @@ export class PluginAPI {
await this._loadPlugins(path.join(__dirname, "../../plugins"))
}
/**
* _loadPlugins is the counterpart to loadPlugins.
*
* It differs in that it loads all plugins in a single
* directory whereas loadPlugins uses all available directories
* as documented.
*/
private async _loadPlugins(dir: string): Promise<void> {
try {
const entries = await fsp.readdir(dir, { withFileTypes: true })
@ -149,6 +156,11 @@ export class PluginAPI {
}
}
/**
* _loadPlugin is the counterpart to loadPlugin and actually
* loads the plugin now that we know there is no duplicate
* and that the package.json has been read.
*/
private _loadPlugin(dir: string, packageJSON: PackageJSON): Plugin {
dir = path.resolve(dir)

View File

@ -1,6 +1,9 @@
import * as express from "express"
import { PluginAPI } from "../plugin"
/**
* Implements the /api/applications endpoint
*/
export function router(papi: PluginAPI): express.Router {
const router = express.Router()

View File

@ -17,10 +17,10 @@ describe("plugin", () => {
assert.deepEqual(
[
{
name: "test app",
name: "Test App",
version: "4.0.0",
description: "my description",
description: "This app does XYZ.",
iconPath: "/icon.svg",
plugin: {
@ -28,8 +28,8 @@ describe("plugin", () => {
version: "1.0.0",
modulePath: path.join(__dirname, "test-plugin"),
description: "Plugin used in code-server tests.",
displayName: "Test Plugin",
description: "Plugin used in code-server tests.",
path: "/test-plugin",
},
},

View File

@ -21,11 +21,11 @@ export function router(): express.Router {
export function applications(): pluginapi.Application[] {
return [
{
name: "test app",
name: "Test App",
version: "4.0.0",
iconPath: "/icon.svg",
description: "my description",
description: "This app does XYZ.",
},
]
}