Commit Graph
1434 Commits
Author SHA1 Message Date
Asher b8340a2ae9 Close sockets correctly 2020-11-10 17:55:04 -06:00
Asher f706039a9d Re-add TLS socket proxy 2020-11-10 17:55:03 -06:00
Asher de4949571c Document getFirstPath better 2020-11-10 17:02:39 -06:00
Asher 0a01338edd Deduplicate child process message dance 2020-11-10 16:36:46 -06:00
Anmol Sethi d969a5bd6b Merge pull request #2252 from cdr/plugin-5d60
Plugin API to add more applications to code-server
2020-11-06 14:49:00 -05:00
Anmol Sethi fe399ff0fe Fix formatting 2020-11-06 14:47:08 -05:00
Anmol Sethi 277211c4ce plugin: Make init and applications callbacks optional 2020-11-06 14:47:08 -05:00
Anmol Sethi 9d39c53c99 plugin: Give test-plugin some html to test overlay 2020-11-06 14:47:08 -05:00
Anmol Sethi 197a09f0c1 plugin: Test endpoints via supertest
Unfortunately we can't use node-mocks-http to test a express.Router
that has async routes. See https://github.com/howardabrams/node-mocks-http/issues/225

router will just return undefined if the executing handler is async and
so the test will have no way to wait for it to complete. Thus, we have
to use supertest which starts an actual HTTP server in the background
and uses a HTTP client to send requests.
2020-11-06 10:13:01 -05:00
Anmol Sethi 9453f891df plugin.ts: Fix usage of routerPath in mount 2020-11-06 10:13:01 -05:00
Anmol Sethi 14f408a837 plugin: Plugin modules now export a single top level identifier
Makes typing much easier. Addresse's Will's last comment.
2020-11-06 10:13:01 -05:00
Anmol Sethi 8a8159c683 plugin: More review fixes
Next commit will address Will's comments about the typings being weird.
2020-11-06 10:13:01 -05:00
Anmol Sethi 706bc23f04 plugin: Fixes for CI 2020-11-06 10:13:01 -05:00
Anmol Sethi af73b96313 routes/apps.ts: Add example output 2020-11-06 10:12:47 -05:00
Anmol Sethi 2a13d003d3 plugin.ts: Add homepageURL to plugin and application 2020-11-06 10:12:47 -05:00
Anmol Sethi 687094802e plugin.ts: Make application endpoint paths absolute 2020-11-06 10:12:46 -05:00
Anmol Sethi 139a28e0ea plugin.ts: Describe private counterpart functions
Addresses Will's comments.
2020-11-06 10:12:46 -05:00
Anmol Sethi e03bbe3149 routes/apps.ts: Implement /api/applications endpoint 2020-11-06 10:12:46 -05:00
Anmol Sethi afff86ae9c plugin.ts: Adjust to implement pluginapi.d.ts correctly 2020-11-06 10:12:46 -05:00
Anmol Sethi fed545e67d plugin.d.ts -> pluginapi.d.ts
More clear.
2020-11-06 10:12:46 -05:00
Anmol Sethi 6638daf6f0 plugin.d.ts: Add explicit path field and adjust types to reflect
See my discussion with Will in the PR.
2020-11-06 10:12:46 -05:00
Anmol Sethi 8d3a7721fe plugin.d.ts: Document plugin priority correctly 2020-11-06 10:12:46 -05:00
Anmol Sethi 75e52a3774 plugin.ts: Fixes for @code-asher 2020-11-06 10:12:46 -05:00
Anmol Sethi f4d7f00033 plugin.ts: Fixes for @wbobeirne 2020-11-06 10:12:46 -05:00
Anmol Sethi ef971009d9 plugin.test.ts: Make it clear iconPath is a path 2020-11-06 10:12:46 -05:00
Anmol Sethi 30d2962e21 src/node/plugin.ts: Warn on duplicate plugin and only load first 2020-11-06 10:12:46 -05:00
Anmol Sethi 82e8a00a0d Fix CI 2020-11-06 10:12:46 -05:00
Anmol Sethi bea185b8b2 plugin: Add basic loading test
Will work on testing overlay next.
2020-11-06 10:12:46 -05:00
Anmol Sethi e08a55d44a src/node/plugin.ts: Implement new plugin API 2020-11-06 10:12:45 -05:00
Anmol Sethi 481df70622 ci/dev/test.sh: Pass through args 2020-11-06 10:11:57 -05:00
Anmol Sethi aa2cfa2c17 typings/plugin.d.ts: Create 2020-11-06 10:11:57 -05:00
Asher 959497067c Document HttpError
Also type the status.
2020-11-05 17:07:58 -06:00
Asher f7076247f9 Move domain proxy to routes
This matches better with the other routes.

Also add a missing authentication check to the path proxy web socket.
2020-11-05 17:07:32 -06:00
Asher f6c4434191 Tweak proxy fallthrough behavior
It will now redirect all HTML requests. Also it avoids req.accepts since
that's always truthy.
2020-11-05 16:49:30 -06:00
Asher cb991a9143 Handle errors for JSON requests
Previously it would have just given them the error HTML.
2020-11-05 15:19:56 -06:00
Asher 3f1750cf83 Fix destroying response in update again
I added another reject that doesn't destroy the response.
2020-11-05 15:08:10 -06:00
Asher 7b2752a62c Move websocket routes into a separate app
This is mostly so we don't have to do any wacky patching but it also
makes it so we don't have to keep checking if the request is a web
socket request every time we add middleware.
2020-11-05 15:08:09 -06:00
Asher 9e09c1f92b Upgrade to Express 5
Now async routes are handled!
2020-11-05 15:08:08 -06:00
Asher 8252c372af Provide a way to tell when event handlers are finished
This lets us actually wait for disposal before a graceful exit.
2020-11-05 15:08:07 -06:00
Asher 396af23842 Kill VS Code when process exits
This is to ensure it doesn't hang around.
2020-11-04 17:07:41 -06:00
Asher 34225e2bdf Use ensureAuthenticated as middleware 2020-11-04 17:07:40 -06:00
Asher 476379a77e Fix cookie domain
Had double Domain=
2020-11-04 17:07:39 -06:00
Asher 210fc049c4 Document VS Code endpoints 2020-11-04 17:07:39 -06:00
Asher e5c8e0aad1 Remove useless || 2020-11-04 17:07:38 -06:00
Asher c5ce365482 Use query variable to force update check 2020-11-04 17:07:37 -06:00
Asher a653b93ce2 Include protocol on printed address
This makes it clickable from the terminal.
2020-11-04 17:07:36 -06:00
Asher e2c35facdb Remove invalid comment on maybeProxy
It no longer handles authentication.
2020-11-04 17:07:35 -06:00
Asher 75b93f9dc5 Fix bind address priority
Broke when converting to a loop.
2020-11-04 17:07:24 -06:00
Asher 8066da12fe Remove unused Locals interface 2020-11-03 15:37:22 -06:00
Asher 03e0013112 Unbind error/exit events once handshakes resolve 2020-11-03 15:27:21 -06:00