From 6cc12e031ea8744a0dedb3c25ba3d73fe062772d Mon Sep 17 00:00:00 2001
From: Carlo Sala <carlosalag@gmail.com>
Date: Sun, 25 Apr 2021 19:14:05 +0200
Subject: [PATCH] feat(plugins): add plugin for `deno` (#9847)

Co-authored-by: Kapil Pau <kapilpau@hotmail.com>
Co-authored-by: CallMeLaNN <CallMeLaNN@users.noreply.github.com>
---
 plugins/deno/.gitignore      |  1 +
 plugins/deno/README.md       | 18 ++++++++++++++++++
 plugins/deno/deno.plugin.zsh | 21 +++++++++++++++++++++
 3 files changed, 40 insertions(+)
 create mode 100644 plugins/deno/.gitignore
 create mode 100644 plugins/deno/README.md
 create mode 100644 plugins/deno/deno.plugin.zsh

diff --git a/plugins/deno/.gitignore b/plugins/deno/.gitignore
new file mode 100644
index 000000000..cba5b03e8
--- /dev/null
+++ b/plugins/deno/.gitignore
@@ -0,0 +1 @@
+_deno
diff --git a/plugins/deno/README.md b/plugins/deno/README.md
new file mode 100644
index 000000000..828e6af39
--- /dev/null
+++ b/plugins/deno/README.md
@@ -0,0 +1,18 @@
+# Deno Plugin
+
+This plugin sets up completion and aliases for [Deno](https://deno.land).
+
+## Aliases
+
+| Alias | Full command     |
+| ----- | ---------------- |
+| db    | deno bundle      |
+| dc    | deno compile     |
+| dca   | deno cache       |
+| dfmt  | deno fmt         |
+| dh    | deno help        |
+| dli   | deno lint        |
+| drn   | deno run         |
+| drw   | deno run --watch |
+| dts   | deno test        |
+| dup   | deno upgrade     |
diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh
new file mode 100644
index 000000000..af5c98265
--- /dev/null
+++ b/plugins/deno/deno.plugin.zsh
@@ -0,0 +1,21 @@
+# ALIASES
+alias db='deno bundle'
+alias dc='deno compile'
+alias dca='deno cache'
+alias dfmt='deno fmt'
+alias dh='deno help'
+alias dli='deno lint'
+alias drn='deno run'
+alias drw='deno run --watch'
+alias dts='deno test'
+alias dup='deno upgrade'
+
+# COMPLETION FUNCTION
+if (( $+commands[deno] )); then
+  if [[ ! -f $ZSH_CACHE_DIR/deno_version ]] \
+    || [[ "$(deno --version)" != "$(< "$ZSH_CACHE_DIR/deno_version")" ]] \
+    || [[ ! -f $ZSH/plugins/deno/_deno ]]; then
+    deno completions zsh > $ZSH/plugins/deno/_deno
+    deno --version > $ZSH_CACHE_DIR/deno_version
+  fi
+fi