@monorepolint/rules 0.5.0-alpha.9 → 0.5.0-alpha.95

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 (138) hide show
  1. package/lib/__tests__/alphabeticalScripts.spec.d.ts +8 -0
  2. package/lib/__tests__/alphabeticalScripts.spec.d.ts.map +1 -0
  3. package/lib/__tests__/alphabeticalScripts.spec.js +61 -0
  4. package/lib/__tests__/alphabeticalScripts.spec.js.map +1 -0
  5. package/lib/__tests__/bannedDependencies.spec.d.ts +2 -0
  6. package/lib/__tests__/bannedDependencies.spec.d.ts.map +1 -0
  7. package/lib/__tests__/bannedDependencies.spec.js +161 -0
  8. package/lib/__tests__/bannedDependencies.spec.js.map +1 -0
  9. package/lib/__tests__/consistentDependencies.spec.js +30 -23
  10. package/lib/__tests__/consistentDependencies.spec.js.map +1 -1
  11. package/lib/__tests__/consistentVersions.spec.d.ts +8 -0
  12. package/lib/__tests__/consistentVersions.spec.d.ts.map +1 -0
  13. package/lib/__tests__/consistentVersions.spec.js +183 -0
  14. package/lib/__tests__/consistentVersions.spec.js.map +1 -0
  15. package/lib/__tests__/fileContents.spec.d.ts +8 -0
  16. package/lib/__tests__/fileContents.spec.d.ts.map +1 -0
  17. package/lib/__tests__/fileContents.spec.js +59 -0
  18. package/lib/__tests__/fileContents.spec.js.map +1 -0
  19. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts +8 -0
  20. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +1 -0
  21. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +1063 -0
  22. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +1 -0
  23. package/lib/__tests__/nestedWorkspaces.spec.d.ts +2 -0
  24. package/lib/__tests__/nestedWorkspaces.spec.d.ts.map +1 -0
  25. package/lib/__tests__/nestedWorkspaces.spec.js +124 -0
  26. package/lib/__tests__/nestedWorkspaces.spec.js.map +1 -0
  27. package/lib/__tests__/packageEntry.spec.js +72 -27
  28. package/lib/__tests__/packageEntry.spec.js.map +1 -1
  29. package/lib/__tests__/packageOrder.spec.js +34 -33
  30. package/lib/__tests__/packageOrder.spec.js.map +1 -1
  31. package/lib/__tests__/packageScript.spec.js +50 -51
  32. package/lib/__tests__/packageScript.spec.js.map +1 -1
  33. package/lib/__tests__/requireDependency.spec.d.ts +2 -0
  34. package/lib/__tests__/requireDependency.spec.d.ts.map +1 -0
  35. package/lib/__tests__/requireDependency.spec.js +123 -0
  36. package/lib/__tests__/requireDependency.spec.js.map +1 -0
  37. package/lib/__tests__/utils.d.ts +69 -1
  38. package/lib/__tests__/utils.d.ts.map +1 -1
  39. package/lib/__tests__/utils.js +72 -12
  40. package/lib/__tests__/utils.js.map +1 -1
  41. package/lib/alphabeticalDependencies.d.ts +3 -1
  42. package/lib/alphabeticalDependencies.d.ts.map +1 -1
  43. package/lib/alphabeticalDependencies.js +5 -39
  44. package/lib/alphabeticalDependencies.js.map +1 -1
  45. package/lib/alphabeticalScripts.d.ts +12 -0
  46. package/lib/alphabeticalScripts.d.ts.map +1 -0
  47. package/lib/alphabeticalScripts.js +20 -0
  48. package/lib/alphabeticalScripts.js.map +1 -0
  49. package/lib/bannedDependencies.d.ts +23 -5
  50. package/lib/bannedDependencies.d.ts.map +1 -1
  51. package/lib/bannedDependencies.js +110 -36
  52. package/lib/bannedDependencies.js.map +1 -1
  53. package/lib/consistentDependencies.d.ts +8 -1
  54. package/lib/consistentDependencies.d.ts.map +1 -1
  55. package/lib/consistentDependencies.js +30 -12
  56. package/lib/consistentDependencies.js.map +1 -1
  57. package/lib/consistentVersions.d.ts +14 -0
  58. package/lib/consistentVersions.d.ts.map +1 -0
  59. package/lib/consistentVersions.js +94 -0
  60. package/lib/consistentVersions.js.map +1 -0
  61. package/lib/fileContents.d.ts +8 -8
  62. package/lib/fileContents.d.ts.map +1 -1
  63. package/lib/fileContents.js +32 -27
  64. package/lib/fileContents.js.map +1 -1
  65. package/lib/index.d.ts +5 -0
  66. package/lib/index.d.ts.map +1 -1
  67. package/lib/index.js +19 -8
  68. package/lib/index.js.map +1 -1
  69. package/lib/mustSatisfyPeerDependencies.d.ts +240 -0
  70. package/lib/mustSatisfyPeerDependencies.d.ts.map +1 -0
  71. package/lib/mustSatisfyPeerDependencies.js +636 -0
  72. package/lib/mustSatisfyPeerDependencies.js.map +1 -0
  73. package/lib/nestedWorkspaces.d.ts +13 -0
  74. package/lib/nestedWorkspaces.d.ts.map +1 -0
  75. package/lib/nestedWorkspaces.js +50 -0
  76. package/lib/nestedWorkspaces.js.map +1 -0
  77. package/lib/packageEntry.d.ts +15 -6
  78. package/lib/packageEntry.d.ts.map +1 -1
  79. package/lib/packageEntry.js +53 -18
  80. package/lib/packageEntry.js.map +1 -1
  81. package/lib/packageOrder.d.ts +3 -3
  82. package/lib/packageOrder.d.ts.map +1 -1
  83. package/lib/packageOrder.js +8 -7
  84. package/lib/packageOrder.js.map +1 -1
  85. package/lib/packageScript.d.ts +10 -10
  86. package/lib/packageScript.js +6 -5
  87. package/lib/packageScript.js.map +1 -1
  88. package/lib/requireDependency.d.ts +15 -0
  89. package/lib/requireDependency.d.ts.map +1 -0
  90. package/lib/requireDependency.js +65 -0
  91. package/lib/requireDependency.js.map +1 -0
  92. package/lib/standardTsconfig.d.ts +20 -8
  93. package/lib/standardTsconfig.d.ts.map +1 -1
  94. package/lib/standardTsconfig.js +36 -18
  95. package/lib/standardTsconfig.js.map +1 -1
  96. package/lib/util/checkAlpha.d.ts +10 -0
  97. package/lib/util/checkAlpha.d.ts.map +1 -0
  98. package/lib/util/checkAlpha.js +51 -0
  99. package/lib/util/checkAlpha.js.map +1 -0
  100. package/lib/util/makeDirectory.d.ts +8 -0
  101. package/lib/util/makeDirectory.d.ts.map +1 -0
  102. package/lib/util/makeDirectory.js +28 -0
  103. package/lib/util/makeDirectory.js.map +1 -0
  104. package/lib/util/packageDependencyGraphService.d.ts +37 -0
  105. package/lib/util/packageDependencyGraphService.d.ts.map +1 -0
  106. package/lib/util/packageDependencyGraphService.js +70 -0
  107. package/lib/util/packageDependencyGraphService.js.map +1 -0
  108. package/package.json +18 -15
  109. package/src/__tests__/alphabeticalScripts.spec.ts +75 -0
  110. package/src/__tests__/bannedDependencies.spec.ts +191 -0
  111. package/src/__tests__/consistentDependencies.spec.ts +39 -26
  112. package/src/__tests__/consistentVersions.spec.ts +223 -0
  113. package/src/__tests__/fileContents.spec.ts +74 -0
  114. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +1188 -0
  115. package/src/__tests__/nestedWorkspaces.spec.ts +152 -0
  116. package/src/__tests__/packageEntry.spec.ts +98 -31
  117. package/src/__tests__/packageOrder.spec.ts +46 -40
  118. package/src/__tests__/packageScript.spec.ts +62 -54
  119. package/src/__tests__/requireDependency.spec.ts +151 -0
  120. package/src/__tests__/utils.ts +113 -11
  121. package/src/alphabeticalDependencies.ts +3 -47
  122. package/src/alphabeticalScripts.ts +19 -0
  123. package/src/bannedDependencies.ts +133 -43
  124. package/src/consistentDependencies.ts +34 -12
  125. package/src/consistentVersions.ts +140 -0
  126. package/src/fileContents.ts +31 -27
  127. package/src/index.ts +5 -0
  128. package/src/mustSatisfyPeerDependencies.ts +739 -0
  129. package/src/nestedWorkspaces.ts +59 -0
  130. package/src/packageEntry.ts +67 -24
  131. package/src/packageOrder.ts +6 -6
  132. package/src/packageScript.ts +3 -3
  133. package/src/requireDependency.ts +69 -0
  134. package/src/standardTsconfig.ts +40 -18
  135. package/src/util/checkAlpha.ts +59 -0
  136. package/src/util/makeDirectory.ts +24 -0
  137. package/src/util/packageDependencyGraphService.ts +114 -0
  138. package/tsconfig.tsbuildinfo +1 -2439
