Skip to content

Commit 53f9e5a

Browse files
committed
🧑‍💻 unpublished or deprecated npmjs package
1 parent f371057 commit 53f9e5a

File tree

5 files changed

+29
-16
lines changed

5 files changed

+29
-16
lines changed

.github/unpublish.sh

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,55 @@
22

33
VER_EXPR=${1:-'dev'}
44
PKG_NAME=${2:-'@fessional/razor'}
5+
SUFFIXES=${3:-'common,desktop,mobile'}
56

6-
echo "📦 Fetching package versions of $PKG_NAME"
7-
VERSIONS=$(npm view "$PKG_NAME" versions --json | jq -r 'reverse | .[]')
7+
echo "📦 Fetching versions for $PKG_NAME"
88

9-
echo "🔍 Matching versions regexp: $VER_EXPR"
9+
VERSIONS=$(curl -s "https://registry.npmjs.org/${PKG_NAME}" \
10+
| jq -r '[.versions | to_entries[] | select(.value.deprecated == null) | .key] | reverse[]')
11+
12+
echo "🔍 Matching versions using pattern: $VER_EXPR"
1013
MATCHED=$(echo "$VERSIONS" | grep -E "$VER_EXPR" || true)
1114

1215
if [ -z "$MATCHED" ]; then
1316
echo "✅ No matching versions found."
1417
exit 0
1518
fi
1619

17-
echo '⚠️ //registry.npmjs.org/:_authToken=$NPM_TOKEN must set in ~/.npmrc'
18-
echo "⚠️ Will attempt to unpublish the following versions:"
20+
echo "⚠️ Requires auth token in ~/.npmrc: //registry.npmjs.org/:_authToken=\$NPM_TOKEN"
21+
echo "⚠️ The following versions will be unpublished (or deprecated if not allowed):"
1922
echo "$MATCHED"
2023
echo ""
2124

2225
function _unpublish() {
2326
local pkg=$1
24-
npm unpublish "$pkg" > /dev/null 2>&1 && echo "$pkg" || echo "$pkg"
27+
if npm unpublish "$pkg" > /dev/null 2>&1; then
28+
echo "✅ Unpublished $pkg"
29+
else
30+
npm deprecate -f "$pkg" "❌ Deprecated version. Please upgrade." > /dev/null 2>&1
31+
echo "⚠️ Deprecated $pkg"
32+
fi
2533
}
2634

35+
IFS=',' read -ra SUFFIX_LIST <<< "$SUFFIXES"
36+
2737
CONFIRM="no"
2838
for version in $MATCHED; do
2939
if [[ "$CONFIRM" != "all" ]]; then
30-
read -p "🔆 Unpublish $version ? (all/y/n) " CONFIRM
40+
read -p "🔆 Unpublish $version? (all/y/n) " CONFIRM
3141
if [[ "$CONFIRM" != "y" && "$CONFIRM" != "all" ]]; then
3242
continue
3343
fi
3444
fi
3545

36-
echo "🚮 Unpublish $version"
46+
echo "🚮 Processing $PKG_NAME@$version"
3747
_unpublish "$PKG_NAME@$version"
38-
_unpublish "${PKG_NAME}-common@$version"
39-
_unpublish "${PKG_NAME}-desktop@$version"
40-
_unpublish "${PKG_NAME}-mobile@$version"
48+
49+
for suffix in "${SUFFIX_LIST[@]}"; do
50+
if [[ -n "$suffix" && "$suffix" != "-" ]]; then
51+
_unpublish "${PKG_NAME}-${suffix}@$version"
52+
fi
53+
done
4154
done
4255

43-
echo "Done All."
56+
echo "✅ All done."

layers/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fessional/razor-common",
3-
"version": "0.8.1-dev.17",
3+
"version": "0.8.1-dev.18",
44
"description": "common layer for mobile and desktop",
55
"type": "module",
66
"main": "./nuxt.config.ts",

layers/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fessional/razor-desktop",
3-
"version": "0.8.1-dev.17",
3+
"version": "0.8.1-dev.18",
44
"description": "desktop layer with vuetify",
55
"type": "module",
66
"main": "./nuxt.config.ts",

layers/mobile/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fessional/razor-mobile",
3-
"version": "0.8.1-dev.17",
3+
"version": "0.8.1-dev.18",
44
"description": "mobile layer with ionic and capacitor",
55
"type": "module",
66
"main": "./nuxt.config.ts",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fessional/razor",
3-
"version": "0.8.1-dev.17",
3+
"version": "0.8.1-dev.18",
44
"description": "Use front-end tech (Nuxt/Ts) to build multi-platform from one codebase, suitable for small team and app to write app once, apply almost anywhere.",
55
"type": "module",
66
"files": [

0 commit comments

Comments
 (0)