Skip to content

Commit

Permalink
Add support for top-level await (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
duncup authored May 27, 2021
1 parent 62a3d70 commit 516b91f
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
"email": "sam.verschueren@gmail.com",
"url": "github.com/SamVerschueren"
},
"bin": {
"run-node": "run-node.sh"
},
"maintainers": [
{
"name": "Sindre Sorhus",
Expand Down Expand Up @@ -45,7 +48,6 @@
"execa": "^4.0.0",
"find-up": "^4.1.0",
"plist": "^3.0.1",
"run-node": "^1.0.0",
"tempfile": "^3.0.0"
},
"devDependencies": {
Expand Down
49 changes: 49 additions & 0 deletions run-node.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash

if [[ -z "$alfred_workflow_cache" ]]; then
echo "This script must be called from Alfred, \$alfred_workflow_cache is missing. Make sure a Bundle ID is set."
exit 1
fi

if [[ ! -d "$alfred_workflow_cache" ]]; then
mkdir -p "$alfred_workflow_cache"
fi

PATH_CACHE="$alfred_workflow_cache"/node_path

get_user_path() {
eval $(/usr/libexec/path_helper -s)
echo "$($SHELL -i -l -c 'echo -e "\n"PATH=\"$PATH:\$PATH\""\n"' 2>/dev/null | grep "^PATH=")" > "$PATH_CACHE"
}

set_path() {
if [[ -f "$PATH_CACHE" ]]; then
. "$PATH_CACHE"
else
get_user_path
. "$PATH_CACHE"
fi

export PATH
}

has_node() {
command -v node >/dev/null 2>&1
}

# Check if we have Node.js, otherwise inherit path from user shell
if ! has_node; then
set_path

# Retry by deleting old path cache
if ! has_node; then
rm "$PATH_CACHE"
set_path
fi
fi

if has_node; then
ESM_OPTIONS='{"await":true}' node --require esm "$@"
else
echo $'{"items":[{"title": "Couldn\'t find the `node` binary", "subtitle": "Symlink it to `/usr/local/bin`"}]}'
fi

0 comments on commit 516b91f

Please sign in to comment.