@@ -6,12 +6,8 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- // tslint:disable:no-console
10
- const utils_1 = require("./utils");
11
- // done first since this also mocks 'fs'
12
- const mockFiles = utils_1.createMockFiles();
13
- const core_1 = require("@monorepolint/core");
14
9
  const packageScript_1 = require("../packageScript");
10
+ const utils_1 = require("./utils");
15
11
  const json = (a) => JSON.stringify(a, undefined, 2) + "\n";
16
12
  const PACKAGE_WITHOUT_SCRIPTS = json({
17
13
  name: "package-without-scripts",
@@ -26,48 +22,47 @@ const PACKAGE_WITH_SCRIPTS = json({
26
22
  [SCRIPT_NAME]: SCRIPT_VALUE,
27
23
  },
28
24
  });
29
- describe("expectPackageScript", () => {
30
- afterEach(() => {
31
- mockFiles.clear();
32
- });
25
+ describe.each(utils_1.HOST_FACTORIES)("expectPackageScript ($name)", (hostFactory) => {
33
26
  describe("fix: false", () => {
34
- const context = new core_1.PackageContext(".", {
35
- rules: [],
36
- fix: false,
37
- verbose: false,
38
- silent: true,
39
- });
40
- const spy = jest.spyOn(context, "addError");
41
- afterEach(() => {
42
- spy.mockClear();
27
+ let workspace;
28
+ let spy;
29
+ beforeEach(async () => {
30
+ workspace = await (0, utils_1.createTestingWorkspace)({
31
+ fixFlag: false,
32
+ host: hostFactory.make(),
33
+ });
34
+ spy = jest.spyOn(workspace.context, "addError");
43
35
  });
44
36
  it("handles an empty script section", () => {
45
- mockFiles.set("package.json", PACKAGE_WITHOUT_SCRIPTS);
46
- packageScript_1.packageScript.check(context, {
37
+ workspace.writeFile("package.json", PACKAGE_WITHOUT_SCRIPTS);
38
+ packageScript_1.packageScript.check(workspace.context, {
47
39
  scripts: {
48
40
  foo: "bar",
49
41
  },
50
42
  });
51
43
  expect(spy).toHaveBeenCalledTimes(1);
52
44
  const failure = spy.mock.calls[0][0];
53
- expect(failure.file).toBe("package.json");
54
- expect(failure.fixer).not.toBeUndefined();
55
- expect(failure.message).toBe("No scripts block in package.json");
45
+ expect(failure).toMatchObject(workspace.failureMatcher({
46
+ file: "package.json",
47
+ hasFixer: true,
48
+ message: "No scripts block in package.json",
49
+ }));
56
50
  });
57
51
  });
58
52
  describe("fix: true", () => {
59
- const context = new core_1.PackageContext(".", {
60
- rules: [],
61
- fix: true,
62
- verbose: false,
63
- silent: true,
64
- });
65
- const spy = jest.spyOn(context, "addError");
66
- afterEach(() => {
67
- spy.mockClear();
53
+ let workspace;
54
+ let spy;
55
+ let context;
56
+ beforeEach(async () => {
57
+ workspace = await (0, utils_1.createTestingWorkspace)({
58
+ fixFlag: true,
59
+ host: hostFactory.make(),
60
+ });
61
+ spy = jest.spyOn(workspace.context, "addError");
62
+ context = workspace.context; // minimizing delta
68
63
  });
69
64
  it("fixes an empty script section", () => {
70
- mockFiles.set("package.json", PACKAGE_WITHOUT_SCRIPTS);
65
+ workspace.writeFile("package.json", PACKAGE_WITHOUT_SCRIPTS);
71
66
  packageScript_1.packageScript.check(context, {
72
67
  scripts: {
73
68
  foo: "bar",
@@ -75,13 +70,15 @@ describe("expectPackageScript", () => {
75
70
  });
76
71
  expect(spy).toHaveBeenCalledTimes(1);
77
72
  const failure = spy.mock.calls[0][0];
78
- expect(failure.file).toBe("package.json");
79
- expect(failure.fixer).not.toBeUndefined();
80
- expect(failure.message).toBe("No scripts block in package.json");
81
- expect(JSON.parse(mockFiles.get("package.json")).scripts).toEqual({});
73
+ expect(failure).toMatchObject(workspace.failureMatcher({
74
+ file: "package.json",
75
+ hasFixer: true,
76
+ message: "No scripts block in package.json",
77
+ }));
78
+ expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({});
82
79
  });
83
80
  it("adds a script", () => {
84
- mockFiles.set("package.json", PACKAGE_WITH_SCRIPTS);
81
+ workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
85
82
  packageScript_1.packageScript.check(context, {
86
83
  scripts: {
87
84
  [MISSING_SCRIPT_NAME]: MISSING_SCRIPT_VALUE,
@@ -89,25 +86,27 @@ describe("expectPackageScript", () => {
89
86
  });
90
87
  expect(spy).toHaveBeenCalledTimes(1);
91
88
  const failure = spy.mock.calls[0][0];
92
- expect(failure.file).toBe("package.json");
93
- expect(failure.fixer).not.toBeUndefined();
94
- expect(failure.message).toMatch(`Expected standardized script entry for '${MISSING_SCRIPT_NAME}'`);
95
- expect(JSON.parse(mockFiles.get("package.json")).scripts[MISSING_SCRIPT_NAME]).toEqual(MISSING_SCRIPT_VALUE);
89
+ expect(failure).toMatchObject(workspace.failureMatcher({
90
+ file: "package.json",
91
+ hasFixer: true,
92
+ message: expect.stringContaining(`Expected standardized script entry for '${MISSING_SCRIPT_NAME}'`),
93
+ }));
94
+ expect(JSON.parse(workspace.readFile("package.json")).scripts[MISSING_SCRIPT_NAME]).toEqual(MISSING_SCRIPT_VALUE);
96
95
  });
97
96
  it("does nothing if the value exists", () => {
98
- mockFiles.set("package.json", PACKAGE_WITH_SCRIPTS);
97
+ workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
99
98
  packageScript_1.packageScript.check(context, {
100
99
  scripts: {
101
100
  [SCRIPT_NAME]: SCRIPT_VALUE,
102
101
  },
103
102
  });
104
103
  expect(spy).not.toHaveBeenCalled();
105
- expect(JSON.parse(mockFiles.get("package.json")).scripts).toEqual({
104
+ expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({
106
105
  [SCRIPT_NAME]: SCRIPT_VALUE,
107
106
  });
108
107
  });
109
108
  it("errors if long form is used and no value matches and there is no fixValue", () => {
110
- mockFiles.set("package.json", PACKAGE_WITH_SCRIPTS);
109
+ workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
111
110
  packageScript_1.packageScript.check(context, {
112
111
  scripts: {
113
112
  foo: {
@@ -120,7 +119,7 @@ describe("expectPackageScript", () => {
120
119
  expect(errors[0][0].fixer).toBeUndefined();
121
120
  });
122
121
  it("uses the fixValue for fixing if provided", () => {
123
- mockFiles.set("package.json", PACKAGE_WITH_SCRIPTS);
122
+ workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
124
123
  packageScript_1.packageScript.check(context, {
125
124
  scripts: {
126
125
  foo: {
@@ -132,13 +131,13 @@ describe("expectPackageScript", () => {
132
131
  const errors = spy.mock.calls;
133
132
  expect(errors.length).toBe(1);
134
133
  expect(errors[0][0].fixer).toBeDefined();
135
- expect(JSON.parse(mockFiles.get("package.json")).scripts).toEqual({
134
+ expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({
136
135
  [SCRIPT_NAME]: SCRIPT_VALUE,
137
136
  foo: "a",
138
137
  });
139
138
  });
140
139
  it("can fix to empty", () => {
141
- mockFiles.set("package.json", PACKAGE_WITH_SCRIPTS);
140
+ workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
142
141
  packageScript_1.packageScript.check(context, {
143
142
  scripts: {
144
143
  [SCRIPT_NAME]: {
@@ -150,10 +149,10 @@ describe("expectPackageScript", () => {
150
149
  const errors = spy.mock.calls;
151
150
  expect(errors.length).toBe(1);
152
151
  expect(errors[0][0].fixer).toBeDefined();
153
- expect(JSON.parse(mockFiles.get("package.json")).scripts).toEqual({});
152
+ expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({});
154
153
  });
155
154
  it("can allow only empty", () => {
156
- mockFiles.set("package.json", PACKAGE_WITH_SCRIPTS);
155
+ workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
157
156
  packageScript_1.packageScript.check(context, {
158
157
  scripts: {
159
158
  [SCRIPT_NAME]: {
@@ -165,7 +164,7 @@ describe("expectPackageScript", () => {
165
164
  const errors = spy.mock.calls;
166
165
  expect(errors.length).toBe(1);
167
166
  expect(errors[0][0].fixer).toBeDefined();
168
- expect(JSON.parse(mockFiles.get("package.json")).scripts).toEqual({});
167
+ expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({});
169
168
  });
170
169
  });
171
170
  });
@@ -1 +1 @@
1
- {"version":3,"file":"packageScript.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageScript.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packageScript.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageScript.spec.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAKH,oDAAiD;AACjD,mCAAgG;AAEhG,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAEpE,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACnC,IAAI,EAAE,yBAAyB;CAChC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAE7C,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,MAAM,oBAAoB,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE;QACP,CAAC,WAAW,CAAC,EAAE,YAAY;KAC5B;CACF,CAAC,CAAC;AAEH,QAAQ,CAAC,IAAI,CAAC,sBAAc,CAAC,CAAC,6BAA6B,EAAE,CAAC,WAAW,EAAE,EAAE;IAC3E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAI,SAA2B,CAAC;QAChC,IAAI,GAAgB,CAAC;QAErB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,SAAS,GAAG,MAAM,IAAA,8BAAsB,EAAC;gBACvC,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;aACzB,CAAC,CAAC;YAEH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;YAE7D,6BAAa,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE;gBACrC,OAAO,EAAE;oBACP,GAAG,EAAE,KAAK;iBACX;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,OAAO,GAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAC3B,SAAS,CAAC,cAAc,CAAC;gBACvB,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,kCAAkC;aAC5C,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,IAAI,SAA2B,CAAC;QAChC,IAAI,GAAgB,CAAC;QACrB,IAAI,OAAgB,CAAC;QAErB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,SAAS,GAAG,MAAM,IAAA,8BAAsB,EAAC;gBACvC,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;aACzB,CAAC,CAAC;YAEH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,mBAAmB;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;YAE7D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,GAAG,EAAE,KAAK;iBACX;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,OAAO,GAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAC3B,SAAS,CAAC,cAAc,CAAC;gBACvB,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,kCAAkC;aAC5C,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAE1D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,CAAC,mBAAmB,CAAC,EAAE,oBAAoB;iBAC5C;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,OAAO,GAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAC3B,SAAS,CAAC,cAAc,CAAC;gBACvB,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,2CAA2C,mBAAmB,GAAG,CAAC;aACpG,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAC1F,oBAAoB,CACrB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAE1D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,CAAC,WAAW,CAAC,EAAE,YAAY;iBAC5B;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAEnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBACtE,CAAC,WAAW,CAAC,EAAE,YAAY;aAC5B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAE1D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,GAAG,EAAE;wBACH,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;qBACpB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAE1D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,GAAG,EAAE;wBACH,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;wBACnB,QAAQ,EAAE,GAAG;qBACd;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;gBACtE,CAAC,WAAW,CAAC,EAAE,YAAY;gBAC3B,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAE1D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,CAAC,WAAW,CAAC,EAAE;wBACb,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC;wBACzB,QAAQ,EAAE,SAAS;qBACpB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAE1D,6BAAa,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC3B,OAAO,EAAE;oBACP,CAAC,WAAW,CAAC,EAAE;wBACb,OAAO,EAAE,CAAC,SAAS,CAAC;wBACpB,QAAQ,EAAE,SAAS;qBACpB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=requireDependency.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireDependency.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/requireDependency.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /*!
5
+ * Copyright 2019 Palantir Technologies, Inc.
6
+ *
7
+ * Licensed under the MIT license. See LICENSE file in the project root for details.
8
+ *
9
+ */
10
+ const core_1 = require("@monorepolint/core");
11
+ const utils_1 = require("@monorepolint/utils");
12
+ const fs_1 = require("fs");
13
+ const path = tslib_1.__importStar(require("path"));
14
+ const tmp = tslib_1.__importStar(require("tmp"));
15
+ const requireDependency_1 = require("../requireDependency");
16
+ const makeDirectory_1 = require("../util/makeDirectory");
17
+ const utils_2 = require("./utils");
18
+ const PACKAGE_ROOT = (0, utils_2.jsonToString)({
19
+ workspaces: {
20
+ packages: ["packages/*"],
21
+ },
22
+ dependencies: {
23
+ foo: "5",
24
+ },
25
+ });
26
+ const PACKAGE_WITH_NO_ENTRIES = (0, utils_2.jsonToString)({});
27
+ const PACKAGE_WITH_ENTRIES_MISSING = (0, utils_2.jsonToString)({
28
+ dependencies: {},
29
+ devDependencies: {},
30
+ });
31
+ const PACKAGE_WITH_WRONG_ENTRIES = (0, utils_2.jsonToString)({
32
+ dependencies: {
33
+ foo: "0.1.0",
34
+ },
35
+ devDependencies: {
36
+ bar: "1.0.0",
37
+ },
38
+ });
39
+ const PACKAGE_WITH_RIGHT_ENTRIES = (0, utils_2.jsonToString)({
40
+ dependencies: {
41
+ foo: "1.0.0",
42
+ },
43
+ devDependencies: {
44
+ bar: "^2.0.0",
45
+ },
46
+ });
47
+ const OPTIONS = {
48
+ dependencies: {
49
+ foo: "1.0.0",
50
+ },
51
+ devDependencies: {
52
+ bar: "^2.0.0",
53
+ },
54
+ };
55
+ const CORRECT_OUTPUT = (0, utils_2.jsonToString)(OPTIONS);
56
+ describe("requireDependency", () => {
57
+ tmp.setGracefulCleanup();
58
+ let cleanupJobs = [];
59
+ afterEach(() => {
60
+ for (const cleanupJob of cleanupJobs) {
61
+ cleanupJob();
62
+ }
63
+ cleanupJobs = [];
64
+ });
65
+ function makeWorkspace({ fix }) {
66
+ const dir = tmp.dirSync({ unsafeCleanup: true });
67
+ cleanupJobs.push(() => dir.removeCallback());
68
+ const workspaceContext = new core_1.WorkspaceContext(dir.name, {
69
+ rules: [],
70
+ fix,
71
+ verbose: false,
72
+ silent: true,
73
+ }, new utils_1.SimpleHost());
74
+ function checkAndSpy(q) {
75
+ const context = workspaceContext.createChildContext(path.resolve(dir.name, q));
76
+ const addErrorSpy = jest.spyOn(context, "addError");
77
+ requireDependency_1.requireDependency.check(context, OPTIONS);
78
+ return { context, addErrorSpy };
79
+ }
80
+ function addFile(filePath, content) {
81
+ const dirPath = path.resolve(dir.name, path.dirname(filePath));
82
+ const resolvedFilePath = path.resolve(dir.name, filePath);
83
+ (0, makeDirectory_1.makeDirectoryRecursively)(dirPath);
84
+ (0, fs_1.writeFileSync)(resolvedFilePath, content);
85
+ }
86
+ function readFile(filePath) {
87
+ return (0, fs_1.readFileSync)(path.resolve(dir.name, filePath)).toString();
88
+ }
89
+ return { addFile, readFile, workspaceContext, checkAndSpy };
90
+ }
91
+ it("checks correctly", () => {
92
+ const { addFile, workspaceContext, checkAndSpy } = makeWorkspace({ fix: false });
93
+ addFile("./package.json", PACKAGE_ROOT);
94
+ addFile("./packages/none/package.json", PACKAGE_WITH_NO_ENTRIES);
95
+ addFile("./packages/missing/package.json", PACKAGE_WITH_ENTRIES_MISSING);
96
+ addFile("./packages/wrong/package.json", PACKAGE_WITH_WRONG_ENTRIES);
97
+ addFile("./packages/right/package.json", PACKAGE_WITH_RIGHT_ENTRIES);
98
+ requireDependency_1.requireDependency.check(workspaceContext, OPTIONS);
99
+ const none = checkAndSpy("./packages/none");
100
+ expect(none.addErrorSpy).toHaveBeenCalledTimes(2);
101
+ const missing = checkAndSpy("./packages/missing");
102
+ expect(missing.addErrorSpy).toHaveBeenCalledTimes(2);
103
+ const wrong = checkAndSpy("./packages/wrong");
104
+ expect(wrong.addErrorSpy).toHaveBeenCalledTimes(2);
105
+ const right = checkAndSpy("./packages/right");
106
+ expect(right.addErrorSpy).toHaveBeenCalledTimes(0);
107
+ });
108
+ it("fixes correctly", () => {
109
+ const { addFile, readFile, checkAndSpy } = makeWorkspace({ fix: true });
110
+ addFile("./package.json", PACKAGE_ROOT);
111
+ addFile("./packages/missing/package.json", PACKAGE_WITH_ENTRIES_MISSING);
112
+ addFile("./packages/wrong/package.json", PACKAGE_WITH_WRONG_ENTRIES);
113
+ const missing = checkAndSpy("./packages/missing");
114
+ expect(missing.addErrorSpy).toHaveBeenCalledTimes(2);
115
+ const wrong = checkAndSpy("./packages/wrong");
116
+ expect(wrong.addErrorSpy).toHaveBeenCalledTimes(2);
117
+ const missingContents = readFile("./packages/missing/package.json");
118
+ expect(missingContents).toEqual(CORRECT_OUTPUT);
119
+ const contents = readFile("./packages/wrong/package.json");
120
+ expect(contents).toEqual(CORRECT_OUTPUT);
121
+ });
122
+ });
123
+ //# sourceMappingURL=requireDependency.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireDependency.spec.js","sourceRoot":"","sources":["../../src/__tests__/requireDependency.spec.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,73 @@
4
4
  * Licensed under the MIT license. See LICENSE file in the project root for details.
5
5
  *
6
6
  */
7
- export declare function createMockFiles(): Map<string, string>;
7
+ /// <reference types="jest" />
8
+ import { AddErrorOptions, WorkspaceContext } from "@monorepolint/core";
9
+ import { Host } from "@monorepolint/utils";
10
+ export declare function jsonToString(obj: {}): string;
11
+ interface TestingWorkspaceOpts {
12
+ host: Host;
13
+ rootProjectName?: string;
14
+ fixFlag: boolean;
15
+ }
16
+ export declare function createTestingWorkspace(inboundOpts: TestingWorkspaceOpts): Promise<DefaultTestingWorkspace>;
17
+ interface RealTestingWorkspaceOpts extends Required<TestingWorkspaceOpts> {
18
+ rootPath: string;
19
+ }
20
+ export interface TestingWorkspace {
21
+ /**
22
+ * Adds a utf8 file to `packageName` with `relativePath` to the package directory.
23
+ *
24
+ * @param packageName The child package to add to or undefined for root package
25
+ * @param filePath The path of the file to be written. Will be prepended with package dir
26
+ * @param contents the contents to be written (as utf8)
27
+ */
28
+ writeFile(filePath: string, contents: string): void;
29
+ writeJsonFile(filePath: string, json: object): void;
30
+ addProject(name: string, fields: object): void;
31
+ getFilePath(filePath: string): string;
32
+ readFile(filePath: string): string;
33
+ /**
34
+ * Helper method for matching failures via jest `expect().toMatchObject
35
+ *
36
+ */
37
+ failureMatcher(opts: {
38
+ file: string;
39
+ message: string;
40
+ hasFixer: boolean;
41
+ }): any;
42
+ readonly context: WorkspaceContext;
43
+ }
44
+ declare class DefaultTestingWorkspace implements TestingWorkspace {
45
+ private opts;
46
+ readonly context: WorkspaceContext;
47
+ constructor(opts: RealTestingWorkspaceOpts, context: WorkspaceContext);
48
+ addProject(name: string, fields: object): void;
49
+ writeJsonFile(filePath: string, json: object): void;
50
+ /**
51
+ * Adds a utf8 file to `packageName` with `relativePath` to the package directory.
52
+ *
53
+ * @param packageName The child package to add to or undefined for root package
54
+ * @param filePath The path of the file to be written. Will be prepended with package dir
55
+ * @param contents the contents to be written (as utf8)
56
+ */
57
+ writeFile(filePath: string, contents: string): void;
58
+ getFilePath(filePath: string): string;
59
+ readFile(filePath: string): string;
60
+ failureMatcher(opts: {
61
+ file: string;
62
+ message: string;
63
+ hasFixer: boolean;
64
+ }): {
65
+ fixer?: any;
66
+ file: string;
67
+ message: string;
68
+ };
69
+ }
70
+ export declare type AddErrorSpy = jest.SpyInstance<void, [AddErrorOptions]>;
71
+ export declare const HOST_FACTORIES: Array<{
72
+ name: string;
73
+ make: () => Host;
74
+ }>;
75
+ export {};
8
76
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,eAAe,wBAe9B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAe,IAAI,EAAc,MAAM,qBAAqB,CAAC;AAIpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,EAAE,UAEnC;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,oBAAoB,oCAuB7E;AAED,UAAU,wBAAyB,SAAQ,QAAQ,CAAC,oBAAoB,CAAC;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,GAAG,CAAC;IAEhF,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AAED,cAAM,uBAAwB,YAAW,gBAAgB;IAC3C,OAAO,CAAC,IAAI;aAA4C,OAAO,EAAE,gBAAgB;gBAAzE,IAAI,EAAE,wBAAwB,EAAkB,OAAO,EAAE,gBAAgB;IAE7F,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOvC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI5C;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM5C,WAAW,CAAC,QAAQ,EAAE,MAAM;IAI5B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAIzB,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;;;;;CAO1E;AAED,oBAAY,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAEpE,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAGpE,CAAC"}
@@ -6,18 +6,78 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- function createMockFiles() {
10
- const mockFiles = new Map();
11
- jest.mock("fs", () => ({
12
- writeFileSync: function writeFileSync(filePath, contents) {
13
- mockFiles.set(filePath, contents);
14
- },
15
- // tslint:disable-next-line: variable-name
16
- readFileSync: function readFileSync(filePath, _contentType) {
17
- return mockFiles.get(filePath);
9
+ exports.HOST_FACTORIES = exports.createTestingWorkspace = exports.jsonToString = void 0;
10
+ const tslib_1 = require("tslib");
11
+ const core_1 = require("@monorepolint/core");
12
+ const utils_1 = require("@monorepolint/utils");
13
+ const path = tslib_1.__importStar(require("path"));
14
+ const tmp = tslib_1.__importStar(require("tmp"));
15
+ function jsonToString(obj) {
16
+ return JSON.stringify(obj, undefined, 2) + "\n";
17
+ }
18
+ exports.jsonToString = jsonToString;
19
+ async function createTestingWorkspace(inboundOpts) {
20
+ var _a;
21
+ tmp.setGracefulCleanup();
22
+ const tmpdir = tmp.dirSync();
23
+ const opts = {
24
+ ...inboundOpts,
25
+ rootProjectName: (_a = inboundOpts.rootProjectName) !== null && _a !== void 0 ? _a : "rootProject",
26
+ };
27
+ const rootPath = tmpdir.name;
28
+ opts.host.mkdir(rootPath, { recursive: true });
29
+ opts.host.writeJson(path.join(rootPath, "package.json"), {
30
+ name: opts.rootProjectName,
31
+ workspaces: {
32
+ packages: ["packages/*"],
18
33
  },
19
- }));
20
- return mockFiles;
34
+ });
35
+ await opts.host.flush();
36
+ return new DefaultTestingWorkspace({ ...opts, rootPath }, new core_1.WorkspaceContext(rootPath, { fix: opts.fixFlag, rules: [] }, opts.host));
37
+ }
38
+ exports.createTestingWorkspace = createTestingWorkspace;
39
+ class DefaultTestingWorkspace {
40
+ constructor(opts, context) {
41
+ this.opts = opts;
42
+ this.context = context;
43
+ }
44
+ addProject(name, fields) {
45
+ this.writeJsonFile(path.join("packages", name, "package.json"), {
46
+ name,
47
+ ...fields,
48
+ });
49
+ }
50
+ writeJsonFile(filePath, json) {
51
+ this.writeFile(filePath, JSON.stringify(json, undefined, 2));
52
+ }
53
+ /**
54
+ * Adds a utf8 file to `packageName` with `relativePath` to the package directory.
55
+ *
56
+ * @param packageName The child package to add to or undefined for root package
57
+ * @param filePath The path of the file to be written. Will be prepended with package dir
58
+ * @param contents the contents to be written (as utf8)
59
+ */
60
+ writeFile(filePath, contents) {
61
+ const fullFilePath = this.getFilePath(filePath);
62
+ this.opts.host.mkdir(path.dirname(fullFilePath), { recursive: true });
63
+ this.opts.host.writeFile(fullFilePath, contents, { encoding: "utf-8" });
64
+ }
65
+ getFilePath(filePath) {
66
+ return path.join(this.opts.rootPath, filePath);
67
+ }
68
+ readFile(filePath) {
69
+ return this.opts.host.readFile(this.getFilePath(filePath), { encoding: "utf-8" });
70
+ }
71
+ failureMatcher(opts) {
72
+ return {
73
+ file: this.getFilePath(opts.file),
74
+ message: opts.message,
75
+ ...(opts.hasFixer ? { fixer: expect.any(Function) } : {}),
76
+ };
77
+ }
21
78
  }
22
- exports.createMockFiles = createMockFiles;
79
+ exports.HOST_FACTORIES = [
80
+ { name: "SimpleHost", make: () => new utils_1.SimpleHost() },
81
+ { name: "CachingHost", make: () => new utils_1.CachingHost() },
82
+ ];
23
83
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,SAAgB,eAAe;IAC7B,MAAM,SAAS,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACrB,aAAa,EAAE,SAAS,aAAa,CAAC,QAAgB,EAAE,QAAgB;YACtE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,0CAA0C;QAC1C,YAAY,EAAE,SAAS,YAAY,CAAC,QAAgB,EAAE,YAAoB;YACxE,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,OAAO,SAAS,CAAC;AACnB,CAAC;AAfD,0CAeC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,6CAAuE;AACvE,+CAAoE;AACpE,mDAA6B;AAC7B,iDAA2B;AAE3B,SAAgB,YAAY,CAAC,GAAO;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAFD,oCAEC;AAQM,KAAK,UAAU,sBAAsB,CAAC,WAAiC;;IAC5E,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG;QACX,GAAG,WAAW;QACd,eAAe,EAAE,MAAA,WAAW,CAAC,eAAe,mCAAI,aAAa;KAC9D,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;QACvD,IAAI,EAAE,IAAI,CAAC,eAAe;QAC1B,UAAU,EAAE;YACV,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAExB,OAAO,IAAI,uBAAuB,CAChC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EACrB,IAAI,uBAAgB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAC5E,CAAC;AACJ,CAAC;AAvBD,wDAuBC;AA8BD,MAAM,uBAAuB;IAC3B,YAAoB,IAA8B,EAAkB,OAAyB;QAAzE,SAAI,GAAJ,IAAI,CAA0B;QAAkB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEjG,UAAU,CAAC,IAAY,EAAE,MAAc;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;YAC9D,IAAI;YACJ,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAAgB,EAAE,IAAY;QAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,QAAgB,EAAE,QAAgB;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,cAAc,CAAC,IAA0D;QACvE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF;AAIY,QAAA,cAAc,GAA8C;IACvE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAU,EAAE,EAAE;IACpD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAW,EAAE,EAAE;CACvD,CAAC"}
@@ -6,5 +6,7 @@
6
6
  */
7
7
  import { RuleModule } from "@monorepolint/core";
8
8
  import * as r from "runtypes";
9
- export declare const alphabeticalDependencies: RuleModule<r.Literal<undefined>>;
9
+ declare const Options: r.Literal<undefined>;
10
+ export declare const alphabeticalDependencies: RuleModule<typeof Options>;
11
+ export {};
10
12
  //# sourceMappingURL=alphabeticalDependencies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alphabeticalDependencies.d.ts","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,eAAO,MAAM,wBAAwB,kCAON,CAAC"}
1
+ {"version":3,"file":"alphabeticalDependencies.d.ts","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,OAAO,sBAAc,CAAC;AAE5B,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,OAAO,OAAO,CAO/D,CAAC"}
@@ -6,51 +6,17 @@
6
6
  *
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.alphabeticalDependencies = void 0;
9
10
  const tslib_1 = require("tslib");
10
- const utils_1 = require("@monorepolint/utils");
11
- const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
12
11
  const r = tslib_1.__importStar(require("runtypes"));
12
+ const checkAlpha_1 = require("./util/checkAlpha");
13
13
  const Options = r.Undefined;
14
14
  exports.alphabeticalDependencies = {
15
15
  check: function expectAlphabeticalDependencies(context) {
16
- checkAlpha(context, "dependencies");
17
- checkAlpha(context, "devDependencies");
18
- checkAlpha(context, "peerDependencies");
16
+ (0, checkAlpha_1.checkAlpha)(context, "dependencies");
17
+ (0, checkAlpha_1.checkAlpha)(context, "devDependencies");
18
+ (0, checkAlpha_1.checkAlpha)(context, "peerDependencies");
19
19
  },
20
20
  optionsRuntype: Options,
21
21
  };
22
- function checkAlpha(context, block) {
23
- const packageJson = context.getPackageJson();
24
- const packagePath = context.getPackageJsonPath();
25
- const dependencies = packageJson[block];
26
- if (dependencies === undefined) {
27
- return;
28
- }
29
- const actualOrder = Object.keys(dependencies);
30
- const expectedOrder = actualOrder.slice().sort(); // sort mutates, so we need to copy the previous result
31
- if (!arrayOrderCompare(actualOrder, expectedOrder)) {
32
- context.addError({
33
- file: packagePath,
34
- message: `Incorrect order of ${block} in package.json`,
35
- longMessage: jest_diff_1.default(expectedOrder, actualOrder, { expand: true }),
36
- fixer: () => {
37
- const expectedDependencies = {};
38
- expectedOrder.forEach(dep => {
39
- expectedDependencies[dep] = dependencies[dep];
40
- });
41
- const newPackageJson = { ...packageJson };
42
- newPackageJson[block] = expectedDependencies;
43
- utils_1.writeJson(packagePath, newPackageJson);
44
- },
45
- });
46
- }
47
- }
48
- function arrayOrderCompare(a, b) {
49
- for (let index = 0; index < a.length; index++) {
50
- if (a[index] !== b[index]) {
51
- return false;
52
- }
53
- }
54
- return true;
55
- }
56
22
  //# sourceMappingURL=alphabeticalDependencies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alphabeticalDependencies.js","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,+CAAgD;AAChD,kEAA6B;AAC7B,oDAA8B;AAE9B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,wBAAwB,GAAG;IACtC,KAAK,EAAE,SAAS,8BAA8B,CAAC,OAAgB;QAC7D,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACpC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,EAAE,OAAO;CACM,CAAC;AAEhC,SAAS,UAAU,CAAC,OAAgB,EAAE,KAA8D;IAClG,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAEjD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO;KACR;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,uDAAuD;IAEzG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;QAClD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,sBAAsB,KAAK,kBAAkB;YACtD,WAAW,EAAE,mBAAI,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/D,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,oBAAoB,GAA2B,EAAE,CAAC;gBAExD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC1B,oBAAoB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;gBAEH,MAAM,cAAc,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC;gBAC7C,iBAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAwB,EAAE,CAAwB;IAC3E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7C,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"alphabeticalDependencies.js","sourceRoot":"","sources":["../src/alphabeticalDependencies.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,oDAA8B;AAC9B,kDAA+C;AAE/C,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAEf,QAAA,wBAAwB,GAA+B;IAClE,KAAK,EAAE,SAAS,8BAA8B,CAAC,OAAgB;QAC7D,IAAA,uBAAU,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACpC,IAAA,uBAAU,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvC,IAAA,uBAAU,EAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,EAAE,OAAO;CACxB,CAAC"}