denoland / denoland/deploy_feedback

Improve deployctl typechecker handling of missing symbols

Open
#108 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
79
Forks
5
PR merge metrics
No merged PRs in 30d

Description

When running a minimal application via `deployctl` written with `oak` or many other deno packages, the typechecker fails, outputting tons of errors related to missing members on Deno/crypto/etc.

I'm aware the entire Deno namespace isn't available for deploy. However, deploy is advertised as compatible with oak and much of the Deno ecosystem. I couldn't find a GH issue tracking this despite running into it almost immediately with deploy.

As a result, it seems like you're not able to use deployctl with a Deno project of typical complexity or dependencies unless bypassing typechecking (using `--no-check`), which gives no assurances that the execution will be reliable or clarity on which aspects of oak are supported/unsupported.

It would be great to have a better handling or error messaging related to this dependency closure issue. Any suggestions appreciated.

# minimal repro:

## mod.ts
```js
import {Application} from "https://deno.land/x/oak@v9.0.1/mod.ts"

const app = new Application();

app.use((ctx) => {
ctx.response.body = "sup world";
});

console.log('running')
await app.listen({ port: 8000 });
```

## using deployctl
(errors and fails to run)
```sh
$ deployctl run mod.ts
error: TS2694 [ERROR]: Namespace 'Deno' has no exported member 'ReaderSync'.
export function readAllSync(r: Deno.ReaderSync): Uint8Array {
~~~~~~~~~~
at https://deno.land/std@0.105.0/io/util.ts:57:37

(...)

Found 101 errors.
error: Process exited with code 1
```

## using deno
(works as expected)
```sh
$ deno run --allow-net mod.ts
running
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.