remnem 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +16 -18
  2. package/package.json +9 -9
package/README.md CHANGED
@@ -28,25 +28,24 @@ monorepo). remnem sidesteps that on the critical path:
28
28
  never descends *into* a `node_modules` (the whole subtree is going anyway).
29
29
  So the walk is proportional to your *source* tree, not the installed
30
30
  dependency tree.
31
- 2. **Rename aside** — each `node_modules` is `rename`d to a hidden sibling in the
32
- same directory. On one filesystem that is an O(1) metadata operation no matter
33
- how large the tree is. The instant it returns, `node_modules` is gone from its
34
- location **a clean reinstall can start immediately**.
31
+ 2. **Rename out of the repo** — each `node_modules` is `rename`d out of the
32
+ repository entirely, into a per-run staging directory under the OS temp dir
33
+ (`$TMPDIR/remnem-<pid>/`). On one filesystem that is an O(1) metadata
34
+ operation no matter how large the tree is. The instant it returns,
35
+ `node_modules` is gone from its location — **a clean reinstall can start
36
+ immediately** — and because the staged copy lives outside the repo, it can
37
+ never be picked up by `git status` / `git add`.
35
38
  3. **Reclaim in the background** — a detached background process `rm -rf`s the
36
- renamed directories, so the disk-freeing I/O never blocks you. Space comes
37
- back within a few seconds, hands-free.
39
+ staging directory, so the disk-freeing I/O never blocks you. Space comes back
40
+ within a few seconds, hands-free.
38
41
 
39
42
  Pass **`--sync`** if you'd rather block until the space is actually reclaimed
40
- (e.g. a script that measures free disk right after).
43
+ (e.g. a script that measures free disk right after) — that mode deletes in place
44
+ instead of staging.
41
45
 
42
- ## Delete vs. Trash
43
-
44
- By default `remnem` **permanently deletes** (via the instant rename-then-reap
45
- above). Pass **`-t` / `--trash`** to move each `node_modules` to the OS trash
46
- instead (Finder Trash on macOS, the freedesktop trash on Linux, the Recycle Bin
47
- on Windows) — recoverable from the trash, with the space reclaimed when you empty
48
- it. A `node_modules` on a *different* volume (rare) can't be renamed instantly, so
49
- those fall back to a direct delete.
46
+ If the OS temp dir happens to be on a *different* filesystem than the repo (so a
47
+ `rename` would need a slow cross-device copy), remnem detects it and falls back
48
+ to a synchronous in-place delete still never leaving anything in the tree.
50
49
 
51
50
  ## Install
52
51
 
@@ -88,7 +87,6 @@ Arguments:
88
87
  path Project root to clean (default: current directory)
89
88
 
90
89
  Options:
91
- -t, --trash Move to the Trash instead of deleting (recoverable)
92
90
  -l, --list List what would be cleared; touch nothing
93
91
  -m, --measure Size each node_modules (slow: walks every dependency tree)
94
92
  -w, --workspace Also resolve & report the bun/pnpm workspace layout (slow)
@@ -100,8 +98,8 @@ Options:
100
98
 
101
99
  By default `remnem` deletes each `node_modules` after printing what it found and
102
100
  asking for confirmation (skipped with `-y`, or when stdin isn't a TTY, e.g. in
103
- CI). Use `-l` to list without touching anything, `-t` to move to the Trash, or
104
- `--sync` to wait for the space to be reclaimed.
101
+ CI). Use `-l` to list without touching anything, or `--sync` to wait for the
102
+ space to be reclaimed before returning.
105
103
 
106
104
  Sizing (`-m`) and workspace-layout resolution (`-w`) each require an extra tree
107
105
  walk, so they are **off by default** — the fast path does neither.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remnem",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Find and delete every nested node_modules in a project as fast as possible (Rust binary)",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",
@@ -36,14 +36,14 @@
36
36
  "node": ">= 18"
37
37
  },
38
38
  "optionalDependencies": {
39
- "@leonsilicon/remnem-darwin-x64": "0.1.9",
40
- "@leonsilicon/remnem-darwin-arm64": "0.1.9",
41
- "@leonsilicon/remnem-linux-x64-gnu": "0.1.9",
42
- "@leonsilicon/remnem-linux-arm64-gnu": "0.1.9",
43
- "@leonsilicon/remnem-linux-x64-musl": "0.1.9",
44
- "@leonsilicon/remnem-linux-arm64-musl": "0.1.9",
45
- "@leonsilicon/remnem-win32-x64-msvc": "0.1.9",
46
- "@leonsilicon/remnem-win32-arm64-msvc": "0.1.9"
39
+ "@leonsilicon/remnem-darwin-x64": "0.1.10",
40
+ "@leonsilicon/remnem-darwin-arm64": "0.1.10",
41
+ "@leonsilicon/remnem-linux-x64-gnu": "0.1.10",
42
+ "@leonsilicon/remnem-linux-arm64-gnu": "0.1.10",
43
+ "@leonsilicon/remnem-linux-x64-musl": "0.1.10",
44
+ "@leonsilicon/remnem-linux-arm64-musl": "0.1.10",
45
+ "@leonsilicon/remnem-win32-x64-msvc": "0.1.10",
46
+ "@leonsilicon/remnem-win32-arm64-msvc": "0.1.10"
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public",