Warning
The project is still under active development. The API is not stable yet and may change frequently.
Molt is a project to provide Deno modules and a CLI to manage dependencies in Deno projects. Inspired by udd, but built from scratch with different design principles:
The Deno way - Internal logics of the Deno runtime are reused as much as possible, through the deno_graph and deno_lockfile crates, etc.
Module-first - The core features are provided as Deno modules, which enables you to write the best scripts for your use cases.
Git-friendly - The operations can be easily divided into logical groups for subsequent git commits.
Molt can update to dependencies written in different formats. URL imports,
npm:
and jsr:
specifiers are all supported:
- import { copy } from "https://deno.land/[email protected]/bytes/copy.ts";
+ import { copy } from "https://deno.land/[email protected]/bytes/copy.ts";
...
{
"imports": {
- "std/": "https://deno.land/[email protected]/",
+ "std/": "https://deno.land/[email protected]/",
"@luca/flag": "jsr:@luca/flag@^1.0.0",
- "@conventional-commits/parser": "npm:@conventional-commits/parser@^0.3.0"
+ "@conventional-commits/parser": "npm:@conventional-commits/parser@^0.4.0"
}
}
{
"version": "3",
"packages": {
"specifiers": {
- "jsr:@luca/flag@^1.0.0": "jsr:@luca/[email protected]",
- "npm:@conventional-commits/parser@^0.3.0": "npm:@conventional-commits/[email protected]"
+ "jsr:@luca/flag@^1.0.0": "jsr:@luca/[email protected]",
+ "npm:@conventional-commits/parser@^0.3.0": "npm:@conventional-commits/[email protected]"
},
"jsr": {
- "@luca/[email protected]": {
- "integrity": "1c76cf54839a86d0929a619c61bd65bb73d7d8a4e31788e48c720dbc46c5d546"
+ "@luca/[email protected]": {
+ "integrity": "dce7eb4159b1bdb1606fe05c2e5388dcff5ae3b0b84184b934bc623143742408"
}
},
...
Note
Molt uses a similar versioning strategy as increase-if-necessary
in
dependabot
to bump version ranges1.
A CLI to update dependencies, supposed to be the entry point for most users.
Deno modules to collect and manipulate dependencies and updates.
Modules to integrate Molt with thrid-party platforms.
General-purpose utilities developed for Molt, but may be used independently.
A GitHub Action to create pull requests for dependency updates.
We check compatibility with various registries in an integration test.
Molt offers first-class support for the following registries, implementing registry-specific routines for them:
- deno.land/std
- deno.land/x
- jsr (via
jsr:
specifier) - npm (via
npm:
specifier)
Molt also works with the following third-party registries:
The following registries are not compatible with Molt:
- cdn.jsdelivr.net
- cdn.skypack.dev
- esm.run
- denopkg.com
- ga.jspm.io
- pax.deno.dev
- raw.githubusercontent.com
- x.nest.land
Molt is inspired by other projects like