@saltcorn/plugins-loader 1.6.0-beta.4 → 1.6.0-beta.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saltcorn/plugins-loader",
3
- "version": "1.6.0-beta.4",
3
+ "version": "1.6.0-beta.5",
4
4
  "description": "Saltcorn plugin loader",
5
5
  "homepage": "https://saltcorn.com",
6
6
  "scripts": {
@@ -9,7 +9,7 @@
9
9
  "clean": "echo 'No TypeScript build'"
10
10
  },
11
11
  "dependencies": {
12
- "@saltcorn/data": "1.6.0-beta.4",
12
+ "@saltcorn/data": "1.6.0-beta.5",
13
13
  "env-paths": "^2.2.1",
14
14
  "npm-registry-fetch": "17.1.0",
15
15
  "https-proxy-agent": "^7.0.6"
@@ -11,7 +11,8 @@ const {
11
11
  } = require("./download_utils");
12
12
  const { getState } = require("@saltcorn/data/db/state");
13
13
  const Plugin = require("@saltcorn/data/models/plugin");
14
- const { rm, rename, cp, readFile, readdir } = require("fs").promises;
14
+ const { rm, rename, cp, readFile, readdir, readlink, unlink } =
15
+ require("fs").promises;
15
16
  const envPaths = require("env-paths");
16
17
  const semver = require("semver");
17
18
  const path = require("path");
@@ -308,8 +309,19 @@ class PluginInstaller {
308
309
  const symLinkSrc = (await isGitCheckout())
309
310
  ? join(__dirname, "..", "..", "node_modules")
310
311
  : join(dirname(require.resolve("@saltcorn/cli")), "..", "node_modules");
311
- if (!(await pathExists(symLinkDst)))
312
+ if (await pathExists(symLinkDst)) {
313
+ const currentTarget = await readlink(symLinkDst).catch(() => null);
314
+ if (currentTarget !== symLinkSrc) {
315
+ await unlink(symLinkDst);
316
+ await symlink(
317
+ symLinkSrc,
318
+ symLinkDst,
319
+ !isWindows ? "dir" : "junction"
320
+ );
321
+ }
322
+ } else {
312
323
  await symlink(symLinkSrc, symLinkDst, !isWindows ? "dir" : "junction");
324
+ }
313
325
  };
314
326
  for (const folder of ["plugins_folder", "git_plugins"])
315
327
  await ensureFn(folder);