@metreeca/rack 0.3.0 → 0.5.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/dist/tool/cp.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Directories matched by a pattern are skipped: only files are copied.
10
10
  *
11
- * Each copied file is printed on stdout, one per line, by its source path as the pattern matched it.
11
+ * Each copied file is printed on stdout as `cp <source>`, with the source path spelled as the pattern matched it.
12
12
  *
13
13
  * @example
14
14
  *
package/dist/tool/cp.js CHANGED
@@ -30,7 +30,7 @@ if (import.meta.main) {
30
30
  *
31
31
  * Directories matched by a pattern are skipped: only files are copied.
32
32
  *
33
- * Each copied file is printed on stdout, one per line, by its source path as the pattern matched it.
33
+ * Each copied file is printed on stdout as `cp <source>`, with the source path spelled as the pattern matched it.
34
34
  *
35
35
  * @example
36
36
  *
@@ -58,7 +58,7 @@ export function cp(target, ...patterns) {
58
58
  patterns.flatMap(copies).forEach(({ source, destination }) => {
59
59
  mkdirSync(dirname(destination), { recursive: true });
60
60
  copyFileSync(source, destination);
61
- console.log(source);
61
+ console.log(`cp ${source}`);
62
62
  });
63
63
  function copies(pattern) {
64
64
  const sources = globSync(pattern).filter(source => statSync(source).isFile());
@@ -1 +1 @@
1
- {"version":3,"file":"cp.js","sourceRoot":"","sources":["../../src/tool/cp.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,IAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAGD,wHAAwH;AAExH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,EAAE,CAAC,MAAc,EAAE,GAAG,QAA2B;IAEhE,IAAK,CAAC,MAAM,EAAG,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAK,CAAC,QAAQ,CAAC,MAAM,EAAG,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5D,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAGH,SAAS,MAAM,CAAC,OAAe;QAE9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,IAAK,CAAC,OAAO,CAAC,MAAM,EAAG,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAEpF,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/F,CAAC;AAEF,CAAC"}
1
+ {"version":3,"file":"cp.js","sourceRoot":"","sources":["../../src/tool/cp.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,IAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAGD,wHAAwH;AAExH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,EAAE,CAAC,MAAc,EAAE,GAAG,QAA2B;IAEhE,IAAK,CAAC,MAAM,EAAG,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAK,CAAC,QAAQ,CAAC,MAAM,EAAG,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5D,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAGH,SAAS,MAAM,CAAC,OAAe;QAE9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,IAAK,CAAC,OAAO,CAAC,MAAM,EAAG,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAEpF,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/F,CAAC;AAEF,CAAC"}
File without changes
@@ -4,8 +4,9 @@
4
4
  * Each tool is installed as a command alongside the package and behaves the same on every platform and shell. Inside
5
5
  * npm scripts, these commands take precedence over system commands with the same name, such as the Unix `cp`.
6
6
  *
7
- * Every tool lists the paths it acts on to stdout, one per line, so that a script log shows what changed on disk. It
8
- * prints its usage with `--help`, and exits with a non-zero status after printing an error message to stderr.
7
+ * Every tool lists the paths it acts on to stdout, one per line prefixed with the tool name, as in `cp src/index.css`,
8
+ * so that a script log shows what changed on disk and which command changed it. It prints its usage with `--help`, and
9
+ * exits with a non-zero status after printing an error message to stderr, prefixed with the tool name as well.
9
10
  *
10
11
  * | Command | Purpose |
11
12
  * |---------------------------------------|--------------------------------------------------------------------------|
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool/index.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool/index.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
@@ -19,8 +19,9 @@
19
19
  * Each tool is installed as a command alongside the package and behaves the same on every platform and shell. Inside
20
20
  * npm scripts, these commands take precedence over system commands with the same name, such as the Unix `cp`.
21
21
  *
22
- * Every tool lists the paths it acts on to stdout, one per line, so that a script log shows what changed on disk. It
23
- * prints its usage with `--help`, and exits with a non-zero status after printing an error message to stderr.
22
+ * Every tool lists the paths it acts on to stdout, one per line prefixed with the tool name, as in `cp src/index.css`,
23
+ * so that a script log shows what changed on disk and which command changed it. It prints its usage with `--help`, and
24
+ * exits with a non-zero status after printing an error message to stderr, prefixed with the tool name as well.
24
25
  *
25
26
  * | Command | Purpose |
26
27
  * |---------------------------------------|--------------------------------------------------------------------------|
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
package/dist/tool/ln.d.ts CHANGED
@@ -22,8 +22,8 @@
22
22
  * replace installed copies and never add new packages. Missing folders are skipped, so the same command runs
23
23
  * unchanged on every machine, including machines where some of the named folders hold no local checkouts at all.
24
24
  *
25
- * Each package link is printed on stdout, relative to the current package, such as `node_modules/@scope/name`; links
26
- * to `bin` commands are created silently, since they follow from the package links already listed.
25
+ * Each package link is printed on stdout relative to the current package, as in `ln node_modules/@scope/name`;
26
+ * links to `bin` commands are created silently, since they follow from the package links already listed above.
27
27
  *
28
28
  * @example
29
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ln.d.ts","sourceRoot":"","sources":["../../src/tool/ln.ts"],"names":[],"mappings":";AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAiLnD"}
1
+ {"version":3,"file":"ln.d.ts","sourceRoot":"","sources":["../../src/tool/ln.ts"],"names":[],"mappings":";AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CA+LnD"}
package/dist/tool/ln.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { chmodSync, existsSync, globSync, lstatSync, mkdirSync, readdirSync, readFileSync, realpathSync, rmSync, statSync, symlinkSync } from "node:fs";
18
- import { dirname, join, relative, resolve } from "node:path";
18
+ import { dirname, join, parse, relative, resolve, sep } from "node:path";
19
19
  import { cli } from "./index.core.js";
20
20
  if (import.meta.main) {
21
21
  process.exitCode = cli(ln, "[<deps>]...");
@@ -44,8 +44,8 @@ if (import.meta.main) {
44
44
  * replace installed copies and never add new packages. Missing folders are skipped, so the same command runs
45
45
  * unchanged on every machine, including machines where some of the named folders hold no local checkouts at all.
46
46
  *
47
- * Each package link is printed on stdout, relative to the current package, such as `node_modules/@scope/name`; links
48
- * to `bin` commands are created silently, since they follow from the package links already listed.
47
+ * Each package link is printed on stdout relative to the current package, as in `ln node_modules/@scope/name`;
48
+ * links to `bin` commands are created silently, since they follow from the package links already listed above.
49
49
  *
50
50
  * @example
51
51
  *
@@ -93,11 +93,11 @@ export function ln(...deps) {
93
93
  function link({ modules, name, path }) {
94
94
  const target = join(modules, name);
95
95
  replace(target, path);
96
- console.log(relative(home, target));
96
+ console.log(`ln ${relative(home, target)}`);
97
97
  commands(path, name).forEach(([command, script]) => {
98
98
  replace(join(modules, ".bin", command), join(target, script));
99
99
  if (existsSync(join(path, script))) {
100
- chmodSync(join(path, script), 0o755); // as npm does, since builds such as tsc emit scripts without the mode
100
+ chmodSync(join(path, script), 0o755); // as npm does on install, since tsc emits no mode
101
101
  }
102
102
  });
103
103
  }
@@ -108,15 +108,9 @@ export function ln(...deps) {
108
108
  }
109
109
  function commands(path, name) {
110
110
  const { bin } = manifest(path);
111
- if (process.platform === "win32") {
112
- return []; // npm exposes commands through generated shims rather than links
113
- }
114
- else if (typeof bin === "string") {
115
- return [[name.replace(/^@[^/]+\//, ""), bin]];
116
- }
117
- else {
118
- return Object.entries(bin ?? {});
119
- }
111
+ return process.platform === "win32" ? []
112
+ : typeof bin === "string" ? [[name.replace(/^@[^/]+\//, ""), bin]]
113
+ : Object.entries(bin ?? {});
120
114
  }
121
115
  function copies(modules) {
122
116
  return children(modules)
@@ -128,7 +122,11 @@ export function ln(...deps) {
128
122
  const copy = join(modules, name);
129
123
  const path = linked.get(name);
130
124
  if (path !== undefined) {
131
- return existsSync(copy) && realpathSync(copy) === realpathSync(path) ? [] : [{ modules, name, path }];
125
+ return existsSync(copy) && realpathSync(copy) === realpathSync(path) ? [] : [{
126
+ modules,
127
+ name,
128
+ path
129
+ }];
132
130
  }
133
131
  else if (lstatSync(copy).isSymbolicLink()) {
134
132
  return []; // a link into another checkout, inspected as a root of its own when linked
@@ -145,16 +143,15 @@ export function ln(...deps) {
145
143
  .filter(member => existsSync(join(member, "package.json")))
146
144
  ] : [];
147
145
  }
148
- function checkout(path, parent = dirname(path)) {
149
- if (parent === dirname(parent)) {
150
- return path;
151
- }
152
- else if (existsSync(join(parent, "package.json"))) {
153
- return packages(parent).includes(path) ? parent : path;
154
- }
155
- else {
156
- return checkout(path, dirname(parent));
157
- }
146
+ function checkout(path) {
147
+ const parent = ancestors(path).find(ancestor => existsSync(join(ancestor, "package.json")));
148
+ return parent !== undefined && packages(parent).includes(path) ? parent : path;
149
+ }
150
+ function ancestors(path) {
151
+ const { root } = parse(path);
152
+ return relative(root, dirname(path)).split(sep).filter(Boolean)
153
+ .map((_, index, segments) => join(root, ...segments.slice(0, index + 1)))
154
+ .reverse();
158
155
  }
159
156
  function children(path) {
160
157
  return folder(path) ? readdirSync(path) : [];
@@ -1 +1 @@
1
- {"version":3,"file":"ln.js","sourceRoot":"","sources":["../../src/tool/ln.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ln.js","sourceRoot":"","sources":["../../src/tool/ln.ts"],"names":[],"mappings":"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"}
package/dist/tool/rm.d.ts CHANGED
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Patterns matching nothing are ignored, so that the same command can run again on an already clean tree.
6
6
  *
7
- * Each removed file or directory is printed on stdout once, relative to the current folder. Matches inside a removed
8
- * directory are not listed, even where a pattern selects them explicitly, as they go along with their ancestor.
7
+ * Each removed file or directory is printed on stdout once as `rm <path>`, relative to the current folder. Matches
8
+ * inside a removed directory go along with it and are not listed, even where a pattern selects them explicitly.
9
9
  *
10
10
  * @example
11
11
  *
package/dist/tool/rm.js CHANGED
@@ -26,8 +26,8 @@ if (import.meta.main) {
26
26
  *
27
27
  * Patterns matching nothing are ignored, so that the same command can run again on an already clean tree.
28
28
  *
29
- * Each removed file or directory is printed on stdout once, relative to the current folder. Matches inside a removed
30
- * directory are not listed, even where a pattern selects them explicitly, as they go along with their ancestor.
29
+ * Each removed file or directory is printed on stdout once as `rm <path>`, relative to the current folder. Matches
30
+ * inside a removed directory go along with it and are not listed, even where a pattern selects them explicitly.
31
31
  *
32
32
  * @example
33
33
  *
@@ -51,7 +51,7 @@ export function rm(...patterns) {
51
51
  const paths = matches.filter(path => !matches.some(match => path.startsWith(match + sep))); // gone with ancestors
52
52
  paths.forEach(path => {
53
53
  rmSync(path, { recursive: true, force: true });
54
- console.log(relative(".", path));
54
+ console.log(`rm ${relative(".", path)}`);
55
55
  });
56
56
  }
57
57
  //# sourceMappingURL=rm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../src/tool/rm.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,IAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAGD,wHAAwH;AAExH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,QAA2B;IAEhD,IAAK,CAAC,QAAQ,CAAC,MAAM,EAAG,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAElH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AAEJ,CAAC"}
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../src/tool/rm.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,IAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAGD,wHAAwH;AAExH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,QAA2B;IAEhD,IAAK,CAAC,QAAQ,CAAC,MAAM,EAAG,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAElH,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AAEJ,CAAC"}
@@ -8,6 +8,15 @@ import type { Plugin } from "vite";
8
8
  * Packages are looked up as Node does, from the `node_modules` nearest to the importer up through its ancestors, so
9
9
  * links hoisted to a workspace root are found from any member; imports with no importer start from the Vite root.
10
10
  *
11
+ * The `peerDependencies` of linked packages are shared with the project, so the project and its linked packages load a
12
+ * single copy of each peer, as libraries holding module state such as Preact hooks require. Peers resolve from the Vite
13
+ * root whoever imports them, including registry packages installed in a checkout and dependencies prebundled by the
14
+ * optimizer. All other imports keep resolving from the checkout they are found in.
15
+ *
16
+ * Peers of packages linked into the `node_modules` of the Vite root or of its ancestors are shared from the start.
17
+ * Peers of packages linked only nearer to an importer, as in a workspace member, are shared once the package is first
18
+ * resolved, and stay duplicated in prebundled dependencies, which the optimizer builds before that point.
19
+ *
11
20
  * The plugin replaces `resolve.conditions`, which breaks registry packages whose exports name a condition without
12
21
  * publishing its target: Vite does not fall back to `default` when that target is missing from the installed files.
13
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"symlinks.d.ts","sourceRoot":"","sources":["../../src/vite/symlinks.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,QAAQ,CAAC,EAExB,UAAU,EAEV,EAAE;IAEF;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;CAEtC,GAAG,MAAM,CAyET"}
1
+ {"version":3,"file":"symlinks.d.ts","sourceRoot":"","sources":["../../src/vite/symlinks.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,QAAQ,CAAC,EAExB,UAAU,EAEV,EAAE;IAEF;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;CAEtC,GAAG,MAAM,CA8GT"}
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { lstatSync, readFileSync, realpathSync } from "node:fs";
16
+ import { lstatSync, readdirSync, readFileSync, realpathSync } from "node:fs";
17
17
  import { createRequire } from "node:module";
18
18
  import { dirname, isAbsolute, join, resolve, sep } from "node:path";
19
19
  import { exports } from "resolve.exports";
@@ -26,6 +26,15 @@ import { exports } from "resolve.exports";
26
26
  * Packages are looked up as Node does, from the `node_modules` nearest to the importer up through its ancestors, so
27
27
  * links hoisted to a workspace root are found from any member; imports with no importer start from the Vite root.
28
28
  *
29
+ * The `peerDependencies` of linked packages are shared with the project, so the project and its linked packages load a
30
+ * single copy of each peer, as libraries holding module state such as Preact hooks require. Peers resolve from the Vite
31
+ * root whoever imports them, including registry packages installed in a checkout and dependencies prebundled by the
32
+ * optimizer. All other imports keep resolving from the checkout they are found in.
33
+ *
34
+ * Peers of packages linked into the `node_modules` of the Vite root or of its ancestors are shared from the start.
35
+ * Peers of packages linked only nearer to an importer, as in a workspace member, are shared once the package is first
36
+ * resolved, and stay duplicated in prebundled dependencies, which the optimizer builds before that point.
37
+ *
29
38
  * The plugin replaces `resolve.conditions`, which breaks registry packages whose exports name a condition without
30
39
  * publishing its target: Vite does not fall back to `default` when that target is missing from the installed files.
31
40
  *
@@ -58,13 +67,19 @@ import { exports } from "resolve.exports";
58
67
  */
59
68
  export function symlinks({ conditions }) {
60
69
  const $conditions = typeof conditions === "string" ? [conditions] : conditions;
61
- const manifests = new Map(); // memoised by link real path
70
+ const manifests = new Map(); // memoised by link real path, also tracking the peers to share
62
71
  return {
63
72
  name: "symlinks",
64
73
  enforce: "pre",
65
- resolveId(id, importer) {
74
+ config({ root }) {
75
+ const peers = links(resolve(root ?? "")).flatMap(link => Object.keys(manifest(realpathSync(link)).peerDependencies ?? {}));
76
+ return { resolve: { dedupe: [...new Set(peers)] } };
77
+ },
78
+ resolveId(id, importer, options) {
79
+ const root = this.environment.config.root;
66
80
  const name = id.match(/^(@[^/]+\/)?[^/]+/)?.[0];
67
- const base = importer && isAbsolute(importer) ? dirname(importer) : this.environment.config.root;
81
+ const peer = name !== undefined && [...manifests.values()].some(({ peerDependencies }) => peerDependencies !== undefined && Object.hasOwn(peerDependencies, name));
82
+ const base = !peer && importer && isAbsolute(importer) ? dirname(importer) : root;
68
83
  const link = name && lookup(name, base);
69
84
  if (link) {
70
85
  try {
@@ -76,6 +91,9 @@ export function symlinks({ conditions }) {
76
91
  return null;
77
92
  }
78
93
  }
94
+ else if (peer) { // falls back to the default resolution if missing from the project
95
+ return this.resolve(id, join(root, "package.json"), { ...options, skipSelf: true });
96
+ }
79
97
  else {
80
98
  return null;
81
99
  }
@@ -87,6 +105,19 @@ export function symlinks({ conditions }) {
87
105
  .find(candidate => lstatSync(candidate, { throwIfNoEntry: false }));
88
106
  return path !== undefined && lstatSync(path).isSymbolicLink() ? path : undefined;
89
107
  }
108
+ function links(directory) {
109
+ const parent = dirname(directory);
110
+ const modules = join(directory, "node_modules");
111
+ const entries = lstatSync(modules, { throwIfNoEntry: false })?.isDirectory()
112
+ ? readdirSync(modules).flatMap(entry => entry.startsWith("@")
113
+ ? readdirSync(join(modules, entry)).map(name => join(modules, entry, name))
114
+ : [join(modules, entry)])
115
+ : [];
116
+ return [
117
+ ...entries.filter(entry => lstatSync(entry).isSymbolicLink()),
118
+ ...(parent === directory ? [] : links(parent))
119
+ ];
120
+ }
90
121
  function manifest(path) {
91
122
  const cached = manifests.get(path);
92
123
  if (cached === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"symlinks.js","sourceRoot":"","sources":["../../src/vite/symlinks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symlinks.js","sourceRoot":"","sources":["../../src/vite/symlinks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metreeca/rack",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Everyday tooling for npm package development.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -45,7 +45,7 @@
45
45
  "clean": "rm -rf dist docs node_modules",
46
46
  "prime": "npm ci",
47
47
  "setup": "npm ci",
48
- "build": "rm -rf dist docs && tsc -p tsconfig.build.json && npx typedoc",
48
+ "build": "rm -rf dist docs && tsc -p tsconfig.build.json && chmod +x dist/tool/*.js && npx typedoc",
49
49
  "check": "npx vitest --typecheck run",
50
50
  "proof": "npx typedoc && (npx typedoc --watch & npx wds --root-dir docs --watch --open)"
51
51
  },