monorepo-next 8.5.0 → 8.5.1

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/package.json +1 -1
  2. package/src/releasable.js +32 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monorepo-next",
3
- "version": "8.5.0",
3
+ "version": "8.5.1",
4
4
  "description": "Detach monorepo packages from normal linking",
5
5
  "bin": {
6
6
  "next": "bin/next.js"
package/src/releasable.js CHANGED
@@ -18,6 +18,32 @@ const filesContributingToReleasability = new Set([
18
18
 
19
19
  const packageJsonDevChangeRegex = /^\/(?:devDependencies|publishConfig)(?:\/|$)/m;
20
20
 
21
+ const relativePathRegex = /^\.{2}(?:\/|\\|$)/;
22
+
23
+ function removeSubDirs(files) {
24
+ let remainingFiles = new Set(files);
25
+
26
+ for (let file of remainingFiles) {
27
+ let isSubDir = remainingFiles.some(nextFile => {
28
+ if (file === nextFile) {
29
+ return false;
30
+ }
31
+
32
+ let relative = path.relative(file, nextFile);
33
+
34
+ let isSubDir = !relativePathRegex.test(relative);
35
+
36
+ return isSubDir;
37
+ });
38
+
39
+ if (isSubDir) {
40
+ remainingFiles.delete(file);
41
+ }
42
+ }
43
+
44
+ return remainingFiles;
45
+ }
46
+
21
47
  async function prepareTmpPackage({
22
48
  cwd,
23
49
  tmpDir,
@@ -38,11 +64,11 @@ async function prepareTmpPackage({
38
64
  }
39
65
  }
40
66
 
41
- for (let file of changedFiles) {
42
- if (filesContributingToReleasability.has(file)) {
43
- continue;
44
- }
67
+ let remainingFiles = changedFiles.diff(filesContributingToReleasability);
68
+
69
+ remainingFiles = removeSubDirs(remainingFiles);
45
70
 
71
+ for (let file of remainingFiles) {
46
72
  let filePath = path.join(tmpDir, file);
47
73
 
48
74
  await fs.mkdir(path.dirname(filePath), { recursive: true });
@@ -161,4 +187,6 @@ async function getChangedReleasableFiles({
161
187
  module.exports = {
162
188
  getChangedReleasableFiles,
163
189
  packageJsonDevChangeRegex,
190
+ removeSubDirs,
191
+ relativePathRegex,
164
192
  };