Important
This project is archived and no longer maintained. In the v1.4x cycle, Deno introduced
the JSR - "The JavaScript Registry" as the successor to deno.land/x
,
and since nest.land
itself seems to be abandoned for quite a while now, this repository
is now archived. All open issues and pulls were closed as wontfix
. I recommend checking
out JSR, and all the new capabilities that come with it.
Thanks for your understanding,
— Nicholas Berlette
The CLI used to manage, update, and publish modules on nest.land.
Note: Since the official CLI is no longer maintained and doesn't work
with newer Deno versions, this unofficial (and unstable) fork was born.
For more information on the Nest.land Registry, see the official documentation.
deno install -Afq --unstable https://deno.land/x/eggs@0.3.50/cli.ts
deno install -Afq --unstable https://x.nest.land/eggy0.3.50/cli.ts
Warning: You need to upgrade to Deno v1.25 or newer in order to use this version of CLI.
land
· zero install
The land project is an ingenious solution for
Command Line projects on Deno. It allows you to run any program with a cli.ts
file, without having to install it first.
deno install -Afn land https://deno.land/x/land/cli.ts
Then this command is all you need to use the eggs CLI:
land eggs
The best part is never needing to upgrade - the latest version is always used.
Generates shell completions for the eggs
CLI in bash
, fish
, or zsh
environments.
# ~/.bashrc
source <(eggs completions bash)
# ~/.config/fish/config.fish
source (eggs completions fish | psub)
# ~/.zshrc
source <(eggs completions zsh)
Before publishing a package to our registry, you'll need to get an API key. Visit nest.land to generate one.
Then, use the link
command to add it to the CLI:
eggs link <key>
Alternatively, you can manually create a .nest-api-key
file in your home dir.
The easiest path to publish a package on Nest.land is to create an egg.json
or
egg.yaml
file at the root of your project. Otherwise you'll have to manually
specify the project details via command line arguments every time you publish.
The good news is the eggs
CLI comes with a built-in tool to help jump start
your new projects!
eggs init
Note: If you'd like to specify a version that you'll publish to, you can include a
version
variable inegg.json
.
Just like deno install
, you can install scripts globally with eggs. By
installing it this way, you will be notified if an update is available for your
script.
The verification is smart, it can't be done more than once a day. To install a
script, simply replace deno
with eggs
.
deno install --allow-write --allow-read -n [NAME] https://x.nest.land/[MODULE]@[VERSION]/cli.ts
Becomes:
eggs install --allow-write --allow-read -n [NAME] https://x.nest.land/[MODULE]@[VERSION]/cli.ts
The supported registries are the same as the update command.
After you've filled in the information located in egg.json
, you can publish
your package to our registry with this command:
eggs publish
You'll receive a link to your package on our registry, along with an import URL for others to import your package from the Arweave blockchain!
Note: It may take some time for the transaction to process in Arweave. Until then, we upload your files to our server, where they are served for 20 minutes to give the transaction time to process.
You can easily update your dependencies and global scripts with the update
command.
eggs update [...deps] [options]
Your dependencies are checked in the deps.ts
file by default (current working
directory). You can change this with the --file
option.
eggs update # default to deps.ts
eggs update --file dependencies.ts
If you run this command with no arguments, all dependencies are updated.
You can pick and choose which to update by adding their name as arguments:
eggs update # Updates everything
eggs update http fs eggs # Updates only http, fs, eggs
If you want to add a registry, open an Issue by specifying the Registry URL and we'll add it.
An example dependency file, prior to updating:
import * as colors from "https://deno.land/std@0.144.0/fmt/colors.ts";
import * as bcrypt from "https://deno.land/x/bcrypt@v0.2.0/mod.ts";
import "https://deno.land/x/this@0.153.0/mod.ts";
After eggs update
:
import * as colors from "https://deno.land/std@0.159.0/fmt/colors.ts";
import * as bcrypt from "https://deno.land/x/bcrypt@v0.2.1/mod.ts";
import "https://deno.land/x/this@0.159.0/mod.ts";
Upgrading the eggs
CLI is pretty straightforward:
eggs upgrade
All contributions are welcome! If you can think of a command or feature that might benefit nest.land, fork this repository and make a pull request from your branch with the additions. Make sure to use Conventional Commits. Please also read the Contribution Guide.