skuba 3.15.1 → 3.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +61 -2
  2. package/lib/api/github/checkRun.d.ts +22 -0
  3. package/lib/api/github/checkRun.js +111 -0
  4. package/lib/api/github/checkRun.js.map +1 -0
  5. package/lib/api/github/environment.d.ts +3 -0
  6. package/lib/api/github/environment.js +21 -0
  7. package/lib/api/github/environment.js.map +1 -0
  8. package/lib/api/github/index.d.ts +2 -0
  9. package/lib/api/github/index.js +6 -0
  10. package/lib/api/github/index.js.map +1 -0
  11. package/lib/api/jest/index.d.ts +1 -1
  12. package/lib/api/jest/index.js.map +1 -1
  13. package/lib/cli/adapter/eslint.d.ts +7 -0
  14. package/lib/cli/adapter/eslint.js +21 -9
  15. package/lib/cli/adapter/eslint.js.map +1 -1
  16. package/lib/cli/adapter/prettier.d.ts +1 -4
  17. package/lib/cli/adapter/prettier.js +18 -20
  18. package/lib/cli/adapter/prettier.js.map +1 -1
  19. package/lib/cli/configure/analysis/git.d.ts +1 -1
  20. package/lib/cli/configure/analysis/git.js +11 -17
  21. package/lib/cli/configure/analysis/git.js.map +1 -1
  22. package/lib/cli/configure/index.js +2 -2
  23. package/lib/cli/configure/index.js.map +1 -1
  24. package/lib/cli/configure/processing/record.d.ts +2 -2
  25. package/lib/cli/configure/processing/record.js +2 -2
  26. package/lib/cli/configure/processing/record.js.map +1 -1
  27. package/lib/cli/configure/refreshIgnoreFiles.d.ts +2 -0
  28. package/lib/cli/configure/refreshIgnoreFiles.js +55 -0
  29. package/lib/cli/configure/refreshIgnoreFiles.js.map +1 -0
  30. package/lib/cli/format.js +2 -0
  31. package/lib/cli/format.js.map +1 -1
  32. package/lib/cli/init/getConfig.d.ts +1 -1
  33. package/lib/cli/init/git.d.ts +2 -3
  34. package/lib/cli/init/git.js +41 -10
  35. package/lib/cli/init/git.js.map +1 -1
  36. package/lib/cli/init/index.js +3 -3
  37. package/lib/cli/init/index.js.map +1 -1
  38. package/lib/cli/lint/annotate/buildkite/eslint.d.ts +2 -0
  39. package/lib/cli/lint/annotate/buildkite/eslint.js +26 -0
  40. package/lib/cli/lint/annotate/buildkite/eslint.js.map +1 -0
  41. package/lib/cli/lint/annotate/buildkite/index.d.ts +4 -0
  42. package/lib/cli/lint/annotate/buildkite/index.js +53 -0
  43. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -0
  44. package/lib/cli/lint/annotate/buildkite/prettier.d.ts +2 -0
  45. package/lib/cli/lint/annotate/buildkite/prettier.js +33 -0
  46. package/lib/cli/lint/annotate/buildkite/prettier.js.map +1 -0
  47. package/lib/cli/lint/annotate/buildkite/tsc.d.ts +2 -0
  48. package/lib/cli/lint/annotate/buildkite/tsc.js +37 -0
  49. package/lib/cli/lint/annotate/buildkite/tsc.js.map +1 -0
  50. package/lib/cli/lint/annotate/github/eslint.d.ts +3 -0
  51. package/lib/cli/lint/annotate/github/eslint.js +13 -0
  52. package/lib/cli/lint/annotate/github/eslint.js.map +1 -0
  53. package/lib/cli/lint/annotate/github/index.d.ts +4 -0
  54. package/lib/cli/lint/annotate/github/index.js +61 -0
  55. package/lib/cli/lint/annotate/github/index.js.map +1 -0
  56. package/lib/cli/lint/annotate/github/prettier.d.ts +3 -0
  57. package/lib/cli/lint/annotate/github/prettier.js +16 -0
  58. package/lib/cli/lint/annotate/github/prettier.js.map +1 -0
  59. package/lib/cli/lint/annotate/github/tsc.d.ts +3 -0
  60. package/lib/cli/lint/annotate/github/tsc.js +59 -0
  61. package/lib/cli/lint/annotate/github/tsc.js.map +1 -0
  62. package/lib/cli/lint/annotate/index.d.ts +4 -0
  63. package/lib/cli/lint/annotate/index.js +22 -0
  64. package/lib/cli/lint/annotate/index.js.map +1 -0
  65. package/lib/cli/lint/external.d.ts +7 -0
  66. package/lib/cli/lint/external.js +38 -41
  67. package/lib/cli/lint/external.js.map +1 -1
  68. package/lib/cli/lint/index.d.ts +1 -1
  69. package/lib/cli/lint/index.js +4 -1
  70. package/lib/cli/lint/index.js.map +1 -1
  71. package/lib/cli/lint/types.d.ts +10 -1
  72. package/lib/index.d.ts +1 -0
  73. package/lib/index.js +2 -1
  74. package/lib/index.js.map +1 -1
  75. package/lib/utils/args.d.ts +1 -1
  76. package/lib/utils/exec.d.ts +2 -1
  77. package/lib/utils/exec.js.map +1 -1
  78. package/lib/utils/logging.d.ts +1 -2
  79. package/lib/utils/logging.js +3 -2
  80. package/lib/utils/logging.js.map +1 -1
  81. package/lib/utils/worker.d.ts +0 -1
  82. package/lib/wrapper/functionHandler.js +8 -0
  83. package/lib/wrapper/functionHandler.js.map +1 -1
  84. package/lib/wrapper/http.js +11 -7
  85. package/lib/wrapper/http.js.map +1 -1
  86. package/package.json +17 -11
  87. package/template/base/_.gitignore +1 -0
  88. package/template/base/_.prettierignore +2 -0
  89. package/template/express-rest-api/.buildkite/pipeline.yml +4 -4
  90. package/template/express-rest-api/.nvmrc +1 -1
  91. package/template/express-rest-api/Dockerfile +1 -1
  92. package/template/express-rest-api/Dockerfile.dev-deps +1 -1
  93. package/template/express-rest-api/README.md +0 -12
  94. package/template/express-rest-api/docker-compose.yml +4 -2
  95. package/template/express-rest-api/package.json +5 -5
  96. package/template/express-rest-api/src/framework/logging.ts +2 -1
  97. package/template/greeter/.buildkite/pipeline.yml +1 -1
  98. package/template/greeter/.nvmrc +1 -1
  99. package/template/greeter/Dockerfile +1 -1
  100. package/template/greeter/README.md +0 -12
  101. package/template/greeter/docker-compose.yml +4 -2
  102. package/template/greeter/package.json +2 -2
  103. package/template/koa-rest-api/.buildkite/pipeline.yml +4 -4
  104. package/template/koa-rest-api/.nvmrc +1 -1
  105. package/template/koa-rest-api/Dockerfile +1 -1
  106. package/template/koa-rest-api/Dockerfile.dev-deps +1 -1
  107. package/template/koa-rest-api/README.md +0 -12
  108. package/template/koa-rest-api/docker-compose.yml +4 -2
  109. package/template/koa-rest-api/package.json +11 -11
  110. package/template/koa-rest-api/src/framework/logging.ts +2 -1
  111. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +2 -2
  112. package/template/lambda-sqs-worker/README.md +0 -12
  113. package/template/lambda-sqs-worker/docker-compose.yml +3 -1
  114. package/template/lambda-sqs-worker/package.json +9 -9
  115. package/template/lambda-sqs-worker/serverless.yml +6 -2
  116. package/template/lambda-sqs-worker/src/framework/handler.ts +2 -2
  117. package/template/lambda-sqs-worker/src/framework/logging.ts +2 -1
  118. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  119. package/template/lambda-sqs-worker-cdk/docker-compose.yml +3 -1
  120. package/template/lambda-sqs-worker-cdk/package.json +2 -2
  121. package/template/oss-npm-package/.github/workflows/release.yml +2 -2
  122. package/template/oss-npm-package/.github/workflows/validate.yml +2 -2
  123. package/template/oss-npm-package/.nvmrc +1 -1
  124. package/template/oss-npm-package/README.md +0 -14
  125. package/template/oss-npm-package/_package.json +1 -1
  126. package/template/private-npm-package/.nvmrc +1 -1
  127. package/template/private-npm-package/README.md +0 -14
  128. package/template/private-npm-package/_package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,67 @@
