Skip to content
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

Add support for Deno with an index-deno.ts #2522

Merged
merged 11 commits into from
Jul 19, 2022
Merged

Conversation

tomaka
Copy link
Contributor

@tomaka tomaka commented Jul 18, 2022

Adds a new index-deno.ts file, similar to index-nodejs.ts and index-browser.ts.

This file gets compiled by TypeScript, which generates dist/mjs/index-deno.js.
The content of dist/mjs can then be published to the deno.land/x registry.

The reason for not publishing directly the content of src on the Deno registry is that Deno requires paths to modules to always end with a .ts extension, while regular TypeScript requires paths to end with either no extension or with .js.
It is therefore impossible to write code that works on both non-Deno TypeScript and Deno TypeScript (unless that code is squashed together within a single module, which I've considered, but this isn't worth the trade-off).

Because the Deno types aren't available on NPM (well, they actually are, but not maintained), I had to copy-paste the types found in the Deno repository.
Considering that we are only using stable APIs, I expect these types to never need to be updated. Fingers crossed that I will not be proven wrong.

We now run deno run ./dist/mjs/index-deno.js in the CI, which should ensure that compatibility never breaks.
I've also added a demo/demo-deno.ts file, which isn't tested by CI but can be run from Deno in order to make sure that everything is working.

@tomaka tomaka requested a review from harrysolovay July 18, 2022 10:26
Copy link
Contributor

@mergify mergify bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automatically approving tomaka's pull requests. This auto-approval will be removed once more maintainers are active.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 18, 2022

twiggy diff report

Difference in .wasm size before and after this pull request.


 Delta Bytes │ Item
─────────────┼──────────────────
          +0 ┊ Σ [0 Total Rows]

@tomaka
Copy link
Contributor Author

tomaka commented Jul 19, 2022

Should be merged together with #2533

@tomaka tomaka added the automerge Automatically merge pull request as soon as possible label Jul 19, 2022
@mergify mergify bot merged commit 4e84148 into paritytech:main Jul 19, 2022
@tomaka tomaka deleted the deno-support branch July 20, 2022 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Automatically merge pull request as soon as possible
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants