@centipod/cli
Advanced tools
Comparing version 0.0.1-alpha.3 to 0.0.1-alpha.4
@@ -1,6 +0,8 @@ | ||
export declare const semanticRelease: (identifier?: string | undefined) => Promise<void>; | ||
export declare const semanticReleaseInit: (options: { | ||
yes: boolean; | ||
access: string; | ||
dry: boolean; | ||
}) => Promise<void>; | ||
interface IPublishOptions { | ||
yes?: boolean; | ||
access?: string; | ||
dry?: boolean; | ||
} | ||
export declare const semanticRelease: (identifier: string, options: IPublishOptions) => Promise<void>; | ||
export declare const semanticReleaseInit: (options: IPublishOptions) => Promise<void>; | ||
export {}; |
@@ -12,6 +12,62 @@ "use strict"; | ||
const print_publish_events_1 = require("../utils/print-publish-events"); | ||
const semanticRelease = (identifier) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
const printSummary = (publisher) => { | ||
print_actions_1.printActions(publisher.actions); | ||
logger_1.logger.seperator(); | ||
if (publisher.actions.actions.filter((a) => a.error).length) { | ||
logger_1.logger.lf(); | ||
logger_1.logger.info('Cannot publish packages, errors were found when preparing releases'); | ||
process.exit(1); | ||
} | ||
if (!publisher.actions.actions.filter((a) => a.changed).length) { | ||
logger_1.logger.lf(); | ||
logger_1.logger.info('Nothing to publish'); | ||
process.exit(0); | ||
} | ||
}; | ||
const doPublish = (publisher, options) => { | ||
publisher.release({ | ||
access: options.access, | ||
dry: options.dry || false, | ||
}).subscribe((evt) => print_publish_events_1.printEvent(evt), (err) => { | ||
logger_1.logger.error(err); | ||
process.exit(1); | ||
}, () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
yield core_1.createSemanticReleaseTag(); | ||
logger_1.logger.lf(); | ||
logger_1.logger.info(logger_1.logger.centipod, logger_1.logger.success, chalk_1.default.green.bold(`Successfully initialized semantic release and published packages`, options.dry ? chalk_1.default.bgBlueBright.white(' DRY RUN ') : '')); | ||
process.exit(0); | ||
})); | ||
}; | ||
const promptPublishConfirmation = (publisher, options) => { | ||
if (options.yes) { | ||
doPublish(publisher, options); | ||
} | ||
else { | ||
const rl = readline_1.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout | ||
}); | ||
rl.question('Do you want to publish (y/N) ? ', (confirm) => { | ||
if (confirm === 'y' || confirm === 'yes') { | ||
logger_1.logger.seperator(); | ||
doPublish(publisher, options); | ||
} | ||
else { | ||
logger_1.logger.error('\nAborted by user'); | ||
process.exit(1); | ||
} | ||
}); | ||
} | ||
}; | ||
const semanticRelease = (identifier, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
const project = yield core_1.Project.loadProject(core_1.resloveProjectRoot()); | ||
logger_1.logger.lf(); | ||
logger_1.logger.info(logger_1.logger.centipod, chalk_1.default.white.bold('Initializing new semantic-release update')); | ||
logger_1.logger.seperator(); | ||
try { | ||
logger_1.logger.info(identifier); | ||
yield core_1.semanticRelease(); | ||
logger_1.logger.info('Based on conventional commit messages analysis, the following updates are advised :'); | ||
logger_1.logger.lf(); | ||
const publisher = yield core_1.semanticRelease(project, identifier); | ||
printSummary(publisher); | ||
promptPublishConfirmation(publisher, options); | ||
} | ||
@@ -43,47 +99,4 @@ catch (e) { | ||
const publisher = yield project.publishAll(); | ||
print_actions_1.printActions(publisher.actions); | ||
logger_1.logger.seperator(); | ||
if (publisher.actions.actions.filter((a) => a.error).length) { | ||
logger_1.logger.lf(); | ||
logger_1.logger.info('Cannot publish packages, errors were found when preparing releases'); | ||
process.exit(1); | ||
} | ||
if (!publisher.actions.actions.filter((a) => a.changed).length) { | ||
logger_1.logger.lf(); | ||
logger_1.logger.info('Nothing to publish'); | ||
process.exit(0); | ||
} | ||
const doPublish = () => { | ||
publisher.release({ | ||
access: options.access, | ||
dry: options.dry, | ||
}).subscribe((evt) => print_publish_events_1.printEvent(evt), (err) => { | ||
logger_1.logger.error(err); | ||
process.exit(1); | ||
}, () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
yield core_1.createSemanticReleaseTag(); | ||
logger_1.logger.lf(); | ||
logger_1.logger.info(logger_1.logger.centipod, logger_1.logger.success, chalk_1.default.green.bold(`Successfully initialized semantic release and published packages`, options.dry ? chalk_1.default.bgBlueBright.white(' DRY RUN ') : '')); | ||
process.exit(0); | ||
})); | ||
}; | ||
if (options.yes) { | ||
doPublish(); | ||
} | ||
else { | ||
const rl = readline_1.createInterface({ | ||
input: process.stdin, | ||
output: process.stdout | ||
}); | ||
rl.question('Do you want to publish (y/N) ? ', (confirm) => { | ||
if (confirm === 'y' || confirm === 'yes') { | ||
logger_1.logger.seperator(); | ||
doPublish(); | ||
} | ||
else { | ||
logger_1.logger.error('\nAborted by user'); | ||
process.exit(1); | ||
} | ||
}); | ||
} | ||
printSummary(publisher); | ||
promptPublishConfirmation(publisher, options); | ||
} | ||
@@ -90,0 +103,0 @@ catch (e) { |
@@ -82,5 +82,5 @@ #!/usr/bin/env node | ||
.description('publish affected packages using semantic versioning based on coventional changelog') | ||
.action((identifier) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
.action((identifier, _options, cmd) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
return yield commandWrapper(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
semantic_release_1.semanticRelease(identifier); | ||
semantic_release_1.semanticRelease(identifier, cmd._optionValues); | ||
}), true); | ||
@@ -87,0 +87,0 @@ })); |
{ | ||
"name": "@centipod/cli", | ||
"version": "0.0.1-alpha.3", | ||
"version": "0.0.1-alpha.4", | ||
"description": "Monorepo utils", | ||
@@ -17,3 +17,3 @@ "author": "Mario Arnautou", | ||
"dependencies": { | ||
"@centipod/core": "0.0.1-alpha.3", | ||
"@centipod/core": "0.0.1-alpha.4", | ||
"chalk": "^4.1.1", | ||
@@ -20,0 +20,0 @@ "commander": "^7.2.0" |
25269
546
+ Added@babel/code-frame@7.26.2(transitive)
+ Added@babel/helper-validator-identifier@7.25.9(transitive)
+ Added@centipod/core@0.0.1-alpha.4(transitive)
+ Added@types/minimist@1.2.5(transitive)
+ Added@types/normalize-package-data@2.4.4(transitive)
+ AddedJSONStream@1.3.5(transitive)
+ Addedarrify@1.0.1(transitive)
+ Addedcamelcase@5.3.1(transitive)
+ Addedcamelcase-keys@6.2.2(transitive)
+ Addedconventional-commits-parser@3.2.4(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addeddecamelize-keys@1.1.1(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addedfind-up@4.1.0(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedhard-rejection@2.1.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhosted-git-info@2.8.94.1.0(transitive)
+ Addedindent-string@4.0.0(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-core-module@2.16.1(transitive)
+ Addedis-plain-obj@1.1.0(transitive)
+ Addedis-text-path@1.0.1(transitive)
+ Addedjs-tokens@4.0.0(transitive)
+ Addedjson-parse-even-better-errors@2.3.1(transitive)
+ Addedjsonparse@1.3.1(transitive)
+ Addedkind-of@6.0.3(transitive)
+ Addedlines-and-columns@1.2.4(transitive)
+ Addedlocate-path@5.0.0(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlru-cache@6.0.0(transitive)
+ Addedmap-obj@1.0.14.3.0(transitive)
+ Addedmeow@8.1.2(transitive)
+ Addedmin-indent@1.0.1(transitive)
+ Addedminimist-options@4.1.0(transitive)
+ Addednormalize-package-data@2.5.03.0.3(transitive)
+ Addedp-limit@2.3.0(transitive)
+ Addedp-locate@4.1.0(transitive)
+ Addedp-try@2.2.0(transitive)
+ Addedparse-json@5.2.0(transitive)
+ Addedpath-exists@4.0.0(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpicocolors@1.1.1(transitive)
+ Addedquick-lru@4.0.1(transitive)
+ Addedread-pkg@5.2.0(transitive)
+ Addedread-pkg-up@7.0.1(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedredent@3.0.0(transitive)
+ Addedresolve@1.22.10(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsemver@5.7.2(transitive)
+ Addedspdx-correct@3.2.0(transitive)
+ Addedspdx-exceptions@2.5.0(transitive)
+ Addedspdx-expression-parse@3.0.1(transitive)
+ Addedspdx-license-ids@3.0.21(transitive)
+ Addedsplit2@3.2.2(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedstrip-indent@3.0.0(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedtext-extensions@1.9.0(transitive)
+ Addedthrough@2.3.8(transitive)
+ Addedthrough2@4.0.2(transitive)
+ Addedtrim-newlines@3.0.1(transitive)
+ Addedtype-fest@0.18.10.6.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedvalidate-npm-package-license@3.0.4(transitive)
+ Addedyallist@4.0.0(transitive)
+ Addedyargs-parser@20.2.9(transitive)
- Removed@centipod/core@0.0.1-alpha.3(transitive)
Updated@centipod/core@0.0.1-alpha.4