Claude-skill-registry deno
Deno 2 development workflow including testing with permissions and JSR package management. Use when working with Deno projects, setting up new Deno applications, or when the user mentions Deno, JSR, or modern JavaScript/TypeScript development.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/deno" ~/.claude/skills/majiayu000-claude-skill-registry-deno && rm -rf "$T"
manifest:
skills/data/deno/SKILL.mdsource content
Deno Development
Version Requirements
- Always use Deno 2
Testing
- Use
for running tests with permissions granteddeno test -P - The
flag allows permissions described in-P
during testing.deno.json - Define test permissions in the
section oftest
.deno.json
Package Management
- Use JSR (JavaScript Registry) for package dependencies https://jsr.io/
- JSR is the modern package registry for JavaScript and TypeScript
Common Commands
Adding Dependencies
# Add from JSR deno add jsr:@std/log deno add jsr:@std/path # Add from npm (when necessary) deno add npm:express
Running Tests
# Run all tests with permissions deno test -P # Run specific test file deno test -P test/example.test.ts
Running Applications
# Run with limited permissions - AVOID -A unless absolutely necessary deno run --allow-read=. main.ts deno run --allow-net --allow-read=./public server.ts deno run --allow-env --allow-read=. config.ts # for `export default { fetch }` deno serve serve.ts # Use permission sets from deno.json deno run -P main.ts
Configuration with deno.json
Permission Sets
Define permission sets in deno.json for consistent security:
{ "permissions": { "default": { "read": ["."], "env": { "allow": ["NODE_ENV", "PORT"], "deny": ["SECRET_KEY"], "ignore": ["TEMP_*"] } }, "server": { "read": ["./public"], "net": ["localhost:8000", "deno.land"], "env": { "allow": ["DATABASE_URL", "API_KEY"] } } } }
Test Permissions
Configure test permissions in deno.json:
{ "test": { "permissions": { "read": ["."], "net": true } } }
Best Practices
- NEVER use
(all permissions) unless absolutely necessary-A - Always use the most restrictive permissions possible
- Use
instead of--allow-read=.
to limit to current directory--allow-read - Use permission sets in deno.json for consistent security
- Define test permissions in deno.json under the
sectiontest - Use
,env.allow
, andenv.deny
for fine-grained environment variable control (env.ignore
also available)read.ignore - Do not use
statements with full URLs for external dependencies. Instead, useimport
first.deno add - Leverage Deno's built-in security features
- Use JSR for package discovery and management