symlink-dir 6.0.4 → 7.0.0

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.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016-2024 Zoltan Kochan <z@kochan.io>
3
+ Copyright (c) 2016-2025 Zoltan Kochan <z@kochan.io>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -6,7 +6,8 @@
6
6
  [![npm version](https://img.shields.io/npm/v/symlink-dir.svg)](https://www.npmjs.com/package/symlink-dir)
7
7
  <!--/@-->
8
8
 
9
- * Always uses "junctions" on Windows. Even though support for "symbolic links" was added in Vista+, users by default lack permission to create them
9
+ * Uses "junctions" on Windows if "symbolic links" is disallowed. Even though support for "symbolic links" was added in Vista+, users by default lack permission to create them
10
+ * If you prefer symbolic links in Windows, [turn on the Developer Mode](https://learn.microsoft.com/windows/apps/get-started/enable-your-device-for-development#activate-developer-mode)
10
11
  * Any file or directory, that has the destination name, is renamed before creating the link
11
12
 
12
13
  ## Installation
package/dist/index.js CHANGED
@@ -5,14 +5,10 @@ const util = require("util");
5
5
  const pathLib = require("path");
6
6
  const renameOverwrite = require("rename-overwrite");
7
7
  const IS_WINDOWS = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
8
- // Always use "junctions" on Windows. Even though support for "symbolic links" was added in Vista+, users by default
9
- // lack permission to create them
10
- const symlinkType = IS_WINDOWS ? 'junction' : 'dir';
11
- const resolveSrc = IS_WINDOWS ? resolveSrcOnWin : resolveSrcOnNonWin;
12
- function resolveSrcOnWin(src, dest) {
8
+ function resolveSrcOnWinJunction(src) {
13
9
  return `${src}\\`;
14
10
  }
15
- function resolveSrcOnNonWin(src, dest) {
11
+ function resolveSrcOnTrueSymlink(src, dest) {
16
12
  return pathLib.relative(pathLib.dirname(dest), src);
17
13
  }
18
14
  function symlinkDir(target, path, opts) {
@@ -20,9 +16,69 @@ function symlinkDir(target, path, opts) {
20
16
  target = betterPathResolve(target);
21
17
  if (target === path)
22
18
  throw new Error(`Symlink path is the same as the target path (${target})`);
23
- target = resolveSrc(target, path);
24
19
  return forceSymlink(target, path, opts);
25
20
  }
21
+ function isExistingSymlinkUpToDate(wantedTarget, path, linkString) {
22
+ // path is going to be that of the symlink, so never be a (drive) root, therefore dirname(path) is different from path
23
+ const existingTarget = pathLib.isAbsolute(linkString) ? linkString : pathLib.join(pathLib.dirname(path), linkString);
24
+ return pathLib.relative(wantedTarget, existingTarget) === '';
25
+ }
26
+ let createSymlinkAsync;
27
+ let createSymlinkSync;
28
+ if (IS_WINDOWS) {
29
+ // Falls back to "junctions" on Windows if "symbolic links" is disallowed. Even though support for "symbolic links" was added in Vista+, users by default
30
+ // lack permission to create them
31
+ createSymlinkAsync = async (target, path) => {
32
+ try {
33
+ await createTrueSymlinkAsync(target, path);
34
+ createSymlinkSync = createTrueSymlinkSync;
35
+ createSymlinkAsync = createTrueSymlinkAsync;
36
+ }
37
+ catch (err) {
38
+ if (err.code === 'EPERM') {
39
+ await createJunctionAsync(target, path);
40
+ createSymlinkSync = createJunctionSync;
41
+ createSymlinkAsync = createJunctionAsync;
42
+ }
43
+ else {
44
+ throw err;
45
+ }
46
+ }
47
+ };
48
+ createSymlinkSync = (target, path) => {
49
+ try {
50
+ createTrueSymlinkSync(target, path);
51
+ createSymlinkSync = createTrueSymlinkSync;
52
+ createSymlinkAsync = createTrueSymlinkAsync;
53
+ }
54
+ catch (err) {
55
+ if (err.code === 'EPERM') {
56
+ createJunctionSync(target, path);
57
+ createSymlinkSync = createJunctionSync;
58
+ createSymlinkAsync = createJunctionAsync;
59
+ }
60
+ else {
61
+ throw err;
62
+ }
63
+ }
64
+ };
65
+ }
66
+ else {
67
+ createSymlinkAsync = createTrueSymlinkAsync;
68
+ createSymlinkSync = createTrueSymlinkSync;
69
+ }
70
+ function createTrueSymlinkAsync(target, path) {
71
+ return fs_1.promises.symlink(resolveSrcOnTrueSymlink(target, path), path, 'dir');
72
+ }
73
+ function createTrueSymlinkSync(target, path) {
74
+ (0, fs_1.symlinkSync)(resolveSrcOnTrueSymlink(target, path), path, 'dir');
75
+ }
76
+ function createJunctionAsync(target, path) {
77
+ return fs_1.promises.symlink(resolveSrcOnWinJunction(target), path, 'junction');
78
+ }
79
+ function createJunctionSync(target, path) {
80
+ (0, fs_1.symlinkSync)(resolveSrcOnWinJunction(target), path, 'junction');
81
+ }
26
82
  /**
27
83
  * Creates a symlink. Re-link if a symlink already exists at the supplied
28
84
  * srcPath. API compatible with [`fs#symlink`](https://nodejs.org/api/fs.html#fs_fs_symlink_srcpath_dstpath_type_callback).
@@ -30,7 +86,7 @@ function symlinkDir(target, path, opts) {
30
86
  async function forceSymlink(target, path, opts) {
31
87
  let initialErr;
32
88
  try {
33
- await fs_1.promises.symlink(target, path, symlinkType);
89
+ await createSymlinkAsync(target, path);
34
90
  return { reused: false };
35
91
  }
36
92
  catch (err) {
@@ -92,7 +148,7 @@ async function forceSymlink(target, path, opts) {
92
148
  warn,
93
149
  };
94
150
  }
95
- if (target === linkString) {
151
+ if (isExistingSymlinkUpToDate(target, path, linkString)) {
96
152
  return { reused: true };
97
153
  }
98
154
  if ((opts === null || opts === void 0 ? void 0 : opts.overwrite) === false) {
@@ -116,7 +172,6 @@ symlinkDir['default'] = symlinkDir;
116
172
  target = betterPathResolve(target);
117
173
  if (target === path)
118
174
  throw new Error(`Symlink path is the same as the target path (${target})`);
119
- target = resolveSrc(target, path);
120
175
  return forceSymlinkSync(target, path, opts);
121
176
  }
122
177
  symlinkDir.sync = sync;
@@ -124,7 +179,7 @@ symlinkDir['default'] = symlinkDir;
124
179
  function forceSymlinkSync(target, path, opts) {
125
180
  let initialErr;
126
181
  try {
127
- (0, fs_1.symlinkSync)(target, path, symlinkType);
182
+ createSymlinkSync(target, path);
128
183
  return { reused: false };
129
184
  }
130
185
  catch (err) {
@@ -186,7 +241,7 @@ function forceSymlinkSync(target, path, opts) {
186
241
  warn,
187
242
  };
188
243
  }
189
- if (target === linkString) {
244
+ if (isExistingSymlinkUpToDate(target, path, linkString)) {
190
245
  return { reused: true };
191
246
  }
192
247
  if ((opts === null || opts === void 0 ? void 0 : opts.overwrite) === false) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "symlink-dir",
3
- "version": "6.0.4",
3
+ "version": "7.0.0",
4
4
  "description": "Cross-platform directory symlinking",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -32,18 +32,18 @@
32
32
  },
33
33
  "homepage": "https://github.com/pnpm/symlink-dir#readme",
34
34
  "devDependencies": {
35
- "@types/node": "^20.14.10",
36
- "@types/tape": "^5.6.4",
35
+ "@types/node": "^22.15.3",
36
+ "@types/tape": "5.6.4",
37
37
  "rimraf": "^3.0.2",
38
- "tape": "^5.8.1",
38
+ "tape": "^5.9.0",
39
39
  "tempy": "^1.0.1",
40
40
  "ts-node": "^10.9.2",
41
- "typescript": "^5.5.3",
41
+ "typescript": "^5.8.3",
42
42
  "write-json-file": "^4.3.0"
43
43
  },
44
44
  "dependencies": {
45
45
  "better-path-resolve": "^1.0.0",
46
- "rename-overwrite": "^6.0.0"
46
+ "rename-overwrite": "^6.0.2"
47
47
  },
48
48
  "mos": {
49
49
  "plugins": [
@@ -59,6 +59,7 @@
59
59
  "scripts": {
60
60
  "pretest": "rimraf node_modules/src",
61
61
  "test": "ts-node test/sync.ts && ts-node test/async.ts",
62
+ "test:non-develop": "ts-node -r ./test/emulateWinNonDevelopMode.js test/sync.ts && ts-node -r ./test/emulateWinNonDevelopMode.js test/async.ts",
62
63
  "premd": "rimraf node_modules/src && npm run tsc",
63
64
  "tsc": "rimraf dist && tsc"
64
65
  }