-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jsapi - improvements for 3rd party consumers #5537
Closed
Labels
Comments
@niloc132 I investigated node support for h2c a bit. Here's my understanding:
|
6 tasks
This was referenced Aug 1, 2024
bmingles
added a commit
to deephaven/vscode-deephaven
that referenced
this issue
Sep 20, 2024
- Moved the jsapi fetching code into a sub npm package - Refactored the jsapi fetching code to have zero dependencies on `vscode` The new `packages` directory provides a better silo for temporary code that will eventually become proper npm packages. e.g. enterprise jsapi types will be put in here on subsequent PR. Should also help with early dev of deephaven/deephaven-core#5537
Concrete changes for the js api to consider (follow-up for Colin):
Brian will also try again with fetch-h2, assigning to global.fetch, so that the grpc-web ts implementation we have can make h2 calls, instead of requiring websockets. |
I'm tracking the fetch / fetch-h2 testing in DHE: Connect to Core+ worker over http2 #154 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Improve jsapi for 3rd party consumers
CommonJS / non-browser module support
The current jsapi is exposed as 2 ES modules that have dependencies on browser apis. Certain nodejs environments like Electron and Vscode extensions only support CommonJS. They also require polyfilling a few select browser apis to make jsapi function. It would be helpful to
Dynamic download of jsapi
We currently provide jsapis via urls on running DH instances. This is great since it ensures the jsapi is compatible with the server. It does, however, require some boilerplate scripting that is a bit cumbersome for a consumer.
Npm package
It seems we could address all of the above in a single npm package.
There is an initial version of this in the
vscode-extension
https://github.com/deephaven/vscode-deephaven/tree/main/packages/require-jsapi
esbuild
as an npm module. It may be performant enough to just transpile esm -> commonjs at runtime as part of the download. Note that DHE is already commonjs (although that could change), so the package needs to be able to handle the various scenarios.The text was updated successfully, but these errors were encountered: