@@ -86,7 +86,7 @@ export class PluginAPI {
86
86
*/
87
87
public mount ( r : express . Router ) : void {
88
88
for ( const [ , p ] of this . plugins ) {
89
- r . use ( `/${ p . name } ` , p . router ( ) )
89
+ r . use ( `/${ p . routerPath } ` , p . router ( ) )
90
90
}
91
91
}
92
92
@@ -154,7 +154,7 @@ export class PluginAPI {
154
154
this . plugins . set ( p . name , p )
155
155
} catch ( err ) {
156
156
if ( err . code !== "ENOENT" ) {
157
- this . logger . warn ( `failed to load plugin: ${ err . message } ` )
157
+ this . logger . warn ( `failed to load plugin: ${ err . stack } ` )
158
158
}
159
159
}
160
160
}
@@ -170,17 +170,24 @@ export class PluginAPI {
170
170
const logger = this . logger . named ( packageJSON . name )
171
171
logger . debug ( "loading plugin" , field ( "plugin_dir" , dir ) , field ( "package_json" , packageJSON ) )
172
172
173
+ if ( ! packageJSON . name ) {
174
+ throw new Error ( "plugin package.json missing name" )
175
+ }
176
+ if ( ! packageJSON . version ) {
177
+ throw new Error ( "plugin package.json missing version" )
178
+ }
179
+ if ( ! packageJSON . engines || ! packageJSON . engines [ "code-server" ] ) {
180
+ throw new Error ( `plugin package.json missing code-server range like:
181
+ "engines": {
182
+ "code-server": "^3.6.0"
183
+ }
184
+ ` )
185
+ }
173
186
if ( ! semver . satisfies ( version , packageJSON . engines [ "code-server" ] ) ) {
174
187
throw new Error (
175
188
`plugin range ${ q ( packageJSON . engines [ "code-server" ] ) } incompatible` + ` with code-server version ${ version } ` ,
176
189
)
177
190
}
178
- if ( ! packageJSON . name ) {
179
- throw new Error ( "plugin missing name" )
180
- }
181
- if ( ! packageJSON . version ) {
182
- throw new Error ( "plugin missing version" )
183
- }
184
191
185
192
const p = {
186
193
name : packageJSON . name ,
@@ -198,6 +205,9 @@ export class PluginAPI {
198
205
if ( ! p . routerPath ) {
199
206
throw new Error ( "plugin missing router path" )
200
207
}
208
+ if ( ! p . routerPath . startsWith ( "/" ) || p . routerPath . length < 2 ) {
209
+ throw new Error ( `plugin router path ${ q ( p . routerPath ) } : invalid` )
210
+ }
201
211
if ( ! p . homepageURL ) {
202
212
throw new Error ( "plugin missing homepage" )
203
213
}
0 commit comments