plugin: Make init and applications callbacks optional

This commit is contained in:
Anmol Sethi 2020-11-06 14:44:19 -05:00
parent 9d39c53c99
commit 277211c4ce
No known key found for this signature in database
GPG Key ID: 8CEF1878FF10ADEB
2 changed files with 12 additions and 2 deletions

View File

@ -55,6 +55,9 @@ export class PluginAPI {
public async applications(): Promise<Application[]> {
const apps = new Array<Application>()
for (const [, p] of this.plugins) {
if (!p.applications) {
continue
}
const pluginApps = await p.applications()
// Add plugin key to each app.
@ -86,6 +89,9 @@ export class PluginAPI {
*/
public mount(r: express.Router): void {
for (const [, p] of this.plugins) {
if (!p.router) {
continue
}
r.use(`${p.routerPath}`, p.router())
}
}

View File

@ -129,8 +129,10 @@ export interface Plugin {
* Returns the plugin's router.
*
* Mounted at <code-sever-root>/<plugin-path>
*
* If not present, the plugin provides no routes.
*/
router(): express.Router
router?(): express.Router
/**
* code-server uses this to collect the list of applications that
@ -139,8 +141,10 @@ export interface Plugin {
* refresh the list of applications
*
* Ensure this is as fast as possible.
*
* If not present, the plugin provides no applications.
*/
applications(): Application[] | Promise<Application[]>
applications?(): Application[] | Promise<Application[]>
}
/**