@lerna-lite/core 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +16 -0
- package/dist/child-process.d.ts +13 -0
- package/dist/child-process.js +129 -0
- package/dist/child-process.js.map +1 -0
- package/dist/command.d.ts +37 -0
- package/dist/command.js +269 -0
- package/dist/command.js.map +1 -0
- package/dist/conventional-commits/constants.d.ts +4 -0
- package/dist/conventional-commits/constants.js +13 -0
- package/dist/conventional-commits/constants.js.map +1 -0
- package/dist/conventional-commits/get-changelog-config.d.ts +12 -0
- package/dist/conventional-commits/get-changelog-config.js +92 -0
- package/dist/conventional-commits/get-changelog-config.js.map +1 -0
- package/dist/conventional-commits/index.d.ts +6 -0
- package/dist/conventional-commits/index.js +19 -0
- package/dist/conventional-commits/index.js.map +1 -0
- package/dist/conventional-commits/make-bump-only-filter.d.ts +6 -0
- package/dist/conventional-commits/make-bump-only-filter.js +23 -0
- package/dist/conventional-commits/make-bump-only-filter.js.map +1 -0
- package/dist/conventional-commits/read-existing-changelog.d.ts +7 -0
- package/dist/conventional-commits/read-existing-changelog.js +33 -0
- package/dist/conventional-commits/read-existing-changelog.js.map +1 -0
- package/dist/conventional-commits/recommend-version.d.ts +10 -0
- package/dist/conventional-commits/recommend-version.js +87 -0
- package/dist/conventional-commits/recommend-version.js.map +1 -0
- package/dist/conventional-commits/update-changelog.d.ts +11 -0
- package/dist/conventional-commits/update-changelog.js +84 -0
- package/dist/conventional-commits/update-changelog.js.map +1 -0
- package/dist/git-clients/github-client.d.ts +6 -0
- package/dist/git-clients/github-client.js +41 -0
- package/dist/git-clients/github-client.js.map +1 -0
- package/dist/git-clients/gitlab-client.d.ts +5 -0
- package/dist/git-clients/gitlab-client.js +53 -0
- package/dist/git-clients/gitlab-client.js.map +1 -0
- package/dist/git-clients/index.d.ts +2 -0
- package/dist/git-clients/index.js +15 -0
- package/dist/git-clients/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/models/index.d.ts +97 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/otplease.d.ts +13 -0
- package/dist/otplease.js +110 -0
- package/dist/otplease.js.map +1 -0
- package/dist/package-graph/index.d.ts +2 -0
- package/dist/package-graph/index.js +15 -0
- package/dist/package-graph/index.js.map +1 -0
- package/dist/package-graph/lib/cyclic-package-graph-node.d.ts +41 -0
- package/dist/package-graph/lib/cyclic-package-graph-node.js +101 -0
- package/dist/package-graph/lib/cyclic-package-graph-node.js.map +1 -0
- package/dist/package-graph/lib/index.d.ts +3 -0
- package/dist/package-graph/lib/index.js +16 -0
- package/dist/package-graph/lib/index.js.map +1 -0
- package/dist/package-graph/lib/package-graph-node.d.ts +35 -0
- package/dist/package-graph/lib/package-graph-node.js +61 -0
- package/dist/package-graph/lib/package-graph-node.js.map +1 -0
- package/dist/package-graph/lib/report-cycles.d.ts +1 -0
- package/dist/package-graph/lib/report-cycles.js +20 -0
- package/dist/package-graph/lib/report-cycles.js.map +1 -0
- package/dist/package-graph/package-graph.d.ts +78 -0
- package/dist/package-graph/package-graph.js +256 -0
- package/dist/package-graph/package-graph.js.map +1 -0
- package/dist/package.d.ts +96 -0
- package/dist/package.js +260 -0
- package/dist/package.js.map +1 -0
- package/dist/project/index.d.ts +2 -0
- package/dist/project/index.js +15 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/lib/apply-extends.d.ts +6 -0
- package/dist/project/lib/apply-extends.js +38 -0
- package/dist/project/lib/apply-extends.js.map +1 -0
- package/dist/project/lib/index.d.ts +3 -0
- package/dist/project/lib/index.js +16 -0
- package/dist/project/lib/index.js.map +1 -0
- package/dist/project/lib/make-file-finder.d.ts +2 -0
- package/dist/project/lib/make-file-finder.js +72 -0
- package/dist/project/lib/make-file-finder.js.map +1 -0
- package/dist/project/lib/shallow-extend.d.ts +5 -0
- package/dist/project/lib/shallow-extend.js +25 -0
- package/dist/project/lib/shallow-extend.js.map +1 -0
- package/dist/project/project.d.ts +50 -0
- package/dist/project/project.js +193 -0
- package/dist/project/project.js.map +1 -0
- package/dist/prompt.d.ts +5 -0
- package/dist/prompt.js +65 -0
- package/dist/prompt.js.map +1 -0
- package/dist/utils/check-working-tree.d.ts +8 -0
- package/dist/utils/check-working-tree.js +42 -0
- package/dist/utils/check-working-tree.js.map +1 -0
- package/dist/utils/clean-stack.d.ts +5 -0
- package/dist/utils/clean-stack.js +19 -0
- package/dist/utils/clean-stack.js.map +1 -0
- package/dist/utils/collect-dependents.d.ts +11 -0
- package/dist/utils/collect-dependents.js +46 -0
- package/dist/utils/collect-dependents.js.map +1 -0
- package/dist/utils/collect-uncommitted.d.ts +19 -0
- package/dist/utils/collect-uncommitted.js +46 -0
- package/dist/utils/collect-uncommitted.js.map +1 -0
- package/dist/utils/collect-updates/collect-updates.d.ts +25 -0
- package/dist/utils/collect-updates/collect-updates.js +100 -0
- package/dist/utils/collect-updates/collect-updates.js.map +1 -0
- package/dist/utils/collect-updates/index.d.ts +2 -0
- package/dist/utils/collect-updates/index.js +15 -0
- package/dist/utils/collect-updates/index.js.map +1 -0
- package/dist/utils/collect-updates/lib/collect-packages.d.ts +13 -0
- package/dist/utils/collect-updates/lib/collect-packages.js +34 -0
- package/dist/utils/collect-updates/lib/collect-packages.js.map +1 -0
- package/dist/utils/collect-updates/lib/get-packages-for-option.d.ts +5 -0
- package/dist/utils/collect-updates/lib/get-packages-for-option.js +31 -0
- package/dist/utils/collect-updates/lib/get-packages-for-option.js.map +1 -0
- package/dist/utils/collect-updates/lib/has-tags.d.ts +5 -0
- package/dist/utils/collect-updates/lib/has-tags.js +27 -0
- package/dist/utils/collect-updates/lib/has-tags.js.map +1 -0
- package/dist/utils/collect-updates/lib/index.d.ts +4 -0
- package/dist/utils/collect-updates/lib/index.js +17 -0
- package/dist/utils/collect-updates/lib/index.js.map +1 -0
- package/dist/utils/collect-updates/lib/make-diff-predicate.d.ts +6 -0
- package/dist/utils/collect-updates/lib/make-diff-predicate.js +65 -0
- package/dist/utils/collect-updates/lib/make-diff-predicate.js.map +1 -0
- package/dist/utils/conf.d.ts +23 -0
- package/dist/utils/conf.js +256 -0
- package/dist/utils/conf.js.map +1 -0
- package/dist/utils/defaults.d.ts +1 -0
- package/dist/utils/defaults.js +182 -0
- package/dist/utils/defaults.js.map +1 -0
- package/dist/utils/describe-ref.d.ts +24 -0
- package/dist/utils/describe-ref.js +81 -0
- package/dist/utils/describe-ref.js.map +1 -0
- package/dist/utils/env-replace.d.ts +1 -0
- package/dist/utils/env-replace.js +23 -0
- package/dist/utils/env-replace.js.map +1 -0
- package/dist/utils/find-prefix.d.ts +2 -0
- package/dist/utils/find-prefix.js +49 -0
- package/dist/utils/find-prefix.js.map +1 -0
- package/dist/utils/format-error.d.ts +7 -0
- package/dist/utils/format-error.js +20 -0
- package/dist/utils/format-error.js.map +1 -0
- package/dist/utils/index.d.ts +23 -0
- package/dist/utils/index.js +36 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/log-package-error.d.ts +5 -0
- package/dist/utils/log-package-error.js +36 -0
- package/dist/utils/log-package-error.js.map +1 -0
- package/dist/utils/nerf-dart.d.ts +1 -0
- package/dist/utils/nerf-dart.js +19 -0
- package/dist/utils/nerf-dart.js.map +1 -0
- package/dist/utils/npm-conf.d.ts +2 -0
- package/dist/utils/npm-conf.js +54 -0
- package/dist/utils/npm-conf.js.map +1 -0
- package/dist/utils/parse-field.d.ts +1 -0
- package/dist/utils/parse-field.js +66 -0
- package/dist/utils/parse-field.js.map +1 -0
- package/dist/utils/prerelease-id-from-version.d.ts +5 -0
- package/dist/utils/prerelease-id-from-version.js +16 -0
- package/dist/utils/prerelease-id-from-version.js.map +1 -0
- package/dist/utils/pulse-till-done.d.ts +1 -0
- package/dist/utils/pulse-till-done.js +41 -0
- package/dist/utils/pulse-till-done.js.map +1 -0
- package/dist/utils/query-graph.d.ts +36 -0
- package/dist/utils/query-graph.js +78 -0
- package/dist/utils/query-graph.js.map +1 -0
- package/dist/utils/run-lifecycle.d.ts +10 -0
- package/dist/utils/run-lifecycle.js +109 -0
- package/dist/utils/run-lifecycle.js.map +1 -0
- package/dist/utils/run-topologically.d.ts +12 -0
- package/dist/utils/run-topologically.js +37 -0
- package/dist/utils/run-topologically.js.map +1 -0
- package/dist/utils/types.d.ts +128 -0
- package/dist/utils/types.js +138 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/warn-if-hanging.d.ts +1 -0
- package/dist/utils/warn-if-hanging.js +18 -0
- package/dist/utils/warn-if-hanging.js.map +1 -0
- package/dist/utils/write-log-file.d.ts +1 -0
- package/dist/utils/write-log-file.js +33 -0
- package/dist/utils/write-log-file.js.map +1 -0
- package/dist/validation-error.d.ts +4 -0
- package/dist/validation-error.js +19 -0
- package/dist/validation-error.js.map +1 -0
- package/package.json +110 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2022, Ghislain B. - Lerna-Lite
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[](https://opensource.org/licenses/MIT)
|
|
2
|
+
[](http://www.typescriptlang.org/)
|
|
3
|
+
[](https://www.npmjs.com/package/@lerna-lite/core)
|
|
4
|
+
[](https://www.npmjs.com/package/@lerna-lite/core)
|
|
5
|
+
[](https://github.com/ghiscoding/lerna-lite/actions)
|
|
6
|
+
|
|
7
|
+
## Lerna-Lite Core
|
|
8
|
+
#### @lerna-lite/core
|
|
9
|
+
|
|
10
|
+
The Lerna-Lite core & utils functions, basically the shared code used by the Version & Publish commands.
|
|
11
|
+
|
|
12
|
+
### Internal Dependencies
|
|
13
|
+
none
|
|
14
|
+
|
|
15
|
+
### Installation
|
|
16
|
+
Follow the instruction provided in the main [README](https://github.com/ghiscoding/lerna-lite#installation) page.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import execa from 'execa';
|
|
2
|
+
import { Package } from '.';
|
|
3
|
+
export declare function exec(command: string, args: string[], opts: any, cmdDryRun?: boolean): any;
|
|
4
|
+
export declare function execSync(command: string, args?: string[], opts?: any, cmdDryRun?: boolean): string;
|
|
5
|
+
export declare function spawn(command: string, args: string[], opts: any, cmdDryRun?: boolean): any;
|
|
6
|
+
export declare function spawnStreaming(command: string, args: string[], opts: any, prefix?: string | boolean, cmdDryRun?: boolean): any;
|
|
7
|
+
export declare function getChildProcessCount(): number;
|
|
8
|
+
export declare function getExitCode(result: any): any;
|
|
9
|
+
export declare function spawnProcess(command: string, args: string[], opts: execa.SyncOptions<string> & {
|
|
10
|
+
pkg: Package;
|
|
11
|
+
}, cmdDryRun?: boolean): any;
|
|
12
|
+
export declare function wrapError(spawned: any): any;
|
|
13
|
+
export declare function logExecCommand(command: any, args?: string[]): string;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logExecCommand = exports.wrapError = exports.spawnProcess = exports.getExitCode = exports.getChildProcessCount = exports.spawnStreaming = exports.spawn = exports.execSync = exports.exec = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const execa_1 = __importDefault(require("execa"));
|
|
9
|
+
const npmlog_1 = __importDefault(require("npmlog"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
11
|
+
const strong_log_transformer_1 = __importDefault(require("strong-log-transformer"));
|
|
12
|
+
// bookkeeping for spawned processes
|
|
13
|
+
const children = new Set();
|
|
14
|
+
// when streaming processes are spawned, use this color for prefix
|
|
15
|
+
const colorWheel = ['cyan', 'magenta', 'blue', 'yellow', 'green', 'red'];
|
|
16
|
+
const NUM_COLORS = colorWheel.length;
|
|
17
|
+
// ever-increasing index ensures colors are always sequential
|
|
18
|
+
let currentColor = 0;
|
|
19
|
+
function exec(command, args, opts, cmdDryRun = false) {
|
|
20
|
+
const options = Object.assign({ stdio: 'pipe' }, opts);
|
|
21
|
+
const spawned = spawnProcess(command, args, options, cmdDryRun);
|
|
22
|
+
return cmdDryRun ? Promise.resolve() : wrapError(spawned);
|
|
23
|
+
}
|
|
24
|
+
exports.exec = exec;
|
|
25
|
+
// resultCallback?: (processResult: ChildProcessResult) => void
|
|
26
|
+
function execSync(command, args, opts, cmdDryRun = false) {
|
|
27
|
+
return cmdDryRun
|
|
28
|
+
? logExecCommand(command, args)
|
|
29
|
+
: execa_1.default.sync(command, args, opts).stdout;
|
|
30
|
+
}
|
|
31
|
+
exports.execSync = execSync;
|
|
32
|
+
function spawn(command, args, opts, cmdDryRun = false) {
|
|
33
|
+
const options = Object.assign({}, opts, { stdio: 'inherit' });
|
|
34
|
+
const spawned = spawnProcess(command, args, options, cmdDryRun);
|
|
35
|
+
return wrapError(spawned);
|
|
36
|
+
}
|
|
37
|
+
exports.spawn = spawn;
|
|
38
|
+
// istanbul ignore next
|
|
39
|
+
function spawnStreaming(command, args, opts, prefix, cmdDryRun = false) {
|
|
40
|
+
const options = Object.assign({}, opts);
|
|
41
|
+
options.stdio = ['ignore', 'pipe', 'pipe'];
|
|
42
|
+
const spawned = spawnProcess(command, args, options, cmdDryRun);
|
|
43
|
+
const stdoutOpts = {};
|
|
44
|
+
const stderrOpts = {}; // mergeMultiline causes escaped newlines :P
|
|
45
|
+
if (prefix) {
|
|
46
|
+
const colorName = colorWheel[currentColor % NUM_COLORS];
|
|
47
|
+
const color = chalk_1.default[colorName];
|
|
48
|
+
currentColor += 1;
|
|
49
|
+
stdoutOpts.tag = `${color.bold(prefix)}:`;
|
|
50
|
+
stderrOpts.tag = `${color(prefix)}:`;
|
|
51
|
+
}
|
|
52
|
+
// Avoid 'Possible EventEmitter memory leak detected' warning due to piped stdio
|
|
53
|
+
if (children.size > process.stdout.listenerCount('close')) {
|
|
54
|
+
process.stdout.setMaxListeners(children.size);
|
|
55
|
+
process.stderr.setMaxListeners(children.size);
|
|
56
|
+
}
|
|
57
|
+
spawned.stdout.pipe((0, strong_log_transformer_1.default)(stdoutOpts)).pipe(process.stdout);
|
|
58
|
+
spawned.stderr.pipe((0, strong_log_transformer_1.default)(stderrOpts)).pipe(process.stderr);
|
|
59
|
+
return wrapError(spawned);
|
|
60
|
+
}
|
|
61
|
+
exports.spawnStreaming = spawnStreaming;
|
|
62
|
+
function getChildProcessCount() {
|
|
63
|
+
return children.size;
|
|
64
|
+
}
|
|
65
|
+
exports.getChildProcessCount = getChildProcessCount;
|
|
66
|
+
function getExitCode(result) {
|
|
67
|
+
// https://nodejs.org/docs/latest-v6.x/api/child_process.html#child_process_event_close
|
|
68
|
+
if (typeof result.code === 'number') {
|
|
69
|
+
return result.code;
|
|
70
|
+
}
|
|
71
|
+
// https://nodejs.org/docs/latest-v6.x/api/errors.html#errors_error_code
|
|
72
|
+
// istanbul ignore else
|
|
73
|
+
if (typeof result.code === 'string') {
|
|
74
|
+
return os_1.default.constants.errno[result.code];
|
|
75
|
+
}
|
|
76
|
+
// istanbul ignore next: extremely weird
|
|
77
|
+
throw new TypeError(`Received unexpected exit code value ${JSON.stringify(result.code)}`);
|
|
78
|
+
}
|
|
79
|
+
exports.getExitCode = getExitCode;
|
|
80
|
+
function spawnProcess(command, args, opts, cmdDryRun = false) {
|
|
81
|
+
if (cmdDryRun) {
|
|
82
|
+
return logExecCommand(command, args);
|
|
83
|
+
}
|
|
84
|
+
const child = (0, execa_1.default)(command, args, opts);
|
|
85
|
+
const drain = (_code, signal) => {
|
|
86
|
+
children.delete(child);
|
|
87
|
+
// don't run repeatedly if this is the error event
|
|
88
|
+
if (signal === undefined) {
|
|
89
|
+
child.removeListener('exit', drain);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
child.once('exit', drain);
|
|
93
|
+
child.once('error', drain);
|
|
94
|
+
if (opts.pkg) {
|
|
95
|
+
child.pkg = opts.pkg;
|
|
96
|
+
}
|
|
97
|
+
children.add(child);
|
|
98
|
+
return child;
|
|
99
|
+
}
|
|
100
|
+
exports.spawnProcess = spawnProcess;
|
|
101
|
+
function wrapError(spawned) {
|
|
102
|
+
if (spawned.pkg) {
|
|
103
|
+
return spawned.catch(err => {
|
|
104
|
+
// istanbul ignore else
|
|
105
|
+
if (err.code) {
|
|
106
|
+
// ensure code is always a number
|
|
107
|
+
err.code = getExitCode(err);
|
|
108
|
+
// log non-lerna error cleanly
|
|
109
|
+
err.pkg = spawned.pkg;
|
|
110
|
+
}
|
|
111
|
+
throw err;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return spawned;
|
|
115
|
+
}
|
|
116
|
+
exports.wrapError = wrapError;
|
|
117
|
+
function logExecCommand(command, args) {
|
|
118
|
+
var _a;
|
|
119
|
+
const argStr = (_a = (Array.isArray(args) ? args.join(' ') : args)) !== null && _a !== void 0 ? _a : '';
|
|
120
|
+
const cmdList = [];
|
|
121
|
+
for (const c of [command, argStr]) {
|
|
122
|
+
// @ts-ignore
|
|
123
|
+
cmdList.push((Array.isArray(c) ? c.join(' ') : c));
|
|
124
|
+
}
|
|
125
|
+
npmlog_1.default.info('dry-run>', cmdList.join(' '));
|
|
126
|
+
return '';
|
|
127
|
+
}
|
|
128
|
+
exports.logExecCommand = logExecCommand;
|
|
129
|
+
//# sourceMappingURL=child-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-process.js","sourceRoot":"","sources":["../src/child-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Logger } from 'npmlog';
|
|
2
|
+
import { Project } from './project/project';
|
|
3
|
+
import { ExecOpts } from './models';
|
|
4
|
+
import { PackageGraph } from './package-graph/package-graph';
|
|
5
|
+
export declare class Command {
|
|
6
|
+
argv: any;
|
|
7
|
+
concurrency: number;
|
|
8
|
+
envDefaults: any;
|
|
9
|
+
libVersion: string;
|
|
10
|
+
sort: any;
|
|
11
|
+
toposort?: number;
|
|
12
|
+
execOpts: ExecOpts;
|
|
13
|
+
name: string;
|
|
14
|
+
composed: any;
|
|
15
|
+
logger: Logger;
|
|
16
|
+
options: any;
|
|
17
|
+
project: Project;
|
|
18
|
+
packageGraph?: PackageGraph;
|
|
19
|
+
runner?: Promise<any>;
|
|
20
|
+
constructor(_argv: any);
|
|
21
|
+
then(onResolved: typeof Promise.resolve, onRejected: typeof Promise.reject): Promise<unknown> | undefined;
|
|
22
|
+
catch(onRejected: typeof Promise.reject): Promise<any> | undefined;
|
|
23
|
+
get requiresGit(): boolean;
|
|
24
|
+
get otherCommandConfigs(): string[];
|
|
25
|
+
configureEnvironment(): void;
|
|
26
|
+
configureOptions(): void;
|
|
27
|
+
configureProperties(): void;
|
|
28
|
+
configureLogging(): void;
|
|
29
|
+
enableProgressBar(): void;
|
|
30
|
+
gitInitialized(): boolean;
|
|
31
|
+
logOutput(...args: any): void;
|
|
32
|
+
runValidations(): void;
|
|
33
|
+
runPreparations(): Promise<void>;
|
|
34
|
+
runCommand(): Promise<void>;
|
|
35
|
+
initialize(): void;
|
|
36
|
+
execute(): void;
|
|
37
|
+
}
|
package/dist/command.js
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Command = void 0;
|
|
7
|
+
const clone_deep_1 = __importDefault(require("clone-deep"));
|
|
8
|
+
const dedent_1 = __importDefault(require("dedent"));
|
|
9
|
+
const execa_1 = __importDefault(require("execa"));
|
|
10
|
+
const npmlog_1 = __importDefault(require("npmlog"));
|
|
11
|
+
const os_1 = __importDefault(require("os"));
|
|
12
|
+
const clean_stack_1 = require("./utils/clean-stack");
|
|
13
|
+
const log_package_error_1 = require("./utils/log-package-error");
|
|
14
|
+
const warn_if_hanging_1 = require("./utils/warn-if-hanging");
|
|
15
|
+
const write_log_file_1 = require("./utils/write-log-file");
|
|
16
|
+
const project_1 = require("./project/project");
|
|
17
|
+
const validation_error_1 = require("./validation-error");
|
|
18
|
+
const package_graph_1 = require("./package-graph/package-graph");
|
|
19
|
+
const child_process_1 = require("./child-process");
|
|
20
|
+
// maxBuffer value for running exec
|
|
21
|
+
const DEFAULT_CONCURRENCY = os_1.default.cpus().length;
|
|
22
|
+
class Command {
|
|
23
|
+
constructor(_argv) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
this.libVersion = '';
|
|
26
|
+
this.name = '';
|
|
27
|
+
npmlog_1.default.pause();
|
|
28
|
+
npmlog_1.default.heading = 'lerna';
|
|
29
|
+
const argv = (0, clone_deep_1.default)(_argv);
|
|
30
|
+
npmlog_1.default.silly('argv', argv);
|
|
31
|
+
// 'FooCommand' => 'foo'
|
|
32
|
+
// this.name = this.constructor.name.replace(/Command$/, '').toLowerCase();
|
|
33
|
+
// composed commands are called from other commands, like publish -> version
|
|
34
|
+
this.composed = typeof argv.composed === 'string' && argv.composed !== this.name;
|
|
35
|
+
this.libVersion = (_b = (_a = this.project) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : '';
|
|
36
|
+
if (!this.composed) {
|
|
37
|
+
// const pkg = require('../../../package.json');
|
|
38
|
+
// this.libVersion = pkg?.version ?? '';
|
|
39
|
+
// log.notice('cli', `v${this.libVersion}`);
|
|
40
|
+
}
|
|
41
|
+
// launch the command
|
|
42
|
+
let runner = new Promise((resolve, reject) => {
|
|
43
|
+
// run everything inside a Promise chain
|
|
44
|
+
let chain = Promise.resolve();
|
|
45
|
+
chain = chain.then(() => this.project = new project_1.Project(argv.cwd));
|
|
46
|
+
chain = chain.then(() => this.configureEnvironment());
|
|
47
|
+
chain = chain.then(() => this.configureOptions());
|
|
48
|
+
chain = chain.then(() => this.configureProperties());
|
|
49
|
+
chain = chain.then(() => this.configureLogging());
|
|
50
|
+
chain = chain.then(() => this.runValidations());
|
|
51
|
+
chain = chain.then(() => this.runPreparations());
|
|
52
|
+
chain = chain.then(() => this.runCommand());
|
|
53
|
+
chain.then((result) => {
|
|
54
|
+
(0, warn_if_hanging_1.warnIfHanging)();
|
|
55
|
+
resolve(result);
|
|
56
|
+
}, (err) => {
|
|
57
|
+
if (err.pkg) {
|
|
58
|
+
// Cleanly log specific package error details
|
|
59
|
+
(0, log_package_error_1.logPackageError)(err, this.options.stream);
|
|
60
|
+
}
|
|
61
|
+
else if (err.name !== 'ValidationError') {
|
|
62
|
+
// npmlog does some funny stuff to the stack by default,
|
|
63
|
+
// so pass it directly to avoid duplication.
|
|
64
|
+
npmlog_1.default.error('', (0, clean_stack_1.cleanStack)(err, this.constructor.name));
|
|
65
|
+
}
|
|
66
|
+
// ValidationError does not trigger a log dump, nor do external package errors
|
|
67
|
+
if (err.name !== 'ValidationError' && !err.pkg) {
|
|
68
|
+
(0, write_log_file_1.writeLogFile)(this.project.rootPath);
|
|
69
|
+
}
|
|
70
|
+
(0, warn_if_hanging_1.warnIfHanging)();
|
|
71
|
+
// error code is handled by cli.fail()
|
|
72
|
+
reject(err);
|
|
73
|
+
if (err.name === 'ValidationError') {
|
|
74
|
+
npmlog_1.default.error(err.code, (err.body && err.body.error) || err.message);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
// passed via yargs context in tests, never actual CLI
|
|
79
|
+
/* istanbul ignore else */
|
|
80
|
+
if (argv.onResolved || argv.onRejected) {
|
|
81
|
+
runner = runner.then(argv.onResolved, argv.onRejected);
|
|
82
|
+
// when nested, never resolve inner with outer callbacks
|
|
83
|
+
delete argv.onResolved; // eslint-disable-line no-param-reassign
|
|
84
|
+
delete argv.onRejected; // eslint-disable-line no-param-reassign
|
|
85
|
+
}
|
|
86
|
+
// 'hide' irrelevant argv keys from options
|
|
87
|
+
for (const key of ['cwd', '$0']) {
|
|
88
|
+
Object.defineProperty(argv, key, { enumerable: false });
|
|
89
|
+
}
|
|
90
|
+
Object.defineProperty(this, 'argv', {
|
|
91
|
+
value: Object.freeze(argv),
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(this, 'runner', {
|
|
94
|
+
value: runner,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// proxy 'Promise' methods to 'private' instance
|
|
98
|
+
then(onResolved, onRejected) {
|
|
99
|
+
var _a;
|
|
100
|
+
return (_a = this.runner) === null || _a === void 0 ? void 0 : _a.then(onResolved, onRejected);
|
|
101
|
+
}
|
|
102
|
+
/* istanbul ignore next */
|
|
103
|
+
catch(onRejected) {
|
|
104
|
+
var _a;
|
|
105
|
+
return (_a = this.runner) === null || _a === void 0 ? void 0 : _a.catch(onRejected);
|
|
106
|
+
}
|
|
107
|
+
get requiresGit() {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
// Override this to inherit config from another command.
|
|
111
|
+
// For example `changed` inherits config from `publish`.
|
|
112
|
+
get otherCommandConfigs() {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
configureEnvironment() {
|
|
116
|
+
// eslint-disable-next-line global-require
|
|
117
|
+
const ci = require('is-ci');
|
|
118
|
+
let loglevel;
|
|
119
|
+
let progress;
|
|
120
|
+
/* istanbul ignore next */
|
|
121
|
+
if (ci || !process.stderr.isTTY || process.env.TERM === 'dumb') {
|
|
122
|
+
npmlog_1.default.disableColor();
|
|
123
|
+
progress = false;
|
|
124
|
+
}
|
|
125
|
+
else if (!process.stdout.isTTY) {
|
|
126
|
+
// stdout is being piped, don't log non-errors or progress bars
|
|
127
|
+
progress = false;
|
|
128
|
+
loglevel = 'error';
|
|
129
|
+
}
|
|
130
|
+
else if (process.stderr.isTTY) {
|
|
131
|
+
npmlog_1.default.enableColor();
|
|
132
|
+
npmlog_1.default.enableUnicode();
|
|
133
|
+
}
|
|
134
|
+
Object.defineProperty(this, 'envDefaults', {
|
|
135
|
+
value: {
|
|
136
|
+
ci,
|
|
137
|
+
progress,
|
|
138
|
+
loglevel,
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
configureOptions() {
|
|
143
|
+
// Command config object normalized to 'command' namespace
|
|
144
|
+
const commandConfig = this.project.config.command || {};
|
|
145
|
+
// The current command always overrides otherCommandConfigs
|
|
146
|
+
const overrides = [this.name, ...this.otherCommandConfigs].map((key) => commandConfig[key]);
|
|
147
|
+
this.options = defaultOptions(
|
|
148
|
+
// CLI flags, which if defined overrule subsequent values
|
|
149
|
+
this.argv,
|
|
150
|
+
// Namespaced command options from `lerna.json`
|
|
151
|
+
...overrides,
|
|
152
|
+
// Global options from `lerna.json`
|
|
153
|
+
this.project.config,
|
|
154
|
+
// Environmental defaults prepared in previous step
|
|
155
|
+
this.envDefaults);
|
|
156
|
+
}
|
|
157
|
+
configureProperties() {
|
|
158
|
+
var _a;
|
|
159
|
+
const { concurrency, sort, maxBuffer } = this.options;
|
|
160
|
+
this.concurrency = Math.max(1, +concurrency || DEFAULT_CONCURRENCY);
|
|
161
|
+
this.toposort = sort === undefined || sort;
|
|
162
|
+
this.execOpts = {
|
|
163
|
+
cwd: (_a = this.project.rootPath) !== null && _a !== void 0 ? _a : '',
|
|
164
|
+
maxBuffer,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
configureLogging() {
|
|
168
|
+
const { loglevel } = this.options;
|
|
169
|
+
if (loglevel) {
|
|
170
|
+
npmlog_1.default.level = loglevel;
|
|
171
|
+
}
|
|
172
|
+
// handle log.success()
|
|
173
|
+
npmlog_1.default.addLevel('success', 3001, { fg: 'green', bold: true });
|
|
174
|
+
// create logger that subclasses use
|
|
175
|
+
Object.defineProperty(this, 'logger', {
|
|
176
|
+
value: npmlog_1.default.newGroup(this.name),
|
|
177
|
+
});
|
|
178
|
+
// emit all buffered logs at configured level and higher
|
|
179
|
+
npmlog_1.default.resume();
|
|
180
|
+
}
|
|
181
|
+
enableProgressBar() {
|
|
182
|
+
/* istanbul ignore next */
|
|
183
|
+
if (this.options.progress !== false) {
|
|
184
|
+
npmlog_1.default.enableProgress();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
gitInitialized() {
|
|
188
|
+
var _a;
|
|
189
|
+
const opts = {
|
|
190
|
+
cwd: (_a = this.project.rootPath) !== null && _a !== void 0 ? _a : '',
|
|
191
|
+
// don't throw, just want boolean
|
|
192
|
+
reject: false,
|
|
193
|
+
// only return code, no stdio needed
|
|
194
|
+
stdio: 'ignore',
|
|
195
|
+
};
|
|
196
|
+
const gitCommand = 'git';
|
|
197
|
+
const gitArgs = ['rev-parse'];
|
|
198
|
+
if (this.options.gitDryRun) {
|
|
199
|
+
(0, child_process_1.logExecCommand)(gitCommand, gitArgs);
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
return execa_1.default.sync(gitCommand, gitArgs, opts).exitCode === 0;
|
|
203
|
+
}
|
|
204
|
+
logOutput(...args) {
|
|
205
|
+
this.logger.clearProgress();
|
|
206
|
+
console.log(...args);
|
|
207
|
+
this.logger.showProgress();
|
|
208
|
+
}
|
|
209
|
+
runValidations() {
|
|
210
|
+
if ((this.options.since !== undefined || this.requiresGit) && !this.gitInitialized()) {
|
|
211
|
+
throw new validation_error_1.ValidationError('ENOGIT', 'The git binary was not found, or this is not a git repository.');
|
|
212
|
+
}
|
|
213
|
+
if (!this.project.manifest) {
|
|
214
|
+
throw new validation_error_1.ValidationError('ENOPKG', 'No `package.json` file found, make sure it exist in the root of your project.');
|
|
215
|
+
}
|
|
216
|
+
if (!this.project.version) {
|
|
217
|
+
throw new validation_error_1.ValidationError('ENOLERNA', 'No `lerna.json` file exist, please create one in the root of your project.');
|
|
218
|
+
}
|
|
219
|
+
if (this.options.independent && !this.project.isIndependent()) {
|
|
220
|
+
throw new validation_error_1.ValidationError('EVERSIONMODE', (0, dedent_1.default) `
|
|
221
|
+
You ran lerna-lite with --independent or -i, but the repository is not set to independent mode.
|
|
222
|
+
To use independent mode you need to set lerna.json's "version" property to "independent".
|
|
223
|
+
Then you won't need to pass the --independent or -i flags.
|
|
224
|
+
`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
async runPreparations() {
|
|
228
|
+
if (!this.composed && this.project.isIndependent()) {
|
|
229
|
+
// composed commands have already logged the independent status
|
|
230
|
+
npmlog_1.default.info('versioning', 'independent');
|
|
231
|
+
}
|
|
232
|
+
if (!this.composed && this.options.ci) {
|
|
233
|
+
npmlog_1.default.info('ci', 'enabled');
|
|
234
|
+
}
|
|
235
|
+
const packages = await this.project.getPackages();
|
|
236
|
+
this.packageGraph = new package_graph_1.PackageGraph(packages);
|
|
237
|
+
}
|
|
238
|
+
async runCommand() {
|
|
239
|
+
const proceed = await this.initialize();
|
|
240
|
+
if (proceed !== false) {
|
|
241
|
+
return this.execute();
|
|
242
|
+
}
|
|
243
|
+
// early exits set their own exitCode (if non-zero)
|
|
244
|
+
}
|
|
245
|
+
initialize() {
|
|
246
|
+
throw new validation_error_1.ValidationError(this.name, 'initialize() needs to be implemented.');
|
|
247
|
+
}
|
|
248
|
+
execute() {
|
|
249
|
+
throw new validation_error_1.ValidationError(this.name, 'execute() needs to be implemented.');
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
exports.Command = Command;
|
|
253
|
+
// _.defaults(), but simplified:
|
|
254
|
+
// * All inputs are plain objects
|
|
255
|
+
// * Only own keys, not inherited
|
|
256
|
+
function defaultOptions(...sources) {
|
|
257
|
+
const options = {};
|
|
258
|
+
for (const source of sources) {
|
|
259
|
+
if (source !== null && source !== undefined) {
|
|
260
|
+
for (const key of Object.keys(source)) {
|
|
261
|
+
if (options[key] === undefined) {
|
|
262
|
+
options[key] = source[key];
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return options;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CHANGELOG_HEADER = exports.COMMIT_GUIDELINE = exports.BLANK_LINE = exports.EOL = void 0;
|
|
4
|
+
exports.EOL = '\n';
|
|
5
|
+
exports.BLANK_LINE = exports.EOL + exports.EOL;
|
|
6
|
+
exports.COMMIT_GUIDELINE = 'See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.';
|
|
7
|
+
exports.CHANGELOG_HEADER = [
|
|
8
|
+
'# Change Log',
|
|
9
|
+
'%s',
|
|
10
|
+
'All notable changes to this project will be documented in this file.',
|
|
11
|
+
exports.COMMIT_GUIDELINE,
|
|
12
|
+
].join(exports.EOL);
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/conventional-commits/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,IAAI,CAAC;AACX,QAAA,UAAU,GAAG,WAAG,GAAG,WAAG,CAAC;AACvB,QAAA,gBAAgB,GAC3B,oFAAoF,CAAC;AAC1E,QAAA,gBAAgB,GAAG;IAC9B,cAAc;IACd,IAAI;IACJ,sEAAsE;IACtE,wBAAgB;CACjB,CAAC,IAAI,CAAC,WAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class GetChangelogConfig {
|
|
2
|
+
static cfgCache: Map<string, any>;
|
|
3
|
+
static isFunction(config: any): boolean;
|
|
4
|
+
static resolveConfigPromise(presetPackageName: string, presetConfig: any): any;
|
|
5
|
+
/**
|
|
6
|
+
* @param {import('..').ChangelogPresetConfig} [changelogPreset]
|
|
7
|
+
* @param {string} [rootPath]
|
|
8
|
+
*/
|
|
9
|
+
static getChangelogConfig(changelogPreset: string | {
|
|
10
|
+
name: string;
|
|
11
|
+
} | undefined, rootPath: string): Promise<any>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GetChangelogConfig = void 0;
|
|
7
|
+
const npmlog_1 = __importDefault(require("npmlog"));
|
|
8
|
+
const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
|
|
9
|
+
const validation_error_1 = require("../validation-error");
|
|
10
|
+
class GetChangelogConfig {
|
|
11
|
+
static isFunction(config) {
|
|
12
|
+
return Object.prototype.toString.call(config) === '[object Function]';
|
|
13
|
+
}
|
|
14
|
+
static resolveConfigPromise(presetPackageName, presetConfig) {
|
|
15
|
+
npmlog_1.default.verbose('getChangelogConfig', 'Attempting to resolve preset %j', presetPackageName);
|
|
16
|
+
let config = require(presetPackageName);
|
|
17
|
+
npmlog_1.default.info('getChangelogConfig', 'Successfully resolved preset %j', presetPackageName);
|
|
18
|
+
if (this.isFunction(config)) {
|
|
19
|
+
// try assuming config builder function first
|
|
20
|
+
config = config(presetConfig);
|
|
21
|
+
}
|
|
22
|
+
return config;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @param {import('..').ChangelogPresetConfig} [changelogPreset]
|
|
26
|
+
* @param {string} [rootPath]
|
|
27
|
+
*/
|
|
28
|
+
static getChangelogConfig(changelogPreset = 'conventional-changelog-angular', rootPath) {
|
|
29
|
+
const presetName = typeof changelogPreset === 'string' ? changelogPreset : changelogPreset.name;
|
|
30
|
+
const presetConfig = typeof changelogPreset === 'object' ? changelogPreset : {};
|
|
31
|
+
const cacheKey = `${presetName}${presetConfig ? JSON.stringify(presetConfig) : ''}`;
|
|
32
|
+
let config = GetChangelogConfig.cfgCache.get(cacheKey);
|
|
33
|
+
if (!config) {
|
|
34
|
+
let presetPackageName = presetName;
|
|
35
|
+
// https://github.com/npm/npm-package-arg#result-object
|
|
36
|
+
const parsed = (0, npm_package_arg_1.default)(presetPackageName, rootPath);
|
|
37
|
+
npmlog_1.default.verbose('getChangelogConfig', 'using preset %j', presetPackageName);
|
|
38
|
+
npmlog_1.default.silly('npa', parsed);
|
|
39
|
+
if (parsed.type === 'directory') {
|
|
40
|
+
if (parsed.raw[0] === '@') {
|
|
41
|
+
// npa parses scoped subpath reference as a directory
|
|
42
|
+
parsed.name = parsed.raw;
|
|
43
|
+
parsed.scope = parsed.raw.substring(0, parsed.raw.indexOf('/'));
|
|
44
|
+
// un-scoped subpath shorthand handled in first catch block
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
presetPackageName = parsed.fetchSpec;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (parsed.type === 'git' && parsed.hosted && parsed.hosted.default === 'shortcut') {
|
|
51
|
+
// probably a shorthand subpath, e.g. 'foo/bar'
|
|
52
|
+
parsed.name = parsed.raw;
|
|
53
|
+
}
|
|
54
|
+
// Maybe it doesn't need an implicit 'conventional-changelog-' prefix?
|
|
55
|
+
try {
|
|
56
|
+
config = this.resolveConfigPromise(presetPackageName, presetConfig);
|
|
57
|
+
GetChangelogConfig.cfgCache.set(cacheKey, config);
|
|
58
|
+
// early exit, yay
|
|
59
|
+
return Promise.resolve(config);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
npmlog_1.default.verbose('getChangelogConfig', err.message);
|
|
63
|
+
npmlog_1.default.info('getChangelogConfig', 'Auto-prefixing conventional-changelog preset %j', presetName);
|
|
64
|
+
// probably a deep shorthand subpath :P
|
|
65
|
+
parsed.name = parsed.raw;
|
|
66
|
+
}
|
|
67
|
+
if (parsed.name.indexOf('conventional-changelog-') < 0) {
|
|
68
|
+
// implicit 'conventional-changelog-' prefix
|
|
69
|
+
const parts = parsed.name.split('/');
|
|
70
|
+
const start = parsed.scope ? 1 : 0;
|
|
71
|
+
// foo => conventional-changelog-foo
|
|
72
|
+
// @scope/foo => @scope/conventional-changelog-foo
|
|
73
|
+
parts.splice(start, 1, `conventional-changelog-${parts[start]}`);
|
|
74
|
+
// _technically_ supports 'foo/lib/bar.js', but that's gross
|
|
75
|
+
presetPackageName = parts.join('/');
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
config = this.resolveConfigPromise(presetPackageName, presetConfig);
|
|
79
|
+
GetChangelogConfig.cfgCache.set(cacheKey, config);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
npmlog_1.default.warn('getChangelogConfig', err.message);
|
|
83
|
+
throw new validation_error_1.ValidationError('EPRESET', `Unable to load conventional-changelog preset '${presetName}'${presetName !== presetPackageName ? ` (${presetPackageName})` : ''}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// the core presets are bloody Q.all() spreads
|
|
87
|
+
return Promise.resolve(config);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.GetChangelogConfig = GetChangelogConfig;
|
|
91
|
+
GetChangelogConfig.cfgCache = new Map();
|
|
92
|
+
//# sourceMappingURL=get-changelog-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-changelog-config.js","sourceRoot":"","sources":["../../src/conventional-commits/get-changelog-config.ts"],"names":[],"mappings":"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"}
|