1
- # ![🤿 skuba](./docs/logo.svg)
1
+ # [![🤿 skuba](./docs/logo.svg)](https://seek-oss.github.io/skuba)
2
+
3
+ ---
2
4
 
3
5
  [![GitHub Release](https://github.com/seek-oss/skuba/workflows/Release/badge.svg?branch=master)](https://github.com/seek-oss/skuba/actions?query=workflow%3ARelease)
4
6
  [![GitHub Validate](https://github.com/seek-oss/skuba/workflows/Validate/badge.svg?branch=master)](https://github.com/seek-oss/skuba/actions?query=workflow%3AValidate)
5
7
  [![Node.js version](https://img.shields.io/badge/node-%3E%3D%2012-brightgreen)](https://nodejs.org/en/)
6
8
  [![npm package](https://img.shields.io/npm/v/skuba)](https://www.npmjs.com/package/skuba)
7
9
 
8
- View our documentation at **[seek-oss.github.io/skuba](https://seek-oss.github.io/skuba/)**.
10
+ ---
11
+
12
+ **skuba** is a toolkit for backend application and package development on SEEK's gravel and paved roads:
13
+
14
+ - Write in [TypeScript]
15
+ - Enforce coding standards with [ESLint] and [Prettier]
16
+ - Test with [Jest]
17
+ - Deploy with [Gantry], [Serverless] or the [AWS CDK]
18
+
19
+ [aws cdk]: https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-typescript.html
20
+ [gantry]: https://gantry.ssod.skinfra.xyz
21
+ [serverless]: https://serverless.com/
22
+
23
+ It provides you with:
24
+
25
+ - [CLI] commands for developing your project
26
+ - [Templates] to base your backend application or package on
27
+ - [Development] and optional [runtime] APIs for cross-cutting concerns
28
+
29
+ Learn more [about](docs/about.md) **skuba** and [contribute](CONTRIBUTING.md) to it.
30
+
31
+ ---
32
+
33
+ **skuba** is distributed as an npm package.
34
+
35
+ In projects that list it as a `devDependency`,
36
+ usage may look something like this:
37
+
38
+ ```shell
39
+ # Install project dependencies.
40
+ yarn
41
+
42
+ # Run the skuba CLI.
43
+ yarn skuba help
44
+ ```
45
+
46
+ Global installations are also supported to speed up local development:
47
+
48
+ ```shell
49
+ # Install skuba globally.
50
+ yarn global add skuba
51
+
52
+ # Look, no `npx`!
53
+ skuba help
54
+ ```
55
+
56
+ If you're new here, jump ahead to the [CLI] section to [create a new project] or [update an existing one].
57
+
58
+ [cli]: ./docs/cli
59
+ [create a new project]: ./docs/cli/init.md
60
+ [development]: ./docs/development-api
61
+ [eslint]: https://eslint.org/
62
+ [jest]: https://jestjs.io
63
+ [prettier]: https://prettier.io/
64
+ [runtime]: ./docs/runtime-api
65
+ [templates]: ./docs/templates
66
+ [typescript]: https://www.typescriptlang.org/
67
+ [update an existing one]: ./docs/cli/configure.md
@@ -0,0 +1,22 @@
1
+ import { Endpoints } from '@octokit/types';
2
+ declare type Output = NonNullable<Endpoints['POST /repos/{owner}/{repo}/check-runs']['parameters']['output']>;
3
+ export declare type Annotation = NonNullable<Output['annotations']>[number];
4
+ interface CreateCheckRunParameters {
5
+ annotations: Annotation[];
6
+ conclusion: 'failure' | 'success';
7
+ name: string;
8
+ summary: string;
9
+ title: string;
10
+ }
11
+ /**
12
+ * Asynchronously creates a GitHub [check run] with annotations.
13
+ *
14
+ * The first 50 `annotations` are written in full to GitHub.
15
+ *
16
+ * A `GITHUB_API_TOKEN` or `GITHUB_TOKEN` with the `checks:write` permission
17
+ * must be present on the environment.
18
+
19
+
20
+ */
21
+ export declare const createCheckRun: ({ annotations, conclusion, name, summary, title, }: CreateCheckRunParameters) => Promise<void>;
22
+ export {};
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createCheckRun = void 0;
16
+ const rest_1 = require("@octokit/rest");
17
+ const fs_extra_1 = __importDefault(require("fs-extra"));
18
+ const isomorphic_git_1 = __importDefault(require("isomorphic-git"));
19
+ const logging_1 = require("../../utils/logging");
20
+ const GITHUB_MAX_ANNOTATIONS = 50;
21
+ /**
22
+ * Matches the owner and repository names in a GitHub repository URL.
23
+ *
24
+ * For example, given the following input strings:
25
+ *
26
+ * ```console
27
+ * git@github.com:seek-oss/skuba.git
28
+ * https://github.com/seek-oss/skuba.git
29
+ * ```
30
+ *
31
+ * This pattern will produce the following matches:
32
+ *
33
+ * 1. seek-oss
34
+ * 2. skuba
35
+ */
36
+ const ownerRepoRegex = /github.com(?::|\/)(.+)\/(.+).git$/;
37
+ const getOwnerRepo = (dir) => __awaiter(void 0, void 0, void 0, function* () {
38
+ const remotes = yield isomorphic_git_1.default.listRemotes({ dir, fs: fs_extra_1.default });
39
+ for (const { url } of remotes) {
40
+ const match = ownerRepoRegex.exec(url);
41
+ const owner = match === null || match === void 0 ? void 0 : match[1];
42
+ const repo = match === null || match === void 0 ? void 0 : match[2];
43
+ if (owner && repo) {
44
+ return { owner, repo };
45
+ }
46
+ }
47
+ throw new Error('Could not find a GitHub remote');
48
+ });
49
+ const getHeadSha = (dir) => __awaiter(void 0, void 0, void 0, function* () {
50
+ const [commit] = yield isomorphic_git_1.default.log({ depth: 1, dir, fs: fs_extra_1.default });
51
+ return commit.oid;
52
+ });
53
+ /**
54
+ * Suffixes the title with the number of annotations added, e.g.
55
+ *
56
+ * ```text
57
+ * Build #12 failed (24 annotations added)
58
+ * ```
59
+ */
60
+ const suffixTitle = (title, inputAnnotations) => {
61
+ const addedAnnotations = inputAnnotations > GITHUB_MAX_ANNOTATIONS
62
+ ? GITHUB_MAX_ANNOTATIONS
63
+ : inputAnnotations;
64
+ return `${title} (${(0, logging_1.pluralise)(addedAnnotations, 'annotation')} added)`;
65
+ };
66
+ /**
67
+ * Enriches the summary with more context about the check run.
68
+ */
69
+ const createEnrichedSummary = (summary, inputAnnotations) => [
70
+ summary,
71
+ ...(inputAnnotations > GITHUB_MAX_ANNOTATIONS
72
+ ? [
73
+ `${inputAnnotations} annotations were provided, but only the first ${GITHUB_MAX_ANNOTATIONS} are visible in GitHub.`,
74
+ ]
75
+ : []),
76
+ ].join('\n\n');
77
+ /**
78
+ * Asynchronously creates a GitHub [check run] with annotations.
79
+ *
80
+ * The first 50 `annotations` are written in full to GitHub.
81
+ *
82
+ * A `GITHUB_API_TOKEN` or `GITHUB_TOKEN` with the `checks:write` permission
83
+ * must be present on the environment.
84
+
85
+
86
+ */
87
+ const createCheckRun = ({ annotations, conclusion, name, summary, title, }) => __awaiter(void 0, void 0, void 0, function* () {
88
+ var _a;
89
+ const dir = process.cwd();
90
+ const [headSha, { owner, repo }] = yield Promise.all([
91
+ getHeadSha(dir),
92
+ getOwnerRepo(dir),
93
+ ]);
94
+ const client = new rest_1.Octokit({
95
+ auth: (_a = process.env.GITHUB_API_TOKEN) !== null && _a !== void 0 ? _a : process.env.GITHUB_TOKEN,
96
+ });
97
+ yield client.checks.create({
98
+ conclusion,
99
+ head_sha: headSha,
100
+ name,
101
+ output: {
102
+ annotations: annotations.slice(0, GITHUB_MAX_ANNOTATIONS),
103
+ summary: createEnrichedSummary(summary, annotations.length),
104
+ title: suffixTitle(title, annotations.length),
105
+ },
106
+ owner,
107
+ repo,
108
+ });
109
+ });
110
+ exports.createCheckRun = createCheckRun;
111
+ //# sourceMappingURL=checkRun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkRun.js","sourceRoot":"","sources":["../../../src/api/github/checkRun.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ export declare const buildNameFromEnvironment: (env?: NodeJS.ProcessEnv) => string;
3
+ export declare const enabledFromEnvironment: (env?: NodeJS.ProcessEnv) => boolean;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enabledFromEnvironment = exports.buildNameFromEnvironment = void 0;
4
+ const buildNameFromEnvironment = (env = process.env) => {
5
+ var _a;
6
+ if (env.BUILDKITE_BUILD_NUMBER) {
7
+ return `Build #${env.BUILDKITE_BUILD_NUMBER}`;
8
+ }
9
+ if (env.GITHUB_RUN_NUMBER) {
10
+ return `${(_a = env.GITHUB_WORKFLOW) !== null && _a !== void 0 ? _a : 'Build'} #${env.GITHUB_RUN_NUMBER}`;
11
+ }
12
+ return 'Build';
13
+ };
14
+ exports.buildNameFromEnvironment = buildNameFromEnvironment;
15
+ const enabledFromEnvironment = (env = process.env) =>
16
+ // Running in a CI environment.
17
+ Boolean(env.BUILDKITE || env.CI || env.GITHUB_ACTIONS) &&
18
+ // Has an API token at the ready.
19
+ Boolean(env.GITHUB_API_TOKEN || env.GITHUB_TOKEN);
20
+ exports.enabledFromEnvironment = enabledFromEnvironment;
21
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/api/github/environment.ts"],"names":[],"mappings":";;;AAAO,MAAM,wBAAwB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAU,EAAE;;IACpE,IAAI,GAAG,CAAC,sBAAsB,EAAE;QAC9B,OAAO,UAAU,GAAG,CAAC,sBAAsB,EAAE,CAAC;KAC/C;IAED,IAAI,GAAG,CAAC,iBAAiB,EAAE;QACzB,OAAO,GAAG,MAAA,GAAG,CAAC,eAAe,mCAAI,OAAO,KAAK,GAAG,CAAC,iBAAiB,EAAE,CAAC;KACtE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,sBAAsB,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAW,EAAE;AACnE,+BAA+B;AAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC;IACtD,iCAAiC;IACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAJvC,QAAA,sBAAsB,0BAIiB"}
@@ -0,0 +1,2 @@
1
+ export type { Annotation } from './checkRun';
2
+ export { createCheckRun } from './checkRun';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCheckRun = void 0;
4
+ var checkRun_1 = require("./checkRun");
5
+ Object.defineProperty(exports, "createCheckRun", { enumerable: true, get: function () { return checkRun_1.createCheckRun; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/github/index.ts"],"names":[],"mappings":";;;AACA,uCAA4C;AAAnC,0GAAA,cAAc,OAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Config } from '@jest/types';
2
- declare type Props = Pick<Config.InitialOptions, 'collectCoverage' | 'collectCoverageFrom' | 'collectCoverageOnlyFrom' | 'coveragePathIgnorePatterns' | 'coverageThreshold' | 'globals' | 'globalSetup' | 'globalTeardown' | 'setupFiles' | 'setupFilesAfterEnv' | 'snapshotSerializers' | 'testPathIgnorePatterns' | 'testTimeout' | 'watchPathIgnorePatterns'>;
2
+ declare type Props = Pick<Config.InitialOptions, 'collectCoverage' | 'collectCoverageFrom' | 'collectCoverageOnlyFrom' | 'coveragePathIgnorePatterns' | 'coverageThreshold' | 'globals' | 'globalSetup' | 'globalTeardown' | 'setupFiles' | 'setupFilesAfterEnv' | 'snapshotSerializers' | 'testEnvironment' | 'testPathIgnorePatterns' | 'testTimeout' | 'watchPathIgnorePatterns'>;
3
3
  /**
4
4
  * Merge additional Jest options into the **skuba** preset.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/jest/index.ts"],"names":[],"mappings":";;;;;;AAEA,uEAA8C;AAC9C,kEAAiE;AAoBjE;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,KAAY,EAAyB,EAAE,CACjE,IAAA,iBAAQ,EAAC,qBAAU,EAAE,KAAK,CAAC,CAAC;AADjB,QAAA,WAAW,eACM"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/jest/index.ts"],"names":[],"mappings":";;;;;;AAEA,uEAA8C;AAC9C,kEAAiE;AAqBjE;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,KAAY,EAAyB,EAAE,CACjE,IAAA,iBAAQ,EAAC,qBAAU,EAAE,KAAK,CAAC,CAAC;AADjB,QAAA,WAAW,eACM"}
@@ -1,5 +1,12 @@
1
+ import { Linter } from 'eslint';
1
2
  import { Logger } from '../../utils/logging';
3
+ export interface ESLintResult {
4
+ messages: Linter.LintMessage[];
5
+ filePath: string;
6
+ }
2
7
  export interface ESLintOutput {
8
+ errors: ESLintResult[];
9
+ warnings: ESLintResult[];
3
10
  ok: boolean;
4
11
  output: string;
5
12
  }
@@ -16,6 +16,7 @@ exports.runESLint = void 0;
16
16
  const path_1 = __importDefault(require("path"));
17
17
  const chalk_1 = __importDefault(require("chalk"));
18
18
  const eslint_1 = require("eslint");
19
+ const logging_1 = require("../../utils/logging");
19
20
  const symbolForResult = (result) => {
20
21
  if (result.errorCount) {
21
22
  return chalk_1.default.red('○');
@@ -25,9 +26,7 @@ const symbolForResult = (result) => {
25
26
  const runESLint = (mode, logger) => __awaiter(void 0, void 0, void 0, function* () {
26
27
  logger.debug('Initialising ESLint...');
27
28
  const engine = new eslint_1.ESLint({
28
- // TODO: enable this once we have a less overzealous `skuba configure` that
29
- // everyone can apply to update their `.gitignore` files.
30
- // cache: true,
29
+ cache: true,
31
30
  extensions: ['js', 'ts', 'tsx'],
32
31
  fix: mode === 'format',
33
32
  reportUnusedDisableDirectives: 'error',
@@ -40,19 +39,32 @@ const runESLint = (mode, logger) => __awaiter(void 0, void 0, void 0, function*
40
39
  engine.lintFiles('.'),
41
40
  ]);
42
41
  const end = process.hrtime.bigint();
43
- logger.plain(`Processed ${logger.pluralise(results.length, 'file')} in ${logger.timing(start, end)}.`);
44
- let errors = 0;
42
+ logger.plain(`Processed ${(0, logging_1.pluralise)(results.length, 'file')} in ${logger.timing(start, end)}.`);
43
+ const errors = [];
44
+ const warnings = [];
45
45
  for (const result of results) {
46
- errors += result.errorCount;
47
- logger.debug(symbolForResult(result), path_1.default.relative(cwd, result.filePath));
46
+ const relativePath = path_1.default.relative(cwd, result.filePath);
47
+ if (result.errorCount) {
48
+ errors.push({
49
+ filePath: relativePath,
50
+ messages: result.messages,
51
+ });
52
+ }
53
+ if (result.warningCount) {
54
+ warnings.push({
55
+ filePath: relativePath,
56
+ messages: result.messages,
57
+ });
58
+ }
59
+ logger.debug(symbolForResult(result), relativePath);
48
60
  }
49
- const ok = errors === 0;
61
+ const ok = errors.length === 0;
50
62
  yield eslint_1.ESLint.outputFixes(results);
51
63
  const output = formatter.format(results);
52
64
  if (output) {
53
65
  logger.plain(output);
54
66
  }
55
- return { ok, output };
67
+ return { ok, output, errors, warnings };
56
68
  });
57
69
  exports.runESLint = runESLint;
58
70
  //# sourceMappingURL=eslint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../src/cli/adapter/eslint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,kDAA0B;AAC1B,mCAAgC;AAIhC,MAAM,eAAe,GAAG,CAAC,MAAyB,EAAE,EAAE;IACpD,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC,CAAC;AAOK,MAAM,SAAS,GAAG,CACvB,IAAuB,EACvB,MAAc,EACS,EAAE;IACzB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;QACxB,2EAA2E;QAC3E,yDAAyD;QACzD,eAAe;QACf,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAC/B,GAAG,EAAE,IAAI,KAAK,QAAQ;QACtB,6BAA6B,EAAE,OAAO;KACvC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAEtC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,MAAM,CAAC,aAAa,EAAE;QACtB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;KACtB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAEpC,MAAM,CAAC,KAAK,CACV,aAAa,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,MAAM,CACvE,KAAK,EACL,GAAG,CACJ,GAAG,CACL,CAAC;IAEF,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;QAE5B,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC5E;IAED,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;IAExB,MAAM,eAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC,CAAA,CAAC;AAtDW,QAAA,SAAS,aAsDpB"}
1
+ {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../src/cli/adapter/eslint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,kDAA0B;AAC1B,mCAAwC;AAExC,iDAAwD;AAExD,MAAM,eAAe,GAAG,CAAC,MAAyB,EAAE,EAAE;IACpD,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC,CAAC;AAcK,MAAM,SAAS,GAAG,CACvB,IAAuB,EACvB,MAAc,EACS,EAAE;IACzB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;QACxB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAC/B,GAAG,EAAE,IAAI,KAAK,QAAQ;QACtB,6BAA6B,EAAE,OAAO;KACvC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAEtC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,MAAM,CAAC,aAAa,EAAE;QACtB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;KACtB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAEpC,MAAM,CAAC,KAAK,CACV,aAAa,IAAA,mBAAS,EAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,MAAM,CAChE,KAAK,EACL,GAAG,CACJ,GAAG,CACL,CAAC;IAEF,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;SACJ;QAED,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;SACJ;QAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;KACrD;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAE/B,MAAM,eAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAA,CAAC;AAlEW,QAAA,SAAS,aAkEpB"}
@@ -5,10 +5,7 @@ interface Result {
5
5
  err?: unknown;
6
6
  filepath: string;
7
7
  }>;
8
- touched: Array<{
9
- data: string;
10
- filepath: string;
11
- }>;
8
+ touched: string[];
12
9
  unparsed: string[];
13
10
  }
14
11
  export interface PrettierOutput {
@@ -15,11 +15,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.runPrettier = void 0;
16
16
  const path_1 = __importDefault(require("path"));
17
17
  const fs_extra_1 = __importDefault(require("fs-extra"));
18
- const p_limit_1 = __importDefault(require("p-limit"));
19
18
  const prettier_1 = require("prettier");
20
19
  const dir_1 = require("../../utils/dir");
20
+ const logging_1 = require("../../utils/logging");
21
21
  const manifest_1 = require("../../utils/manifest");
22
- const fsLimit = (0, p_limit_1.default)(25);
23
22
  const formatOrLintFile = ({ data, filepath, options, parser }, logger, mode, result) => {
24
23
  logger.debug(filepath);
25
24
  logger.debug(' parser:', parser !== null && parser !== void 0 ? parser : '-');
@@ -52,7 +51,8 @@ const formatOrLintFile = ({ data, filepath, options, parser }, logger, mode, res
52
51
  if (formatted === data) {
53
52
  return;
54
53
  }
55
- result.touched.push({ data: formatted, filepath });
54
+ result.touched.push(filepath);
55
+ return formatted;
56
56
  };
57
57
  /**
58
58
  * Formats/lints files with Prettier.
@@ -76,44 +76,42 @@ const runPrettier = (mode, logger) => __awaiter(void 0, void 0, void 0, function
76
76
  // This avoids exhibiting different behaviour than a Prettier IDE integration,
77
77
  // and the headache of conflicting `.gitignore` and `.prettierignore` rules.
78
78
  const filepaths = yield (0, dir_1.crawlDirectory)(directory, '.prettierignore');
79
- logger.debug(`Discovered ${logger.pluralise(filepaths.length, 'file')}.`);
79
+ logger.debug(`Discovered ${(0, logging_1.pluralise)(filepaths.length, 'file')}.`);
80
80
  const result = {
81
81
  count: filepaths.length,
82
82
  errored: [],
83
83
  touched: [],
84
84
  unparsed: [],
85
85
  };
86
- logger.debug('Reading files...');
87
- const files = yield Promise.all(filepaths.map((filepath) => __awaiter(void 0, void 0, void 0, function* () {
86
+ logger.debug(mode === 'format' ? 'Formatting' : 'Linting', 'files...');
87
+ for (const filepath of filepaths) {
88
88
  const [config, data, fileInfo] = yield Promise.all([
89
- fsLimit(() => (0, prettier_1.resolveConfig)(filepath)),
90
- fsLimit(() => fs_extra_1.default.promises.readFile(filepath, 'utf-8')),
89
+ (0, prettier_1.resolveConfig)(filepath),
90
+ fs_extra_1.default.promises.readFile(filepath, 'utf-8'),
91
91
  // Infer parser upfront so we can know to ignore unsupported file types.
92
- fsLimit(() => (0, prettier_1.getFileInfo)(filepath, { resolveConfig: false })),
92
+ (0, prettier_1.getFileInfo)(filepath, { resolveConfig: false }),
93
93
  ]);
94
- return {
94
+ const file = {
95
95
  data,
96
96
  filepath,
97
97
  options: Object.assign(Object.assign({}, config), { filepath }),
98
98
  parser: fileInfo.inferredParser,
99
99
  };
100
- })));
101
- logger.debug(mode === 'format' ? 'Formatting' : 'Linting', 'files...');
102
- for (const file of files) {
103
- formatOrLintFile(file, logger, mode, result);
100
+ const formatted = formatOrLintFile(file, logger, mode, result);
101
+ if (typeof formatted === 'string') {
102
+ yield fs_extra_1.default.promises.writeFile(filepath, formatted);
103
+ }
104
104
  }
105
- logger.debug(`Writing ${logger.pluralise(result.touched.length, 'file')}...`);
106
- yield Promise.all(result.touched.map(({ data, filepath }) => fsLimit(() => fs_extra_1.default.promises.writeFile(filepath, data))));
107
105
  const end = process.hrtime.bigint();
108
- logger.plain(`Processed ${logger.pluralise(result.count - result.unparsed.length, 'file')} in ${logger.timing(start, end)}.`);
106
+ logger.plain(`Processed ${(0, logging_1.pluralise)(result.count - result.unparsed.length, 'file')} in ${logger.timing(start, end)}.`);
109
107
  if (result.touched.length) {
110
- logger.plain(`Formatted ${logger.pluralise(result.touched.length, 'file')}:`);
111
- for (const { filepath } of result.touched) {
108
+ logger.plain(`Formatted ${(0, logging_1.pluralise)(result.touched.length, 'file')}:`);
109
+ for (const filepath of result.touched) {
112
110
  logger.warn(filepath);
113
111
  }
114
112
  }
115
113
  if (result.errored.length) {
116
- logger.plain(`Flagged ${logger.pluralise(result.errored.length, 'file')}:`);
114
+ logger.plain(`Flagged ${(0, logging_1.pluralise)(result.errored.length, 'file')}:`);
117
115
  for (const { err, filepath } of result.errored) {
118
116
  logger.warn(filepath, ...(err ? [String(err)] : []));
119
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prettier.js","sourceRoot":"","sources":["../../../src/cli/adapter/prettier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prettier.js","sourceRoot":"","sources":["../../../src/cli/adapter/prettier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const auditWorkingTree: () => Promise<void>;
1
+ export declare const auditWorkingTree: (dir: string) => Promise<void>;
@@ -8,27 +8,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.auditWorkingTree = void 0;
13
- const exec_1 = require("../../../utils/exec");
16
+ const fs_extra_1 = __importDefault(require("fs-extra"));
17
+ const isomorphic_git_1 = __importDefault(require("isomorphic-git"));
18
+ const dir_1 = require("../../../utils/dir");
14
19
  const logging_1 = require("../../../utils/logging");
15
- const auditWorkingTree = () => __awaiter(void 0, void 0, void 0, function* () {
16
- const exec = (0, exec_1.createExec)({ stdio: 'pipe' });
17
- const [diff, status] = yield Promise.all([
18
- exec('git', 'diff', '--stat'),
19
- exec('git', 'status', '--short'),
20
- ]);
21
- const workingTree = {
22
- dirty: Boolean(diff.stdout),
23
- untracked: Boolean(status.stdout),
24
- };
25
- if (workingTree.dirty || workingTree.untracked) {
26
- const fileTypes = Object.entries(workingTree)
27
- .filter(([, value]) => value)
28
- .map(([key]) => key)
29
- .join('/');
20
+ const auditWorkingTree = (dir) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const filepaths = yield (0, dir_1.crawlDirectory)(dir);
22
+ const statuses = yield Promise.all(filepaths.map((filepath) => isomorphic_git_1.default.status({ dir, fs: fs_extra_1.default, filepath })));
23
+ if (statuses.some((status) => status !== 'absent' && status !== 'ignored' && status !== 'unmodified')) {
30
24
  logging_1.log.newline();
31
- logging_1.log.warn('You have', fileTypes, 'files that may be overwritten.');
25
+ logging_1.log.warn('You have dirty/untracked files that may be overwritten.');
32
26
  }
33
27
  });
34
28
  exports.auditWorkingTree = auditWorkingTree;
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/cli/configure/analysis/git.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAiD;AACjD,oDAA6C;AAEtC,MAAM,gBAAgB,GAAG,GAAS,EAAE;IACzC,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;QAClB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAClC,CAAC;IAEF,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;aACnB,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,aAAG,CAAC,OAAO,EAAE,CAAC;QACd,aAAG,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,gCAAgC,CAAC,CAAC;KACnE;AACH,CAAC,CAAA,CAAC;AAtBW,QAAA,gBAAgB,oBAsB3B"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/cli/configure/analysis/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA0B;AAC1B,oEAAiC;AAEjC,4CAAoD;AACpD,oDAA6C;AAEtC,MAAM,gBAAgB,GAAG,CAAO,GAAW,EAAE,EAAE;IACpD,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAc,EAAC,GAAG,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,wBAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAF,kBAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAC/D,CAAC;IAEF,IACE,QAAQ,CAAC,IAAI,CACX,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CACzE,EACD;QACA,aAAG,CAAC,OAAO,EAAE,CAAC;QACd,aAAG,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;KACrE;AACH,CAAC,CAAA,CAAC;AAhBW,QAAA,gBAAgB,oBAgB3B"}
@@ -41,7 +41,7 @@ const configure = () => __awaiter(void 0, void 0, void 0, function* () {
41
41
  yield (0, logo_1.showLogoAndVersionInfo)();
42
42
  const [manifest] = yield Promise.all([
43
43
  (0, package_1.getDestinationManifest)(),
44
- (0, exec_1.ensureCommands)('git', 'yarn'),
44
+ (0, exec_1.ensureCommands)('yarn'),
45
45
  ]);
46
46
  const destinationRoot = path_1.default.dirname(manifest.path);
47
47
  logging_1.log.plain('Detected project root:', logging_1.log.bold(destinationRoot));
@@ -50,7 +50,7 @@ const configure = () => __awaiter(void 0, void 0, void 0, function* () {
50
50
  path_1.default.join(destinationRoot, '.gitignore'),
51
51
  path_1.default.join(template_1.BASE_TEMPLATE_DIR, '_.gitignore'),
52
52
  ]),
53
- (0, git_1.auditWorkingTree)(),
53
+ (0, git_1.auditWorkingTree)(destinationRoot),
54
54
  ]);
55
55
  const templateConfig = yield (0, ensureTemplateCompletion_1.ensureTemplateCompletion)({
56
56
  destinationRoot,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/configure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,uCAAkC;AAElC,yCAAwD;AACxD,2CAA8D;AAC9D,iDAA0C;AAC1C,2CAA0D;AAC1D,mDAAyD;AACzD,uDAAiD;AAEjD,iEAA8D;AAC9D,+DAA4D;AAC5D,wCAAkD;AAClD,gDAA4D;AAC5D,yEAAsE;AACtE,mDAAgD;AAChD,qDAAkD;AAElD,MAAM,WAAW,GAAG,CAAO,IAAY,EAAE,EAAE;IACzC,MAAM,MAAM,GAAG,IAAI,iBAAM,CAAC;QACxB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;QAC/B,OAAO,EAAE,gBAAgB;QACzB,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IAElC,OAAO,MAAM,KAAK,KAAK,CAAC;AAC1B,CAAC,CAAA,CAAC;AAEK,MAAM,SAAS,GAAG,GAAS,EAAE;IAClC,MAAM,IAAA,6BAAsB,GAAE,CAAC;IAE/B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnC,IAAA,gCAAsB,GAAE;QACxB,IAAA,qBAAc,EAAC,KAAK,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpD,aAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,aAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAE/D,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClC,IAAA,2BAAqB,EAAC;YACpB,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;YACxC,cAAI,CAAC,IAAI,CAAC,4BAAiB,EAAE,aAAa,CAAC;SAC5C,CAAC;QAEF,IAAA,sBAAgB,GAAE;KACnB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,IAAA,mDAAwB,EAAC;QACpD,eAAe;QACf,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAA,+BAAc,EAAC;QAChC,QAAQ;QACR,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAa,EAAC;QACrC,eAAe;QACf,QAAQ;QACR,cAAc;QACd,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,IAAA,yCAAmB,EAAC;QAChD,eAAe;QACf,OAAO;QACP,QAAQ;QACR,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,eAAe,EAAE;QACnB,aAAG,CAAC,OAAO,EAAE,CAAC;QAEd,IAAI,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE;YACxC,MAAM,eAAe,EAAE,CAAC;SACzB;KACF;IAED,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAExD,MAAM,gBAAgB,GAAG,MAAM,IAAA,2CAAoB,EAAC;QAClD,eAAe;QACf,UAAU;QACV,QAAQ;QACR,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,gBAAgB,EAAE;QACpB,aAAG,CAAC,OAAO,EAAE,CAAC;QAEd,IAAI,MAAM,WAAW,CAAC,kBAAkB,CAAC,EAAE;YACzC,MAAM,gBAAgB,EAAE,CAAC;SAC1B;KACF;IAED,IAAI,eAAe,EAAE;QACnB,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC;YACtB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;QAEH,aAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SAC/B;QAAC,WAAM;YACN,aAAG,CAAC,OAAO,EAAE,CAAC;YACd,aAAG,CAAC,IAAI,CAAC,aAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAErE,aAAG,CAAC,OAAO,EAAE,CAAC;YACd,aAAG,CAAC,KAAK,CAAC,aAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACpC,aAAG,CAAC,KAAK,CAAC,aAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAEnC,aAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;SACR;QACD,IAAI;YACF,MAAM,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;SAC7D;QAAC,WAAM,GAAE;KACX;IAED,IAAI,gBAAgB,IAAI,eAAe,EAAE;QACvC,aAAG,CAAC,OAAO,EAAE,CAAC;QACd,aAAG,CAAC,EAAE,CAAC,aAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAE7C,aAAG,CAAC,OAAO,EAAE,CAAC;QACd,aAAG,CAAC,KAAK,CAAC,aAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;KACpC;IAED,aAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC,CAAA,CAAC;AA1GW,QAAA,SAAS,aA0GpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/configure/index.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ export declare const getFirstDefined: <T>(record: Record<string, T | undefined>,
4
4
  *
5
5
  * Array properties are sorted and deduped.
6
6
  */
7
- export declare const merge: <A, B>(obj: A, src: B) => A & B;
7
+ export declare const merge: <A, B>(obj: A, src: B) => {} & A & B;
8
8
  /**
9
9
  * Like `merge`, but arrays are not deduped or sorted to preserve order.
10
10
  */
11
- export declare const mergeRaw: <A, B>(obj: A, src: B) => A & B;
11
+ export declare const mergeRaw: <A, B>(obj: A, src: B) => {} & A & B;
@@ -21,7 +21,7 @@ exports.getFirstDefined = getFirstDefined;
21
21
  *
22
22
  * Array properties are sorted and deduped.
23
23
  */
24
- const merge = (obj, src) => (0, lodash_mergewith_1.default)(obj, src, (objValue, srcValue) => {
24
+ const merge = (obj, src) => (0, lodash_mergewith_1.default)({}, obj, src, (objValue, srcValue) => {
25
25
  if (isArray(objValue) && isArray(srcValue)) {
26
26
  return [...new Set(objValue.concat(srcValue))].sort();
27
27
  }
@@ -31,7 +31,7 @@ exports.merge = merge;
31
31
  /**
32
32
  * Like `merge`, but arrays are not deduped or sorted to preserve order.
33
33
  */
34
- const mergeRaw = (obj, src) => (0, lodash_mergewith_1.default)(obj, src, (objValue, srcValue) => isArray(objValue) && isArray(srcValue)
34
+ const mergeRaw = (obj, src) => (0, lodash_mergewith_1.default)({}, obj, src, (objValue, srcValue) => isArray(objValue) && isArray(srcValue)
35
35
  ? objValue.concat(srcValue)
36
36
  : undefined);
37
37
  exports.mergeRaw = mergeRaw;
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/cli/configure/processing/record.ts"],"names":[],"mappings":";;;;;;AAAA,wEAAyC;AAEzC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEtE,MAAM,eAAe,GAAG,CAC7B,MAAqC,EACrC,IAAc,EACC,EAAE;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO;AACT,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEF;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAO,GAAM,EAAE,GAAM,EAAE,EAAE,CAC5C,IAAA,0BAAS,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QAAiB,EAAE,QAAiB,EAAE,EAAE;IAC3D,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC1C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACvD;IAED,OAAO;AACT,CAAC,CAAC,CAAC;AAPQ,QAAA,KAAK,SAOb;AAEL;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAO,GAAM,EAAE,GAAM,EAAE,EAAE,CAC/C,IAAA,0BAAS,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QAAiB,EAAE,QAAiB,EAAE,EAAE,CAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;IACpC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC,CAAC,SAAS,CACd,CAAC;AALS,QAAA,QAAQ,YAKjB"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/cli/configure/processing/record.ts"],"names":[],"mappings":";;;;;;AAAA,wEAAyC;AAEzC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEtE,MAAM,eAAe,GAAG,CAC7B,MAAqC,EACrC,IAAc,EACC,EAAE;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO;AACT,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEF;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAO,GAAM,EAAE,GAAM,EAAE,EAAE,CAC5C,IAAA,0BAAS,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAiB,EAAE,QAAiB,EAAE,EAAE;IAC/D,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC1C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACvD;IAED,OAAO;AACT,CAAC,CAAC,CAAC;AAPQ,QAAA,KAAK,SAOb;AAEL;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAO,GAAM,EAAE,GAAM,EAAE,EAAE,CAC/C,IAAA,0BAAS,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAiB,EAAE,QAAiB,EAAE,EAAE,CAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;IACpC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC,CAAC,SAAS,CACd,CAAC;AALS,QAAA,QAAQ,YAKjB"}
@@ -0,0 +1,2 @@
1
+ export declare const refreshIgnoreFiles: () => Promise<void>;
2
+ export declare const tryRefreshIgnoreFiles: () => Promise<void>;