From a89cefe3183dde8908c2ba5c3a7590cde895922c Mon Sep 17 00:00:00 2001
From: Deepak Dahiya <59823596+t-dedah@users.noreply.github.com>
Date: Wed, 30 Nov 2022 09:22:23 +0000
Subject: [PATCH] Updated node example

---
 examples.md | 36 +++++++++++++++++++++++++++++++++---
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/examples.md b/examples.md
index 5a38585..21474ae 100644
--- a/examples.md
+++ b/examples.md
@@ -309,14 +309,44 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
 For npm, cache files are stored in `~/.npm` on Posix, or `~\AppData\npm-cache` on Windows, but it's possible to use `npm config get cache` to find the path on any platform. See [the npm docs](https://docs.npmjs.com/cli/cache#cache) for more details.
 
 If using `npm config` to retrieve the cache directory, ensure you run [actions/setup-node](https://github.com/actions/setup-node) first to ensure your `npm` version is correct.
+After [deprecation](https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/) of save-state and set-output commands, the correct way to set output is using `${GITHUB_OUTPUT}`. For linux, we can use `${GITHUB_OUTPUT}` whereas for windows we need to use `${env:GITHUB_OUTPUT}` due to two different default shells in these two different OS ie `bash` and `pwsh` respectively.
 
 >Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci`
 
+### **Get npm cache directory using default shells**
+### Linux or Mac
 ```yaml
 - name: Get npm cache directory
-  id: npm-cache-dir
-  run: |
-    echo "::set-output name=dir::$(npm config get cache)"
+  id: npm-cache
+  run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
+```
+
+### Windows
+```yaml
+- name: Get npm cache directory
+  id: npm-cache
+  run: echo "dir=$(npm config get cache)" >> ${env:GITHUB_OUTPUT}
+```
+
+### **Get npm cache directory using same shell**
+### Bash shell
+```yaml
+- name: Get npm cache directory
+  id: npm-cache
+  shell: bash
+  run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
+```
+
+### PWSH shell
+```yaml
+- name: Get npm cache directory
+  id: npm-cache
+  shell: pwsh
+  run: echo "dir=$(npm config get cache)" >> ${env:GITHUB_OUTPUT}
+```
+`Get npm cache directory` step can then be used with `actions/cache` as shown below
+
+```yaml
 - uses: actions/cache@v3
   id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true'
   with: