A build tool that enables NPM module authors to support Deno from a single TypeScript codebase without maintaining a separate port.
Denoify is a build tool designed for NPM module authors who want to add Deno support to their TypeScript projects without maintaining a separate codebase. It transforms source files intended for Node.js or the web into Deno-compatible modules, handling dependencies and platform-specific adaptations automatically. This solves the problem of dual maintenance and enables libraries to be published on both NPM and deno.land/x seamlessly.
TypeScript library authors publishing to NPM who want to extend their reach to the Deno ecosystem without rewriting their code. It's also suitable for developers maintaining cross-runtime libraries that need consistent updates across platforms.
Developers choose Denoify because it automates the porting process, supports recursive dependency resolution, and ensures retro compatibility with older Deno versions. Its ability to generate Deno-specific distributions increases library visibility and adoption within the Deno community.
🦕For NPM module authors that would like to support Deno but do not want to write and maintain a port.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables publishing a single TypeScript codebase to both NPM and deno.land/x, eliminating dual maintenance and simplifying updates across runtimes.
Transforms Node.js imports (e.g., `import express from 'express'`) into Deno-compatible NPM specifiers (e.g., `import express from 'npm:express@5'`), handling dependencies recursively.
Supports .deno.ts files for Deno-specific implementations where NPM modules fail, allowing targeted overrides without breaking Node.js compatibility.
Ensures modules work with older Deno versions lacking built-in NPM support, broadening accessibility and user base.
Requires projects to be in TypeScript; vanilla JavaScript codebases must be converted first, adding an upfront barrier and potential type errors.
Does not support `require()` and restricts `fs.readFile()` for accessing module-internal files, breaking common Node.js patterns and requiring workarounds.
The README advises using JSR for new projects, indicating Denoify may become less future-proof as the Deno ecosystem shifts toward native solutions.