Ask questionsMajor features necessary for 1.0
We've got a lot of issues, some are tiny, others are big features. I want to outline what I perceive to be the major missing bits before we can consider 1.0
[ ] "deno --debug" https://github.com/denoland/deno/issues/1120 We need to be able to debug using Chrome Devtools. As the deno userland code base grows, it becomes in increasingly painful to work without a debugger. The way this will work is with a websocket server in Rust (port 9229) which forwards messages to V8 (using V8InspectorClient).
[x] Loading and execution of modules (either JS or TS) needs to be correct. This is the main thing we deliver actually, but there are still many bugs: <s>source maps are sometimes incorrect https://github.com/denoland/deno/issues/2390</s>, <s>double downloads happen https://github.com/denoland/deno/issues/2442</s>, the cache needs to be refactored https://github.com/denoland/deno/issues/2057.
[X] Import maps. It's a very reasonable standard and we can provide support via a command line flag. This allows bare imports. The feature will land very soon https://github.com/denoland/deno/pull/2360.
[x] Dynamic import. 50% complete at the time of writing. https://github.com/denoland/deno/issues/1789
[x] "deno test" test runner https://github.com/denoland/deno_std/issues/193
[x] "deno fmt" is slow on the first run. It download a couple of large prettier bundles. https://github.com/denoland/deno/issues/2490
[x] We need to support d.ts files https://github.com/denoland/deno/issues/1432
[X] "deno bundle" outputs a single AMD bundle of your program. This is useful to share code with websites. Early work has started: https://github.com/denoland/deno/pull/2467
[ ] "deno compile" is a very interesting feature to output an executable. It would be nice to have, but I would let this slip past 1.0. https://github.com/denoland/deno/issues/986
[x] "deno install" is a program that creates little shell script aliases to deno programs in your $PATH. This let's people distribute their code easily. https://github.com/denoland/deno_std/issues/471
[ ] dlopen / plugins / extension modules. We need some way of calling into Rust land. The way Parcel does it is pretty awesome https://parceljs.org/rust.html - but we need low-level primitives to build that on, as we need to carefully funnel everything through the Op abstraction. @afinch7 has a working patch for loading ops in DLLs https://github.com/denoland/deno/pull/2385, we are still iterating on the exact API. I would allow a true FFI module to slip past 1.0 - we'll get there - but it needs to be built on ops.
[ ] Support TLS https://github.com/denoland/deno/issues/3009
[ ] The web-server should be faster.
[X] When you visit a deno.land script url (example https://deno.land/std/http/server.ts) in a web browser, it should do better than redirect. It should look at the Accept header and serve pretty HTML. Solved in https://github.com/denoland/registry/commit/b78e6ae331004859aad7b01ed452f6b00265b035
[ ] If you use "docs.deno.land" you will get auto-generated docs. https://github.com/denoland/deno/issues/3094
[x] typescript dependencies are not loaded in parallel <s>#2626</s> https://github.com/denoland/deno/issues/2994
[ ] signal handlers https://github.com/denoland/deno/issues/2339
<s>- [ ] fs events https://github.com/denoland/deno/issues/1826</s>
[ ] TS and source maps are correctly recompiled https://github.com/denoland/deno/issues/2945
[ ] Remove tokio_util::block_on https://github.com/denoland/deno/issues/2960
[ ] "deno test" is slow (when running on std) https://github.com/denoland/deno/issues/2789
Do any major API renames.
import.metadoesn't work with bundling on browsers. We need to come up with a different scheme for branching if the script is the main.
Other minor bugs that are nevertheless blockers:
Answer questions acconrad
@ry I'll take this:
When you visit a deno.land script url
Where would the CSS live for that? Where is the website server code within deno?