Denoify
Search
⌃K
Links
🔍

Automatic discovery of ports

If you have published your module both on deno.land/x and NPM Denoify should be able to automatically resolve your Deno distribution, what do I mean by that?

Examples of resolutions that denoify can perform automatically

Let's assume we are in a project, in our node_modules directory we have the following three Denoified modules:

Input

// src/foo.ts
import { assert } from "tsafe/assert";
import type { Equals } from "tsafe";
import * as ns from "my-dummy-npm-and-deno-module";
import { Cat } from "my-dummy-npm-and-deno-module/dist/lib/Cat";
import { createLexer } from "leac";

Output

Now if we run npx denoify it will generates this:
// deno_dist/foo.ts
import { assert } from "https://deno.land/x/[email protected]/assert.ts";
import type { Equals } from "https://deno.land/x/[email protected]/mod.ts";
import * as ns from "https://deno.land/x/[email protected]/mod.ts";
import { Cat } from "https://deno.land/x/[email protected]/lib/Cat.ts";
import { createLexer } from "https://deno.land/x/leac/v0.6.0/mod.ts";
If tsafe wasn't published on deno.land/x instead of https://deno.land/x/[email protected]/assert.ts we would have https://raw.githubusercontent.com/garronej/tsafe/v0.10.1/deno_dist/assert.ts.
Denoify always find the files on GitHub first and then try to see if it can get the same file with a deno.land/x url on a best effort basis.
If you want it to work your repo should have the same name as the deno module you have published ( we replace the - by _ ).

Troubleshooting

For some reason, automatic resolution dosen't work well with your module?
Please reach out by opening a discussion!
If you want to check for common problem before contacting the community here are some things you might want to check out: