skuba 4.4.0 → 5.0.0-beta.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.
Files changed (321) hide show
  1. package/config/tsconfig.json +1 -0
  2. package/jest/moduleNameMapper.js +50 -78
  3. package/jest/moduleNameMapper.test.ts +4 -14
  4. package/jest/transform.js +10 -1
  5. package/jest/tsConfig.js +26 -0
  6. package/lib/api/buildkite/annotate.js +46 -33
  7. package/lib/api/buildkite/annotate.js.map +7 -1
  8. package/lib/api/buildkite/index.js +31 -7
  9. package/lib/api/buildkite/index.js.map +7 -1
  10. package/lib/api/buildkite/md.js +31 -8
  11. package/lib/api/buildkite/md.js.map +7 -1
  12. package/lib/api/git/commit.js +45 -17
  13. package/lib/api/git/commit.js.map +7 -1
  14. package/lib/api/git/commitAllChanges.js +57 -27
  15. package/lib/api/git/commitAllChanges.js.map +7 -1
  16. package/lib/api/git/currentBranch.js +50 -28
  17. package/lib/api/git/currentBranch.js.map +7 -1
  18. package/lib/api/git/getChangedFiles.js +49 -27
  19. package/lib/api/git/getChangedFiles.js.map +7 -1
  20. package/lib/api/git/index.js +54 -22
  21. package/lib/api/git/index.js.map +7 -1
  22. package/lib/api/git/log.js +63 -42
  23. package/lib/api/git/log.js.map +7 -1
  24. package/lib/api/git/pull.js +62 -31
  25. package/lib/api/git/pull.js.map +7 -1
  26. package/lib/api/git/push.js +63 -31
  27. package/lib/api/git/push.js.map +7 -1
  28. package/lib/api/git/remote.js +59 -56
  29. package/lib/api/git/remote.js.map +7 -1
  30. package/lib/api/git/reset.js +55 -27
  31. package/lib/api/git/reset.js.map +7 -1
  32. package/lib/api/git/statusMatrix.js +46 -13
  33. package/lib/api/git/statusMatrix.js.map +7 -1
  34. package/lib/api/github/checkRun.js +70 -79
  35. package/lib/api/github/checkRun.js.map +7 -1
  36. package/lib/api/github/environment.js +40 -33
  37. package/lib/api/github/environment.js.map +7 -1
  38. package/lib/api/github/index.js +47 -17
  39. package/lib/api/github/index.js.map +7 -1
  40. package/lib/api/github/issueComment.js +73 -81
  41. package/lib/api/github/issueComment.js.map +7 -1
  42. package/lib/api/github/pullRequest.js +60 -61
  43. package/lib/api/github/pullRequest.js.map +7 -1
  44. package/lib/api/github/push.js +138 -133
  45. package/lib/api/github/push.js.map +7 -1
  46. package/lib/api/jest/index.d.ts +2 -1
  47. package/lib/api/jest/index.js +35 -14
  48. package/lib/api/jest/index.js.map +7 -1
  49. package/lib/api/net/compose.js +45 -17
  50. package/lib/api/net/compose.js.map +7 -1
  51. package/lib/api/net/index.js +28 -5
  52. package/lib/api/net/index.js.map +7 -1
  53. package/lib/api/net/socket.js +58 -36
  54. package/lib/api/net/socket.js.map +7 -1
  55. package/lib/api/net/waitFor.js +38 -18
  56. package/lib/api/net/waitFor.js.map +7 -1
  57. package/lib/cli/adapter/eslint.js +95 -72
  58. package/lib/cli/adapter/eslint.js.map +7 -1
  59. package/lib/cli/adapter/prettier.js +126 -124
  60. package/lib/cli/adapter/prettier.js.map +7 -1
  61. package/lib/cli/build/args.d.ts +7 -0
  62. package/lib/cli/build/args.js +69 -0
  63. package/lib/cli/build/args.js.map +7 -0
  64. package/lib/cli/build/esbuild.d.ts +5 -0
  65. package/lib/cli/build/esbuild.js +128 -0
  66. package/lib/cli/build/esbuild.js.map +7 -0
  67. package/lib/cli/build/index.d.ts +1 -1
  68. package/lib/cli/build/index.js +68 -5
  69. package/lib/cli/build/index.js.map +7 -1
  70. package/lib/cli/build/tsc.d.ts +1 -1
  71. package/lib/cli/build/tsc.js +34 -23
  72. package/lib/cli/build/tsc.js.map +7 -1
  73. package/lib/cli/buildPackage.js +53 -23
  74. package/lib/cli/buildPackage.js.map +7 -1
  75. package/lib/cli/configure/addEmptyExports.d.ts +5 -0
  76. package/lib/cli/configure/addEmptyExports.js +67 -0
  77. package/lib/cli/configure/addEmptyExports.js.map +7 -0
  78. package/lib/cli/configure/analyseConfiguration.js +61 -31
  79. package/lib/cli/configure/analyseConfiguration.js.map +7 -1
  80. package/lib/cli/configure/analyseDependencies.js +122 -113
  81. package/lib/cli/configure/analyseDependencies.js.map +7 -1
  82. package/lib/cli/configure/analysis/diff.js +37 -11
  83. package/lib/cli/configure/analysis/diff.js.map +7 -1
  84. package/lib/cli/configure/analysis/files.js +49 -22
  85. package/lib/cli/configure/analysis/files.js.map +7 -1
  86. package/lib/cli/configure/analysis/git.js +46 -16
  87. package/lib/cli/configure/analysis/git.js.map +7 -1
  88. package/lib/cli/configure/analysis/package.js +99 -52
  89. package/lib/cli/configure/analysis/package.js.map +7 -1
  90. package/lib/cli/configure/analysis/project.js +90 -54
  91. package/lib/cli/configure/analysis/project.js.map +7 -1
  92. package/lib/cli/configure/dependencies/index.js +40 -13
  93. package/lib/cli/configure/dependencies/index.js.map +7 -1
  94. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js +57 -32
  95. package/lib/cli/configure/dependencies/seekDatadogCustomMetrics.js.map +7 -1
  96. package/lib/cli/configure/dependencies/seekKoala.js +53 -31
  97. package/lib/cli/configure/dependencies/seekKoala.js.map +7 -1
  98. package/lib/cli/configure/dependencies/skuba.js +49 -27
  99. package/lib/cli/configure/dependencies/skuba.js.map +7 -1
  100. package/lib/cli/configure/dependencies/skubaDeps.js +49 -28
  101. package/lib/cli/configure/dependencies/skubaDeps.js.map +7 -1
  102. package/lib/cli/configure/dependencies/skubaDive.js +65 -38
  103. package/lib/cli/configure/dependencies/skubaDive.js.map +7 -1
  104. package/lib/cli/configure/ensureTemplateCompletion.js +69 -41
  105. package/lib/cli/configure/ensureTemplateCompletion.js.map +7 -1
  106. package/lib/cli/configure/getEntryPoint.js +62 -32
  107. package/lib/cli/configure/getEntryPoint.js.map +7 -1
  108. package/lib/cli/configure/getProjectType.js +50 -28
  109. package/lib/cli/configure/getProjectType.js.map +7 -1
  110. package/lib/cli/configure/index.js +134 -109
  111. package/lib/cli/configure/index.js.map +7 -1
  112. package/lib/cli/configure/modules/eslint.js +57 -26
  113. package/lib/cli/configure/modules/eslint.js.map +7 -1
  114. package/lib/cli/configure/modules/ignore.js +37 -14
  115. package/lib/cli/configure/modules/ignore.js.map +7 -1
  116. package/lib/cli/configure/modules/index.js +53 -28
  117. package/lib/cli/configure/modules/index.js.map +7 -1
  118. package/lib/cli/configure/modules/jest.js +84 -47
  119. package/lib/cli/configure/modules/jest.js.map +7 -1
  120. package/lib/cli/configure/modules/nodemon.js +29 -6
  121. package/lib/cli/configure/modules/nodemon.js.map +7 -1
  122. package/lib/cli/configure/modules/package.js +113 -92
  123. package/lib/cli/configure/modules/package.js.map +7 -1
  124. package/lib/cli/configure/modules/prettier.js +48 -19
  125. package/lib/cli/configure/modules/prettier.js.map +7 -1
  126. package/lib/cli/configure/modules/renovate.js +52 -39
  127. package/lib/cli/configure/modules/renovate.js.map +7 -1
  128. package/lib/cli/configure/modules/serverless.js +33 -15
  129. package/lib/cli/configure/modules/serverless.js.map +7 -1
  130. package/lib/cli/configure/modules/skubaDive.js +63 -37
  131. package/lib/cli/configure/modules/skubaDive.js.map +7 -1
  132. package/lib/cli/configure/modules/tsconfig.js +79 -63
  133. package/lib/cli/configure/modules/tsconfig.js.map +7 -1
  134. package/lib/cli/configure/modules/tslint.js +29 -6
  135. package/lib/cli/configure/modules/tslint.js.map +7 -1
  136. package/lib/cli/configure/processing/deleteFiles.js +30 -8
  137. package/lib/cli/configure/processing/deleteFiles.js.map +7 -1
  138. package/lib/cli/configure/processing/ignoreFile.js +65 -59
  139. package/lib/cli/configure/processing/ignoreFile.js.map +7 -1
  140. package/lib/cli/configure/processing/javascript.js +35 -15
  141. package/lib/cli/configure/processing/javascript.js.map +7 -1
  142. package/lib/cli/configure/processing/json.js +51 -20
  143. package/lib/cli/configure/processing/json.js.map +7 -1
  144. package/lib/cli/configure/processing/loadFiles.js +30 -8
  145. package/lib/cli/configure/processing/loadFiles.js.map +7 -1
  146. package/lib/cli/configure/processing/module.js +37 -14
  147. package/lib/cli/configure/processing/module.js.map +7 -1
  148. package/lib/cli/configure/processing/package.js +73 -43
  149. package/lib/cli/configure/processing/package.js.map +7 -1
  150. package/lib/cli/configure/processing/prettier.js +37 -11
  151. package/lib/cli/configure/processing/prettier.js.map +7 -1
  152. package/lib/cli/configure/processing/record.js +54 -31
  153. package/lib/cli/configure/processing/record.js.map +7 -1
  154. package/lib/cli/configure/processing/typescript.js +176 -158
  155. package/lib/cli/configure/processing/typescript.js.map +7 -1
  156. package/lib/cli/configure/refreshIgnoreFiles.js +64 -40
  157. package/lib/cli/configure/refreshIgnoreFiles.js.map +7 -1
  158. package/lib/cli/configure/types.js +16 -2
  159. package/lib/cli/configure/types.js.map +7 -1
  160. package/lib/cli/format.js +58 -31
  161. package/lib/cli/format.js.map +7 -1
  162. package/lib/cli/help.js +31 -8
  163. package/lib/cli/help.js.map +7 -1
  164. package/lib/cli/init/getConfig.js +238 -207
  165. package/lib/cli/init/getConfig.js.map +7 -1
  166. package/lib/cli/init/git.js +70 -63
  167. package/lib/cli/init/git.js.map +7 -1
  168. package/lib/cli/init/index.js +133 -100
  169. package/lib/cli/init/index.js.map +7 -1
  170. package/lib/cli/init/prompts.js +84 -54
  171. package/lib/cli/init/prompts.js.map +7 -1
  172. package/lib/cli/init/types.js +52 -52
  173. package/lib/cli/init/types.js.map +7 -1
  174. package/lib/cli/init/validation.js +34 -12
  175. package/lib/cli/init/validation.js.map +7 -1
  176. package/lib/cli/init/writePackageJson.js +51 -22
  177. package/lib/cli/init/writePackageJson.js.map +7 -1
  178. package/lib/cli/lint/annotate/buildkite/eslint.js +34 -28
  179. package/lib/cli/lint/annotate/buildkite/eslint.js.map +7 -1
  180. package/lib/cli/lint/annotate/buildkite/index.js +50 -44
  181. package/lib/cli/lint/annotate/buildkite/index.js.map +7 -1
  182. package/lib/cli/lint/annotate/buildkite/prettier.js +41 -35
  183. package/lib/cli/lint/annotate/buildkite/prettier.js.map +7 -1
  184. package/lib/cli/lint/annotate/buildkite/tsc.js +39 -39
  185. package/lib/cli/lint/annotate/buildkite/tsc.js.map +7 -1
  186. package/lib/cli/lint/annotate/github/eslint.js +40 -16
  187. package/lib/cli/lint/annotate/github/eslint.js.map +7 -1
  188. package/lib/cli/lint/annotate/github/index.js +55 -51
  189. package/lib/cli/lint/annotate/github/index.js.map +7 -1
  190. package/lib/cli/lint/annotate/github/prettier.js +36 -13
  191. package/lib/cli/lint/annotate/github/prettier.js.map +7 -1
  192. package/lib/cli/lint/annotate/github/tsc.js +52 -52
  193. package/lib/cli/lint/annotate/github/tsc.js.map +7 -1
  194. package/lib/cli/lint/annotate/index.js +33 -10
  195. package/lib/cli/lint/annotate/index.js.map +7 -1
  196. package/lib/cli/lint/autofix.js +122 -117
  197. package/lib/cli/lint/autofix.js.map +7 -1
  198. package/lib/cli/lint/eslint.js +48 -18
  199. package/lib/cli/lint/eslint.js.map +7 -1
  200. package/lib/cli/lint/external.js +102 -81
  201. package/lib/cli/lint/external.js.map +7 -1
  202. package/lib/cli/lint/index.js +42 -18
  203. package/lib/cli/lint/index.js.map +7 -1
  204. package/lib/cli/lint/internal.js +54 -21
  205. package/lib/cli/lint/internal.js.map +7 -1
  206. package/lib/cli/lint/prettier.js +48 -18
  207. package/lib/cli/lint/prettier.js.map +7 -1
  208. package/lib/cli/lint/tsc.js +56 -32
  209. package/lib/cli/lint/tsc.js.map +7 -1
  210. package/lib/cli/lint/types.js +16 -2
  211. package/lib/cli/lint/types.js.map +7 -1
  212. package/lib/cli/node.js +65 -58
  213. package/lib/cli/node.js.map +7 -1
  214. package/lib/cli/release.js +29 -6
  215. package/lib/cli/release.js.map +7 -1
  216. package/lib/cli/start.js +61 -24
  217. package/lib/cli/start.js.map +7 -1
  218. package/lib/cli/test/index.js +35 -11
  219. package/lib/cli/test/index.js.map +7 -1
  220. package/lib/cli/test/reporters/github/annotations.js +89 -92
  221. package/lib/cli/test/reporters/github/annotations.js.map +7 -1
  222. package/lib/cli/test/reporters/github/index.js +68 -68
  223. package/lib/cli/test/reporters/github/index.js.map +7 -1
  224. package/lib/cli/version.js +31 -8
  225. package/lib/cli/version.js.map +7 -1
  226. package/lib/enquirer.d.js +2 -0
  227. package/lib/enquirer.d.js.map +7 -0
  228. package/lib/index.d.ts +6 -0
  229. package/lib/index.js +45 -41
  230. package/lib/index.js.map +7 -1
  231. package/lib/skuba.js +45 -38
  232. package/lib/skuba.js.map +7 -1
  233. package/lib/utils/args.js +97 -96
  234. package/lib/utils/args.js.map +7 -1
  235. package/lib/utils/command.js +64 -33
  236. package/lib/utils/command.js.map +7 -1
  237. package/lib/utils/copy.js +88 -51
  238. package/lib/utils/copy.js.map +7 -1
  239. package/lib/utils/dir.js +79 -67
  240. package/lib/utils/dir.js.map +7 -1
  241. package/lib/utils/env.js +27 -7
  242. package/lib/utils/env.js.map +7 -1
  243. package/lib/utils/error.js +58 -56
  244. package/lib/utils/error.js.map +7 -1
  245. package/lib/utils/exec.js +139 -110
  246. package/lib/utils/exec.js.map +7 -1
  247. package/lib/utils/help.js +31 -8
  248. package/lib/utils/help.js.map +7 -1
  249. package/lib/utils/logging.js +52 -24
  250. package/lib/utils/logging.js.map +7 -1
  251. package/lib/utils/logo.js +65 -27
  252. package/lib/utils/logo.js.map +7 -1
  253. package/lib/utils/manifest.d.ts +1 -0
  254. package/lib/utils/manifest.js +65 -51
  255. package/lib/utils/manifest.js.map +7 -1
  256. package/lib/utils/port.js +38 -17
  257. package/lib/utils/port.js.map +7 -1
  258. package/lib/utils/template.js +106 -87
  259. package/lib/utils/template.js.map +7 -1
  260. package/lib/utils/validation.js +43 -18
  261. package/lib/utils/validation.js.map +7 -1
  262. package/lib/utils/version.js +73 -40
  263. package/lib/utils/version.js.map +7 -1
  264. package/lib/utils/wait.js +52 -25
  265. package/lib/utils/wait.js.map +7 -1
  266. package/lib/utils/worker.js +59 -44
  267. package/lib/utils/worker.js.map +7 -1
  268. package/lib/wrapper/function-arguments.d.js +2 -0
  269. package/lib/wrapper/function-arguments.d.js.map +7 -0
  270. package/lib/wrapper/functionHandler.js +56 -29
  271. package/lib/wrapper/functionHandler.js.map +7 -1
  272. package/lib/wrapper/http.js +66 -56
  273. package/lib/wrapper/http.js.map +7 -1
  274. package/lib/wrapper/index.js +9 -21
  275. package/lib/wrapper/index.js.map +7 -1
  276. package/lib/wrapper/main.js +39 -20
  277. package/lib/wrapper/main.js.map +7 -1
  278. package/lib/wrapper/requestListener.js +50 -35
  279. package/lib/wrapper/requestListener.js.map +7 -1
  280. package/package.json +21 -14
  281. package/template/base/jest.config.ts +0 -6
  282. package/template/base/jest.setup.ts +2 -0
  283. package/template/express-rest-api/.buildkite/pipeline.yml +1 -1
  284. package/template/express-rest-api/package.json +1 -1
  285. package/template/greeter/.buildkite/pipeline.yml +1 -1
  286. package/template/greeter/package.json +1 -1
  287. package/template/greeter/src/app.test.ts +3 -1
  288. package/template/koa-rest-api/.buildkite/pipeline.yml +1 -1
  289. package/template/koa-rest-api/package.json +6 -9
  290. package/template/koa-rest-api/src/api/jobs/postJob.test.ts +3 -7
  291. package/template/koa-rest-api/src/api/jobs/postJob.ts +2 -2
  292. package/template/koa-rest-api/src/framework/validation.test.ts +17 -15
  293. package/template/koa-rest-api/src/framework/validation.ts +50 -9
  294. package/template/koa-rest-api/src/storage/jobs.ts +2 -2
  295. package/template/koa-rest-api/src/testing/types.ts +5 -10
  296. package/template/koa-rest-api/src/types/jobs.ts +5 -10
  297. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +3 -3
  298. package/template/lambda-sqs-worker/README.md +1 -1
  299. package/template/lambda-sqs-worker/package.json +4 -4
  300. package/template/lambda-sqs-worker/serverless.yml +17 -2
  301. package/template/lambda-sqs-worker/src/app.test.ts +19 -17
  302. package/template/lambda-sqs-worker/src/app.ts +8 -8
  303. package/template/lambda-sqs-worker/src/config.ts +3 -0
  304. package/template/lambda-sqs-worker/src/framework/handler.test.ts +7 -7
  305. package/template/lambda-sqs-worker/src/framework/handler.ts +31 -8
  306. package/template/lambda-sqs-worker/src/framework/metrics.ts +10 -6
  307. package/template/lambda-sqs-worker/src/framework/validation.test.ts +37 -17
  308. package/template/lambda-sqs-worker/src/framework/validation.ts +4 -2
  309. package/template/lambda-sqs-worker/src/services/jobScorer.ts +2 -2
  310. package/template/lambda-sqs-worker/src/testing/types.ts +5 -10
  311. package/template/lambda-sqs-worker/src/types/jobScorer.ts +9 -16
  312. package/template/lambda-sqs-worker/src/types/pipelineEvents.ts +13 -20
  313. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +3 -3
  314. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +6 -0
  315. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +3 -3
  316. package/template/lambda-sqs-worker-cdk/infra/index.ts +2 -2
  317. package/template/lambda-sqs-worker-cdk/package.json +2 -2
  318. package/template/lambda-sqs-worker-cdk/shared/context-types.ts +16 -25
  319. package/template/oss-npm-package/_package.json +1 -1
  320. package/template/private-npm-package/_package.json +1 -1
  321. package/jest/resolver.js +0 -24
@@ -1,127 +1,132 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
24
11
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
27
19
  };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.autofix = void 0;
30
- const util_1 = require("util");
31
- const simple_git_1 = __importDefault(require("simple-git"));
32
- const Git = __importStar(require("../../api/git"));
33
- const GitHub = __importStar(require("../../api/github"));
34
- const eslint_1 = require("../../cli/adapter/eslint");
35
- const prettier_1 = require("../../cli/adapter/prettier");
36
- const env_1 = require("../../utils/env");
37
- const logging_1 = require("../../utils/logging");
38
- const wait_1 = require("../../utils/wait");
39
- const AUTOFIX_COMMIT_MESSAGE = 'Run `skuba format`';
40
- const shouldPush = async ({ currentBranch, dir, }) => {
41
- if (!(0, env_1.isCiEnv)()) {
42
- // We're not running in a CI environment so we don't need to push autofixes.
43
- // Ideally we'd drive this off of repository write permissions, but that is
44
- // non-trivial to infer without attempting an actual write.
45
- return false;
46
- }
47
- const isDefaultBuildkiteBranch = currentBranch &&
48
- [process.env.BUILDKITE_PIPELINE_DEFAULT_BRANCH, 'master', 'main'].includes(currentBranch);
49
- const isProtectedGitHubBranch = process.env.GITHUB_REF_PROTECTED === 'true';
50
- if (isDefaultBuildkiteBranch || isProtectedGitHubBranch) {
51
- // The current branch is a protected branch.
52
- // We respect GitHub Flow; avoid pushing directly to the default branch.
53
- return false;
54
- }
55
- let headCommitMessage;
56
- try {
57
- headCommitMessage = await Git.getHeadCommitMessage({ dir });
58
- }
59
- catch { }
60
- if (headCommitMessage === AUTOFIX_COMMIT_MESSAGE) {
61
- // Short circuit when the head commit appears to be one of our autofixes.
62
- // Repeating the same operation is unlikely to correct outstanding issues.
63
- return false;
64
- }
65
- // Allow the push attempt to go ahead if our guards have been cleared.
66
- return true;
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var autofix_exports = {};
26
+ __export(autofix_exports, {
27
+ autofix: () => autofix
28
+ });
29
+ module.exports = __toCommonJS(autofix_exports);
30
+ var import_util = require("util");
31
+ var import_simple_git = __toESM(require("simple-git"));
32
+ var Git = __toESM(require("../../api/git"));
33
+ var GitHub = __toESM(require("../../api/github"));
34
+ var import_eslint = require("../../cli/adapter/eslint");
35
+ var import_prettier = require("../../cli/adapter/prettier");
36
+ var import_env = require("../../utils/env");
37
+ var import_logging = require("../../utils/logging");
38
+ var import_wait = require("../../utils/wait");
39
+ const AUTOFIX_COMMIT_MESSAGE = "Run `skuba format`";
40
+ const shouldPush = async ({
41
+ currentBranch,
42
+ dir
43
+ }) => {
44
+ if (!(0, import_env.isCiEnv)()) {
45
+ return false;
46
+ }
47
+ const isDefaultBuildkiteBranch = currentBranch && [process.env.BUILDKITE_PIPELINE_DEFAULT_BRANCH, "master", "main"].includes(
48
+ currentBranch
49
+ );
50
+ const isProtectedGitHubBranch = process.env.GITHUB_REF_PROTECTED === "true";
51
+ if (isDefaultBuildkiteBranch || isProtectedGitHubBranch) {
52
+ return false;
53
+ }
54
+ let headCommitMessage;
55
+ try {
56
+ headCommitMessage = await Git.getHeadCommitMessage({ dir });
57
+ } catch {
58
+ }
59
+ if (headCommitMessage === AUTOFIX_COMMIT_MESSAGE) {
60
+ return false;
61
+ }
62
+ return true;
67
63
  };
68
64
  const autofix = async (params) => {
69
- if (!params.eslint && !params.prettier) {
70
- return;
65
+ if (!params.eslint && !params.prettier) {
66
+ return;
67
+ }
68
+ const dir = process.cwd();
69
+ let currentBranch;
70
+ try {
71
+ currentBranch = await Git.currentBranch({ dir });
72
+ } catch {
73
+ }
74
+ if (!await shouldPush({ currentBranch, dir })) {
75
+ return;
76
+ }
77
+ try {
78
+ import_logging.log.newline();
79
+ import_logging.log.warn(
80
+ `Trying to autofix with ${params.eslint ? "ESLint and " : ""}Prettier...`
81
+ );
82
+ const logger = (0, import_logging.createLogger)(params.debug);
83
+ if (params.eslint) {
84
+ await (0, import_eslint.runESLint)("format", logger);
71
85
  }
72
- const dir = process.cwd();
73
- let currentBranch;
74
- try {
75
- currentBranch = await Git.currentBranch({ dir });
86
+ await (0, import_prettier.runPrettier)("format", logger);
87
+ if (process.env.GITHUB_ACTIONS) {
88
+ const ref2 = await Git.commitAllChanges({
89
+ dir,
90
+ message: AUTOFIX_COMMIT_MESSAGE
91
+ });
92
+ if (!ref2) {
93
+ return import_logging.log.warn("No autofixes detected.");
94
+ }
95
+ await (0, import_wait.throwOnTimeout)((0, import_simple_git.default)().push(), { s: 30 });
96
+ import_logging.log.warn(`Pushed fix commit ${ref2}.`);
97
+ return;
76
98
  }
77
- catch { }
78
- if (!(await shouldPush({ currentBranch, dir }))) {
79
- return;
99
+ if (!currentBranch) {
100
+ import_logging.log.warn("Could not determine the current branch.");
101
+ import_logging.log.warn(
102
+ "Please propagate BUILDKITE_BRANCH, GITHUB_HEAD_REF, GITHUB_REF_NAME, or the .git directory to your container."
103
+ );
104
+ return;
80
105
  }
81
- try {
82
- logging_1.log.newline();
83
- logging_1.log.warn(`Trying to autofix with ${params.eslint ? 'ESLint and ' : ''}Prettier...`);
84
- const logger = (0, logging_1.createLogger)(params.debug);
85
- if (params.eslint) {
86
- await (0, eslint_1.runESLint)('format', logger);
87
- }
88
- // Unconditionally re-run Prettier; reaching here means we have pre-existing
89
- // format violations or may have created new ones through ESLint fixes.
90
- await (0, prettier_1.runPrettier)('format', logger);
91
- if (process.env.GITHUB_ACTIONS) {
92
- // GitHub runners have Git installed locally
93
- const ref = await Git.commitAllChanges({
94
- dir,
95
- message: AUTOFIX_COMMIT_MESSAGE,
96
- });
97
- if (!ref) {
98
- return logging_1.log.warn('No autofixes detected.');
99
- }
100
- await (0, wait_1.throwOnTimeout)((0, simple_git_1.default)().push(), { s: 30 });
101
- logging_1.log.warn(`Pushed fix commit ${ref}.`);
102
- return;
103
- }
104
- // Other CI Environments, use GitHub API
105
- if (!currentBranch) {
106
- logging_1.log.warn('Could not determine the current branch.');
107
- logging_1.log.warn('Please propagate BUILDKITE_BRANCH, GITHUB_HEAD_REF, GITHUB_REF_NAME, or the .git directory to your container.');
108
- return;
109
- }
110
- const ref = await (0, wait_1.throwOnTimeout)(GitHub.uploadAllFileChanges({
111
- dir,
112
- branch: currentBranch,
113
- messageHeadline: AUTOFIX_COMMIT_MESSAGE,
114
- }), { s: 30 });
115
- if (!ref) {
116
- return logging_1.log.warn('No autofixes detected.');
117
- }
118
- logging_1.log.warn(`Pushed fix commit ${ref}.`);
119
- }
120
- catch (err) {
121
- logging_1.log.warn(logging_1.log.bold('Failed to push fix commit.'));
122
- logging_1.log.warn(logging_1.log.bold('Does your CI environment have write access to your Git repository?'));
123
- logging_1.log.subtle((0, util_1.inspect)(err));
106
+ const ref = await (0, import_wait.throwOnTimeout)(
107
+ GitHub.uploadAllFileChanges({
108
+ dir,
109
+ branch: currentBranch,
110
+ messageHeadline: AUTOFIX_COMMIT_MESSAGE
111
+ }),
112
+ { s: 30 }
113
+ );
114
+ if (!ref) {
115
+ return import_logging.log.warn("No autofixes detected.");
124
116
  }
117
+ import_logging.log.warn(`Pushed fix commit ${ref}.`);
118
+ } catch (err) {
119
+ import_logging.log.warn(import_logging.log.bold("Failed to push fix commit."));
120
+ import_logging.log.warn(
121
+ import_logging.log.bold(
122
+ "Does your CI environment have write access to your Git repository?"
123
+ )
124
+ );
125
+ import_logging.log.subtle((0, import_util.inspect)(err));
126
+ }
125
127
  };
126
- exports.autofix = autofix;
127
- //# sourceMappingURL=autofix.js.map
128
+ // Annotate the CommonJS export names for ESM import in node:
129
+ 0 && (module.exports = {
130
+ autofix
131
+ });
132
+ //# sourceMappingURL=autofix.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../../src/cli/lint/autofix.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/cli/lint/autofix.ts"],
4
+ "sourcesContent": ["import { inspect } from 'util';\n\nimport simpleGit from 'simple-git';\n\nimport * as Git from '../../api/git';\nimport * as GitHub from '../../api/github';\nimport { runESLint } from '../../cli/adapter/eslint';\nimport { runPrettier } from '../../cli/adapter/prettier';\nimport { isCiEnv } from '../../utils/env';\nimport { createLogger, log } from '../../utils/logging';\nimport { throwOnTimeout } from '../../utils/wait';\n\nimport type { Input } from './types';\n\nconst AUTOFIX_COMMIT_MESSAGE = 'Run `skuba format`';\n\nconst shouldPush = async ({\n currentBranch,\n dir,\n}: {\n currentBranch?: string;\n dir: string;\n}) => {\n if (!isCiEnv()) {\n // We're not running in a CI environment so we don't need to push autofixes.\n // Ideally we'd drive this off of repository write permissions, but that is\n // non-trivial to infer without attempting an actual write.\n return false;\n }\n\n const isDefaultBuildkiteBranch =\n currentBranch &&\n [process.env.BUILDKITE_PIPELINE_DEFAULT_BRANCH, 'master', 'main'].includes(\n currentBranch,\n );\n\n const isProtectedGitHubBranch = process.env.GITHUB_REF_PROTECTED === 'true';\n\n if (isDefaultBuildkiteBranch || isProtectedGitHubBranch) {\n // The current branch is a protected branch.\n // We respect GitHub Flow; avoid pushing directly to the default branch.\n return false;\n }\n\n let headCommitMessage;\n try {\n headCommitMessage = await Git.getHeadCommitMessage({ dir });\n } catch {}\n\n if (headCommitMessage === AUTOFIX_COMMIT_MESSAGE) {\n // Short circuit when the head commit appears to be one of our autofixes.\n // Repeating the same operation is unlikely to correct outstanding issues.\n return false;\n }\n\n // Allow the push attempt to go ahead if our guards have been cleared.\n return true;\n};\n\ninterface AutofixParameters {\n debug: Input['debug'];\n\n eslint: boolean;\n prettier: boolean;\n}\n\nexport const autofix = async (params: AutofixParameters): Promise<void> => {\n if (!params.eslint && !params.prettier) {\n return;\n }\n\n const dir = process.cwd();\n\n let currentBranch;\n try {\n currentBranch = await Git.currentBranch({ dir });\n } catch {}\n\n if (!(await shouldPush({ currentBranch, dir }))) {\n return;\n }\n\n try {\n log.newline();\n log.warn(\n `Trying to autofix with ${params.eslint ? 'ESLint and ' : ''}Prettier...`,\n );\n\n const logger = createLogger(params.debug);\n\n if (params.eslint) {\n await runESLint('format', logger);\n }\n // Unconditionally re-run Prettier; reaching here means we have pre-existing\n // format violations or may have created new ones through ESLint fixes.\n await runPrettier('format', logger);\n\n if (process.env.GITHUB_ACTIONS) {\n // GitHub runners have Git installed locally\n const ref = await Git.commitAllChanges({\n dir,\n message: AUTOFIX_COMMIT_MESSAGE,\n });\n\n if (!ref) {\n return log.warn('No autofixes detected.');\n }\n\n await throwOnTimeout(simpleGit().push(), { s: 30 });\n log.warn(`Pushed fix commit ${ref}.`);\n return;\n }\n\n // Other CI Environments, use GitHub API\n if (!currentBranch) {\n log.warn('Could not determine the current branch.');\n log.warn(\n 'Please propagate BUILDKITE_BRANCH, GITHUB_HEAD_REF, GITHUB_REF_NAME, or the .git directory to your container.',\n );\n return;\n }\n\n const ref = await throwOnTimeout(\n GitHub.uploadAllFileChanges({\n dir,\n branch: currentBranch,\n messageHeadline: AUTOFIX_COMMIT_MESSAGE,\n }),\n { s: 30 },\n );\n\n if (!ref) {\n return log.warn('No autofixes detected.');\n }\n\n log.warn(`Pushed fix commit ${ref}.`);\n } catch (err) {\n log.warn(log.bold('Failed to push fix commit.'));\n log.warn(\n log.bold(\n 'Does your CI environment have write access to your Git repository?',\n ),\n );\n log.subtle(inspect(err));\n }\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AAExB,wBAAsB;AAEtB,UAAqB;AACrB,aAAwB;AACxB,oBAA0B;AAC1B,sBAA4B;AAC5B,iBAAwB;AACxB,qBAAkC;AAClC,kBAA+B;AAI/B,MAAM,yBAAyB;AAE/B,MAAM,aAAa,OAAO;AAAA,EACxB;AAAA,EACA;AACF,MAGM;AACJ,MAAI,KAAC,oBAAQ,GAAG;AAId,WAAO;AAAA,EACT;AAEA,QAAM,2BACJ,iBACA,CAAC,QAAQ,IAAI,mCAAmC,UAAU,MAAM,EAAE;AAAA,IAChE;AAAA,EACF;AAEF,QAAM,0BAA0B,QAAQ,IAAI,yBAAyB;AAErE,MAAI,4BAA4B,yBAAyB;AAGvD,WAAO;AAAA,EACT;AAEA,MAAI;AACJ,MAAI;AACF,wBAAoB,MAAM,IAAI,qBAAqB,EAAE,IAAI,CAAC;AAAA,EAC5D,QAAE;AAAA,EAAO;AAET,MAAI,sBAAsB,wBAAwB;AAGhD,WAAO;AAAA,EACT;AAGA,SAAO;AACT;AASO,MAAM,UAAU,OAAO,WAA6C;AACzE,MAAI,CAAC,OAAO,UAAU,CAAC,OAAO,UAAU;AACtC;AAAA,EACF;AAEA,QAAM,MAAM,QAAQ,IAAI;AAExB,MAAI;AACJ,MAAI;AACF,oBAAgB,MAAM,IAAI,cAAc,EAAE,IAAI,CAAC;AAAA,EACjD,QAAE;AAAA,EAAO;AAET,MAAI,CAAE,MAAM,WAAW,EAAE,eAAe,IAAI,CAAC,GAAI;AAC/C;AAAA,EACF;AAEA,MAAI;AACF,uBAAI,QAAQ;AACZ,uBAAI;AAAA,MACF,0BAA0B,OAAO,SAAS,gBAAgB;AAAA,IAC5D;AAEA,UAAM,aAAS,6BAAa,OAAO,KAAK;AAExC,QAAI,OAAO,QAAQ;AACjB,gBAAM,yBAAU,UAAU,MAAM;AAAA,IAClC;AAGA,cAAM,6BAAY,UAAU,MAAM;AAElC,QAAI,QAAQ,IAAI,gBAAgB;AAE9B,YAAMA,OAAM,MAAM,IAAI,iBAAiB;AAAA,QACrC;AAAA,QACA,SAAS;AAAA,MACX,CAAC;AAED,UAAI,CAACA,MAAK;AACR,eAAO,mBAAI,KAAK,wBAAwB;AAAA,MAC1C;AAEA,gBAAM,gCAAe,kBAAAC,SAAU,EAAE,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;AAClD,yBAAI,KAAK,qBAAqBD,OAAM;AACpC;AAAA,IACF;AAGA,QAAI,CAAC,eAAe;AAClB,yBAAI,KAAK,yCAAyC;AAClD,yBAAI;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,MAAM,UAAM;AAAA,MAChB,OAAO,qBAAqB;AAAA,QAC1B;AAAA,QACA,QAAQ;AAAA,QACR,iBAAiB;AAAA,MACnB,CAAC;AAAA,MACD,EAAE,GAAG,GAAG;AAAA,IACV;AAEA,QAAI,CAAC,KAAK;AACR,aAAO,mBAAI,KAAK,wBAAwB;AAAA,IAC1C;AAEA,uBAAI,KAAK,qBAAqB,MAAM;AAAA,EACtC,SAAS,KAAP;AACA,uBAAI,KAAK,mBAAI,KAAK,4BAA4B,CAAC;AAC/C,uBAAI;AAAA,MACF,mBAAI;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,uBAAI,WAAO,qBAAQ,GAAG,CAAC;AAAA,EACzB;AACF;",
6
+ "names": ["ref", "simpleGit"]
7
+ }
@@ -1,21 +1,51 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
4
11
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runESLintInWorkerThread = exports.runESLintInCurrentThread = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const worker_threads_1 = require("worker_threads");
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const logging_1 = require("../../utils/logging");
11
- const worker_1 = require("../../utils/worker");
12
- const eslint_1 = require("../adapter/eslint");
13
- const LOG_PREFIX = chalk_1.default.magenta('ESLint │');
14
- const runESLintInCurrentThread = ({ debug }) => (0, eslint_1.runESLint)('lint', (0, logging_1.createLogger)(debug, LOG_PREFIX));
15
- exports.runESLintInCurrentThread = runESLintInCurrentThread;
16
- const runESLintInWorkerThread = (input) => (0, worker_1.execWorkerThread)(path_1.default.posix.join(__dirname, 'eslint.js'), input);
17
- exports.runESLintInWorkerThread = runESLintInWorkerThread;
18
- if (!worker_threads_1.isMainThread) {
19
- (0, worker_1.postWorkerOutput)(exports.runESLintInCurrentThread, (0, logging_1.createLogger)(false, LOG_PREFIX));
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var eslint_exports = {};
26
+ __export(eslint_exports, {
27
+ runESLintInCurrentThread: () => runESLintInCurrentThread,
28
+ runESLintInWorkerThread: () => runESLintInWorkerThread
29
+ });
30
+ module.exports = __toCommonJS(eslint_exports);
31
+ var import_path = __toESM(require("path"));
32
+ var import_worker_threads = require("worker_threads");
33
+ var import_chalk = __toESM(require("chalk"));
34
+ var import_logging = require("../../utils/logging");
35
+ var import_worker = require("../../utils/worker");
36
+ var import_eslint = require("../adapter/eslint");
37
+ const LOG_PREFIX = import_chalk.default.magenta("ESLint \u2502");
38
+ const runESLintInCurrentThread = ({ debug }) => (0, import_eslint.runESLint)("lint", (0, import_logging.createLogger)(debug, LOG_PREFIX));
39
+ const runESLintInWorkerThread = (input) => (0, import_worker.execWorkerThread)(
40
+ import_path.default.posix.join(__dirname, "eslint.js"),
41
+ input
42
+ );
43
+ if (!import_worker_threads.isMainThread) {
44
+ (0, import_worker.postWorkerOutput)(runESLintInCurrentThread, (0, import_logging.createLogger)(false, LOG_PREFIX));
20
45
  }
21
- //# sourceMappingURL=eslint.js.map
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ runESLintInCurrentThread,
49
+ runESLintInWorkerThread
50
+ });
51
+ //# sourceMappingURL=eslint.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../src/cli/lint/eslint.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mDAA8C;AAE9C,kDAA0B;AAE1B,iDAAmD;AACnD,+CAAwE;AAExE,8CAA8C;AAI9C,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAExC,MAAM,wBAAwB,GAAG,CAAC,EAAE,KAAK,EAAS,EAAE,EAAE,CAC3D,IAAA,kBAAS,EAAC,MAAM,EAAE,IAAA,sBAAY,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AADxC,QAAA,wBAAwB,4BACgB;AAE9C,MAAM,uBAAuB,GAAG,CAAC,KAAY,EAAE,EAAE,CACtD,IAAA,yBAAgB,EACd,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACvC,KAAK,CACN,CAAC;AAJS,QAAA,uBAAuB,2BAIhC;AAEJ,IAAI,CAAC,6BAAY,EAAE;IACjB,IAAA,yBAAgB,EAAC,gCAAwB,EAAE,IAAA,sBAAY,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;CAC7E"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/cli/lint/eslint.ts"],
4
+ "sourcesContent": ["import path from 'path';\nimport { isMainThread } from 'worker_threads';\n\nimport chalk from 'chalk';\n\nimport { createLogger } from '../../utils/logging';\nimport { execWorkerThread, postWorkerOutput } from '../../utils/worker';\nimport type { ESLintOutput } from '../adapter/eslint';\nimport { runESLint } from '../adapter/eslint';\n\nimport type { Input } from './types';\n\nconst LOG_PREFIX = chalk.magenta('ESLint \u2502');\n\nexport const runESLintInCurrentThread = ({ debug }: Input) =>\n runESLint('lint', createLogger(debug, LOG_PREFIX));\n\nexport const runESLintInWorkerThread = (input: Input) =>\n execWorkerThread<Input, ESLintOutput>(\n path.posix.join(__dirname, 'eslint.js'),\n input,\n );\n\nif (!isMainThread) {\n postWorkerOutput(runESLintInCurrentThread, createLogger(false, LOG_PREFIX));\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AACjB,4BAA6B;AAE7B,mBAAkB;AAElB,qBAA6B;AAC7B,oBAAmD;AAEnD,oBAA0B;AAI1B,MAAM,aAAa,aAAAA,QAAM,QAAQ,iBAAY;AAEtC,MAAM,2BAA2B,CAAC,EAAE,MAAM,UAC/C,yBAAU,YAAQ,6BAAa,OAAO,UAAU,CAAC;AAE5C,MAAM,0BAA0B,CAAC,cACtC;AAAA,EACE,YAAAC,QAAK,MAAM,KAAK,WAAW,WAAW;AAAA,EACtC;AACF;AAEF,IAAI,CAAC,oCAAc;AACjB,sCAAiB,8BAA0B,6BAAa,OAAO,UAAU,CAAC;AAC5E;",
6
+ "names": ["chalk", "path"]
7
+ }
@@ -1,95 +1,116 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
4
11
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.externalLint = exports.StreamInterceptor = void 0;
7
- const stream_1 = __importDefault(require("stream"));
8
- const util_1 = require("util");
9
- const logging_1 = require("../../utils/logging");
10
- const wait_1 = require("../../utils/wait");
11
- const annotate_1 = require("./annotate");
12
- const autofix_1 = require("./autofix");
13
- const eslint_1 = require("./eslint");
14
- const prettier_1 = require("./prettier");
15
- const tsc_1 = require("./tsc");
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var external_exports = {};
26
+ __export(external_exports, {
27
+ StreamInterceptor: () => StreamInterceptor,
28
+ externalLint: () => externalLint
29
+ });
30
+ module.exports = __toCommonJS(external_exports);
31
+ var import_stream = __toESM(require("stream"));
32
+ var import_util = require("util");
33
+ var import_logging = require("../../utils/logging");
34
+ var import_wait = require("../../utils/wait");
35
+ var import_annotate = require("./annotate");
36
+ var import_autofix = require("./autofix");
37
+ var import_eslint = require("./eslint");
38
+ var import_prettier = require("./prettier");
39
+ var import_tsc = require("./tsc");
16
40
  const tscPrefixRegex = /^(.*?tsc\s+│.*?\s)/gm;
17
- class StreamInterceptor extends stream_1.default.Transform {
18
- constructor() {
19
- super(...arguments);
20
- this.chunks = [];
21
- }
22
- output() {
23
- return Buffer.concat(this.chunks).toString().replace(tscPrefixRegex, '');
24
- }
25
- _transform(chunk, _encoding, callback) {
26
- this.chunks.push(chunk);
27
- callback(null, chunk);
28
- }
41
+ class StreamInterceptor extends import_stream.default.Transform {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.chunks = [];
45
+ }
46
+ output() {
47
+ return Buffer.concat(this.chunks).toString().replace(tscPrefixRegex, "");
48
+ }
49
+ _transform(chunk, _encoding, callback) {
50
+ this.chunks.push(chunk);
51
+ callback(null, chunk);
52
+ }
29
53
  }
30
- exports.StreamInterceptor = StreamInterceptor;
31
54
  const lintConcurrently = async ({ tscOutputStream, ...input }) => {
32
- const [eslint, prettier, tscOk] = await Promise.all([
33
- (0, eslint_1.runESLintInWorkerThread)(input),
34
- (0, prettier_1.runPrettierInWorkerThread)(input),
35
- (0, tsc_1.runTscInNewProcess)({ ...input, tscOutputStream }),
36
- ]);
37
- return { eslint, prettier, tscOk };
55
+ const [eslint, prettier, tscOk] = await Promise.all([
56
+ (0, import_eslint.runESLintInWorkerThread)(input),
57
+ (0, import_prettier.runPrettierInWorkerThread)(input),
58
+ (0, import_tsc.runTscInNewProcess)({ ...input, tscOutputStream })
59
+ ]);
60
+ return { eslint, prettier, tscOk };
38
61
  };
39
- /**
40
- * Run linting tools `--serial`ly for resource-constrained environments.
41
- *
42
- * Note that we still run ESLint and Prettier in worker threads as a
43
- * counterintuitive optimisation. Memory can be more readily freed on worker
44
- * thread exit, which isn't as easy with a monolithic main thread.
45
- */
46
62
  const lintSerially = async ({ tscOutputStream, ...input }) => {
47
- const eslint = await (0, eslint_1.runESLintInWorkerThread)(input);
48
- const prettier = await (0, prettier_1.runPrettierInWorkerThread)(input);
49
- const tscOk = await (0, tsc_1.runTscInNewProcess)({ ...input, tscOutputStream });
50
- return { eslint, prettier, tscOk };
63
+ const eslint = await (0, import_eslint.runESLintInWorkerThread)(input);
64
+ const prettier = await (0, import_prettier.runPrettierInWorkerThread)(input);
65
+ const tscOk = await (0, import_tsc.runTscInNewProcess)({ ...input, tscOutputStream });
66
+ return { eslint, prettier, tscOk };
51
67
  };
52
68
  const lintSeriallyWithoutWorkerThreads = async (input) => {
53
- const eslint = await (0, eslint_1.runESLintInCurrentThread)(input);
54
- const prettier = await (0, prettier_1.runPrettierInCurrentThread)(input);
55
- const tscOk = await (0, tsc_1.runTscInNewProcess)(input);
56
- return { eslint, prettier, tscOk };
69
+ const eslint = await (0, import_eslint.runESLintInCurrentThread)(input);
70
+ const prettier = await (0, import_prettier.runPrettierInCurrentThread)(input);
71
+ const tscOk = await (0, import_tsc.runTscInNewProcess)(input);
72
+ return { eslint, prettier, tscOk };
57
73
  };
58
74
  const selectLintFunction = (input) => {
59
- if (!input.workerThreads) {
60
- return lintSeriallyWithoutWorkerThreads;
61
- }
62
- // `--debug` implies `--serial`.
63
- const isSerial = input.debug || input.serial;
64
- return isSerial ? lintSerially : lintConcurrently;
75
+ if (!input.workerThreads) {
76
+ return lintSeriallyWithoutWorkerThreads;
77
+ }
78
+ const isSerial = input.debug || input.serial;
79
+ return isSerial ? lintSerially : lintConcurrently;
65
80
  };
66
81
  const externalLint = async (input) => {
67
- const lint = selectLintFunction(input);
68
- const tscOutputStream = new StreamInterceptor();
69
- tscOutputStream.pipe(input.tscOutputStream ?? process.stdout);
70
- const { eslint, prettier, tscOk } = await lint({ ...input, tscOutputStream });
71
- try {
72
- await (0, wait_1.throwOnTimeout)((0, annotate_1.createAnnotations)(eslint, prettier, tscOk, tscOutputStream), { s: 30 });
73
- }
74
- catch (err) {
75
- logging_1.log.warn('Failed to annotate lint results.');
76
- logging_1.log.subtle((0, util_1.inspect)(err));
77
- }
78
- if (!eslint.ok || !prettier.ok || !tscOk) {
79
- const tools = [
80
- ...(eslint.ok ? [] : ['ESLint']),
81
- ...(prettier.ok ? [] : ['Prettier']),
82
- ...(tscOk ? [] : ['tsc']),
83
- ];
84
- logging_1.log.newline();
85
- logging_1.log.err(`${tools.join(', ')} found issues that require triage.`);
86
- process.exitCode = 1;
87
- }
88
- await (0, autofix_1.autofix)({
89
- debug: input.debug,
90
- eslint: eslint.fixable,
91
- prettier: !prettier.ok,
92
- });
82
+ const lint = selectLintFunction(input);
83
+ const tscOutputStream = new StreamInterceptor();
84
+ tscOutputStream.pipe(input.tscOutputStream ?? process.stdout);
85
+ const { eslint, prettier, tscOk } = await lint({ ...input, tscOutputStream });
86
+ try {
87
+ await (0, import_wait.throwOnTimeout)(
88
+ (0, import_annotate.createAnnotations)(eslint, prettier, tscOk, tscOutputStream),
89
+ { s: 30 }
90
+ );
91
+ } catch (err) {
92
+ import_logging.log.warn("Failed to annotate lint results.");
93
+ import_logging.log.subtle((0, import_util.inspect)(err));
94
+ }
95
+ if (!eslint.ok || !prettier.ok || !tscOk) {
96
+ const tools = [
97
+ ...eslint.ok ? [] : ["ESLint"],
98
+ ...prettier.ok ? [] : ["Prettier"],
99
+ ...tscOk ? [] : ["tsc"]
100
+ ];
101
+ import_logging.log.newline();
102
+ import_logging.log.err(`${tools.join(", ")} found issues that require triage.`);
103
+ process.exitCode = 1;
104
+ }
105
+ await (0, import_autofix.autofix)({
106
+ debug: input.debug,
107
+ eslint: eslint.fixable,
108
+ prettier: !prettier.ok
109
+ });
93
110
  };
94
- exports.externalLint = externalLint;
95
- //# sourceMappingURL=external.js.map
111
+ // Annotate the CommonJS export names for ESM import in node:
112
+ 0 && (module.exports = {
113
+ StreamInterceptor,
114
+ externalLint
115
+ });
116
+ //# sourceMappingURL=external.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cli/lint/external.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/cli/lint/external.ts"],
4
+ "sourcesContent": ["import stream from 'stream';\nimport { inspect } from 'util';\n\nimport { log } from '../../utils/logging';\nimport { throwOnTimeout } from '../../utils/wait';\n\nimport { createAnnotations } from './annotate';\nimport { autofix } from './autofix';\nimport { runESLintInCurrentThread, runESLintInWorkerThread } from './eslint';\nimport {\n runPrettierInCurrentThread,\n runPrettierInWorkerThread,\n} from './prettier';\nimport { runTscInNewProcess } from './tsc';\nimport type { Input } from './types';\n\nconst tscPrefixRegex = /^(.*?tsc\\s+\u2502.*?\\s)/gm;\n\nexport class StreamInterceptor extends stream.Transform {\n private chunks: Uint8Array[] = [];\n\n public output() {\n return Buffer.concat(this.chunks).toString().replace(tscPrefixRegex, '');\n }\n\n _transform(\n chunk: Uint8Array,\n _encoding: BufferEncoding,\n callback: stream.TransformCallback,\n ) {\n this.chunks.push(chunk);\n\n callback(null, chunk);\n }\n}\n\nconst lintConcurrently = async ({ tscOutputStream, ...input }: Input) => {\n const [eslint, prettier, tscOk] = await Promise.all([\n runESLintInWorkerThread(input),\n runPrettierInWorkerThread(input),\n runTscInNewProcess({ ...input, tscOutputStream }),\n ]);\n\n return { eslint, prettier, tscOk };\n};\n\n/**\n * Run linting tools `--serial`ly for resource-constrained environments.\n *\n * Note that we still run ESLint and Prettier in worker threads as a\n * counterintuitive optimisation. Memory can be more readily freed on worker\n * thread exit, which isn't as easy with a monolithic main thread.\n */\nconst lintSerially = async ({ tscOutputStream, ...input }: Input) => {\n const eslint = await runESLintInWorkerThread(input);\n const prettier = await runPrettierInWorkerThread(input);\n const tscOk = await runTscInNewProcess({ ...input, tscOutputStream });\n\n return { eslint, prettier, tscOk };\n};\n\nconst lintSeriallyWithoutWorkerThreads = async (input: Input) => {\n const eslint = await runESLintInCurrentThread(input);\n const prettier = await runPrettierInCurrentThread(input);\n const tscOk = await runTscInNewProcess(input);\n\n return { eslint, prettier, tscOk };\n};\n\nconst selectLintFunction = (input: Input) => {\n if (!input.workerThreads) {\n return lintSeriallyWithoutWorkerThreads;\n }\n\n // `--debug` implies `--serial`.\n const isSerial = input.debug || input.serial;\n\n return isSerial ? lintSerially : lintConcurrently;\n};\n\nexport const externalLint = async (input: Input) => {\n const lint = selectLintFunction(input);\n\n const tscOutputStream = new StreamInterceptor();\n tscOutputStream.pipe(input.tscOutputStream ?? process.stdout);\n\n const { eslint, prettier, tscOk } = await lint({ ...input, tscOutputStream });\n\n try {\n await throwOnTimeout(\n createAnnotations(eslint, prettier, tscOk, tscOutputStream),\n { s: 30 },\n );\n } catch (err) {\n log.warn('Failed to annotate lint results.');\n log.subtle(inspect(err));\n }\n\n if (!eslint.ok || !prettier.ok || !tscOk) {\n const tools = [\n ...(eslint.ok ? [] : ['ESLint']),\n ...(prettier.ok ? [] : ['Prettier']),\n ...(tscOk ? [] : ['tsc']),\n ];\n\n log.newline();\n log.err(`${tools.join(', ')} found issues that require triage.`);\n\n process.exitCode = 1;\n }\n\n await autofix({\n debug: input.debug,\n eslint: eslint.fixable,\n prettier: !prettier.ok,\n });\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,kBAAwB;AAExB,qBAAoB;AACpB,kBAA+B;AAE/B,sBAAkC;AAClC,qBAAwB;AACxB,oBAAkE;AAClE,sBAGO;AACP,iBAAmC;AAGnC,MAAM,iBAAiB;AAEhB,MAAM,0BAA0B,cAAAA,QAAO,UAAU;AAAA,EAAjD;AAAA;AACL,SAAQ,SAAuB,CAAC;AAAA;AAAA,EAEzB,SAAS;AACd,WAAO,OAAO,OAAO,KAAK,MAAM,EAAE,SAAS,EAAE,QAAQ,gBAAgB,EAAE;AAAA,EACzE;AAAA,EAEA,WACE,OACA,WACA,UACA;AACA,SAAK,OAAO,KAAK,KAAK;AAEtB,aAAS,MAAM,KAAK;AAAA,EACtB;AACF;AAEA,MAAM,mBAAmB,OAAO,EAAE,oBAAoB,MAAM,MAAa;AACvE,QAAM,CAAC,QAAQ,UAAU,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,QAClD,uCAAwB,KAAK;AAAA,QAC7B,2CAA0B,KAAK;AAAA,QAC/B,+BAAmB,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAAA,EAClD,CAAC;AAED,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AASA,MAAM,eAAe,OAAO,EAAE,oBAAoB,MAAM,MAAa;AACnE,QAAM,SAAS,UAAM,uCAAwB,KAAK;AAClD,QAAM,WAAW,UAAM,2CAA0B,KAAK;AACtD,QAAM,QAAQ,UAAM,+BAAmB,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAEpE,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AAEA,MAAM,mCAAmC,OAAO,UAAiB;AAC/D,QAAM,SAAS,UAAM,wCAAyB,KAAK;AACnD,QAAM,WAAW,UAAM,4CAA2B,KAAK;AACvD,QAAM,QAAQ,UAAM,+BAAmB,KAAK;AAE5C,SAAO,EAAE,QAAQ,UAAU,MAAM;AACnC;AAEA,MAAM,qBAAqB,CAAC,UAAiB;AAC3C,MAAI,CAAC,MAAM,eAAe;AACxB,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,MAAM,SAAS,MAAM;AAEtC,SAAO,WAAW,eAAe;AACnC;AAEO,MAAM,eAAe,OAAO,UAAiB;AAClD,QAAM,OAAO,mBAAmB,KAAK;AAErC,QAAM,kBAAkB,IAAI,kBAAkB;AAC9C,kBAAgB,KAAK,MAAM,mBAAmB,QAAQ,MAAM;AAE5D,QAAM,EAAE,QAAQ,UAAU,MAAM,IAAI,MAAM,KAAK,EAAE,GAAG,OAAO,gBAAgB,CAAC;AAE5E,MAAI;AACF,cAAM;AAAA,UACJ,mCAAkB,QAAQ,UAAU,OAAO,eAAe;AAAA,MAC1D,EAAE,GAAG,GAAG;AAAA,IACV;AAAA,EACF,SAAS,KAAP;AACA,uBAAI,KAAK,kCAAkC;AAC3C,uBAAI,WAAO,qBAAQ,GAAG,CAAC;AAAA,EACzB;AAEA,MAAI,CAAC,OAAO,MAAM,CAAC,SAAS,MAAM,CAAC,OAAO;AACxC,UAAM,QAAQ;AAAA,MACZ,GAAI,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ;AAAA,MAC9B,GAAI,SAAS,KAAK,CAAC,IAAI,CAAC,UAAU;AAAA,MAClC,GAAI,QAAQ,CAAC,IAAI,CAAC,KAAK;AAAA,IACzB;AAEA,uBAAI,QAAQ;AACZ,uBAAI,IAAI,GAAG,MAAM,KAAK,IAAI,qCAAqC;AAE/D,YAAQ,WAAW;AAAA,EACrB;AAEA,YAAM,wBAAQ;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,UAAU,CAAC,SAAS;AAAA,EACtB,CAAC;AACH;",
6
+ "names": ["stream"]
7
+ }