@ioffice/tc-builder
Advanced tools
Comparing version 2.1.3 to 3.0.0-beta.1902252323
@@ -1,2 +0,2 @@ | ||
import { Environment, IO, Git, Github } from '../services'; | ||
import { Environment, Git, Github, IO } from '../services'; | ||
/** | ||
@@ -21,2 +21,10 @@ * ### AbstractBuilder | ||
/** | ||
* Gets called whenever we want to create a release. The implementation should define the | ||
* operations that need to be done to help the user create a release of the library. | ||
*/ | ||
abstract releaseSetup(param: { | ||
currentVersion: string; | ||
newVersion: string; | ||
}): Promise<void>; | ||
/** | ||
* Gets called right before the `publish` method. This is the place where we | ||
@@ -77,2 +85,15 @@ * can rearrange the files in the appropriate directories. | ||
protected createPreRelease(): Promise<string>; | ||
/** | ||
* Setup the release process. It helps us create the release branch and fill out the required | ||
* fields: | ||
* | ||
* - package.json changes the version | ||
* - README.md needs to be replaced all occurrences of the old version for the new one. | ||
* - CHANGELOG.md needs to set up the links | ||
* | ||
* After this it creates a commit stating the setup is done and that we need to write the | ||
* summary. It is still the responsibility of the user creating the release to commit the summary, | ||
* push the release branch and create the PR. | ||
*/ | ||
protected runReleaseSetup(): Promise<string>; | ||
private runBuilder; | ||
@@ -79,0 +100,0 @@ protected handleMasterBranch(): Promise<void>; |
@@ -8,4 +8,5 @@ "use strict"; | ||
*/ /** */ | ||
var semver = require("semver"); | ||
var services_1 = require("../services"); | ||
var Util_1 = require("../Util"); | ||
var services_1 = require("../services"); | ||
/** | ||
@@ -36,3 +37,3 @@ * ### AbstractBuilder | ||
case 0: | ||
_a.trys.push([0, 5, , 6]); | ||
_a.trys.push([0, 7, , 8]); | ||
if (!this.env.isPreRelease) return [3 /*break*/, 2]; | ||
@@ -42,12 +43,18 @@ return [4 /*yield*/, this.runStep('preRelease', 'creating pre-release', this.createPreRelease)]; | ||
_a.sent(); | ||
return [3 /*break*/, 4]; | ||
case 2: return [4 /*yield*/, this.runStep('TC-Builder', 'running tc-builder', this.runBuilder)]; | ||
return [3 /*break*/, 6]; | ||
case 2: | ||
if (!this.env.isReleaseSetup) return [3 /*break*/, 4]; | ||
return [4 /*yield*/, this.runStep('releaseSetup', 'running release-setup', this.runReleaseSetup)]; | ||
case 3: | ||
_a.sent(); | ||
_a.label = 4; | ||
case 4: return [3 /*break*/, 6]; | ||
return [3 /*break*/, 6]; | ||
case 4: return [4 /*yield*/, this.runStep('TC-Builder', 'running tc-builder', this.runBuilder)]; | ||
case 5: | ||
_a.sent(); | ||
_a.label = 6; | ||
case 6: return [3 /*break*/, 8]; | ||
case 7: | ||
err_1 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_1)]; | ||
case 6: return [2 /*return*/, 0]; | ||
case 8: return [2 /*return*/, 0]; | ||
} | ||
@@ -137,5 +144,93 @@ }); | ||
}; | ||
/** | ||
* Setup the release process. It helps us create the release branch and fill out the required | ||
* fields: | ||
* | ||
* - package.json changes the version | ||
* - README.md needs to be replaced all occurrences of the old version for the new one. | ||
* - CHANGELOG.md needs to set up the links | ||
* | ||
* After this it creates a commit stating the setup is done and that we need to write the | ||
* summary. It is still the responsibility of the user creating the release to commit the summary, | ||
* push the release branch and create the PR. | ||
*/ | ||
AbstractBuilder.prototype.runReleaseSetup = function () { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var currentBranch, err_6, files, err_7, currentVersion, newVersion, err_8, failure, err_9; | ||
return tslib_1.__generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, this.git.getBranch()]; | ||
case 1: | ||
currentBranch = _a.sent(); | ||
if (currentBranch !== 'master') { | ||
return [2 /*return*/, this.io.failure('releaseSetup may only run on the master branch')]; | ||
} | ||
return [3 /*break*/, 3]; | ||
case 2: | ||
err_6 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_6)]; | ||
case 3: | ||
_a.trys.push([3, 5, , 6]); | ||
return [4 /*yield*/, Util_1.util.getModifiedFiles()]; | ||
case 4: | ||
files = _a.sent(); | ||
if (files.length > 0) { | ||
return [2 /*return*/, this.io.failure("releaseSetup requires everything to be committed and pushed")]; | ||
} | ||
return [3 /*break*/, 6]; | ||
case 5: | ||
err_7 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Unable to obtain modified files: " + err_7)]; | ||
case 6: | ||
currentVersion = this.env.packageVersion; | ||
newVersion = ''; | ||
if (!currentVersion) { | ||
return [2 /*return*/, this.io.failure("Unable to obtain the current package version")]; | ||
} | ||
if (!semver.parse(currentVersion)) { | ||
return [2 /*return*/, this.io.failure("Current version is not parsable: " + currentVersion)]; | ||
} | ||
_a.label = 7; | ||
case 7: | ||
_a.trys.push([7, 10, , 11]); | ||
return [4 /*yield*/, this.io.promptForNewVersion(currentVersion)]; | ||
case 8: | ||
newVersion = _a.sent(); | ||
return [4 /*yield*/, this.git.switchBranch('release', true)]; | ||
case 9: | ||
_a.sent(); | ||
return [3 /*break*/, 11]; | ||
case 10: | ||
err_8 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_8)]; | ||
case 11: | ||
failure = ''; | ||
_a.label = 12; | ||
case 12: | ||
_a.trys.push([12, 14, , 15]); | ||
return [4 /*yield*/, this.runStep('releaseSetup', 'running releaseSetup', this.releaseSetup, { | ||
currentVersion: currentVersion, | ||
newVersion: newVersion, | ||
})]; | ||
case 13: | ||
_a.sent(); | ||
return [3 /*break*/, 15]; | ||
case 14: | ||
err_9 = _a.sent(); | ||
failure = err_9; | ||
return [3 /*break*/, 15]; | ||
case 15: | ||
if (failure) { | ||
return [2 /*return*/, this.io.failure(failure)]; | ||
} | ||
return [2 /*return*/, this.io.success(newVersion, newVersion ? "setup for version " + newVersion + " complete" : '')]; | ||
} | ||
}); | ||
}); | ||
}; | ||
AbstractBuilder.prototype.runBuilder = function () { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var target, err_6; | ||
var target, err_10; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -169,4 +264,4 @@ switch (_a.label) { | ||
case 7: | ||
err_6 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_6)]; | ||
err_10 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_10)]; | ||
case 8: return [2 /*return*/]; | ||
@@ -179,3 +274,3 @@ } | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var version, err_7, err_8, msg; | ||
var version, err_11, err_12, msg; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -199,4 +294,4 @@ switch (_a.label) { | ||
case 4: | ||
err_7 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_7)]; | ||
err_11 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_11)]; | ||
case 5: | ||
@@ -209,4 +304,4 @@ _a.trys.push([5, 7, , 8]); | ||
case 7: | ||
err_8 = _a.sent(); | ||
this.io.warn(err_8); | ||
err_12 = _a.sent(); | ||
this.io.warn(err_12); | ||
return [3 /*break*/, 8]; | ||
@@ -225,3 +320,3 @@ case 8: return [3 /*break*/, 10]; | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var err_9, err_10; | ||
var err_13, err_14; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -248,4 +343,4 @@ switch (_a.label) { | ||
case 7: | ||
err_9 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_9)]; | ||
err_13 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_13)]; | ||
case 8: | ||
@@ -258,4 +353,4 @@ _a.trys.push([8, 10, , 11]); | ||
case 10: | ||
err_10 = _a.sent(); | ||
this.io.warn(err_10); | ||
err_14 = _a.sent(); | ||
this.io.warn(err_14); | ||
return [3 /*break*/, 11]; | ||
@@ -267,5 +362,5 @@ case 11: return [2 /*return*/, Promise.resolve()]; | ||
}; | ||
AbstractBuilder.prototype.runStep = function (name, desc, fn) { | ||
AbstractBuilder.prototype.runStep = function (name, desc, fn, arg) { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var result, err_11; | ||
var result, err_15; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -279,3 +374,3 @@ switch (_a.label) { | ||
_a.trys.push([1, 3, , 4]); | ||
return [4 /*yield*/, fn.call(this)]; | ||
return [4 /*yield*/, fn.call(this, arg)]; | ||
case 2: | ||
@@ -286,5 +381,5 @@ result = _a.sent(); | ||
case 3: | ||
err_11 = _a.sent(); | ||
err_15 = _a.sent(); | ||
this.io.closeBlock(this.step); | ||
return [2 /*return*/, Promise.reject(err_11)]; | ||
throw err_15; | ||
case 4: return [2 /*return*/]; | ||
@@ -291,0 +386,0 @@ } |
@@ -19,3 +19,16 @@ import { AbstractBuilder } from './AbstractBuilder'; | ||
private verifyChangeLog; | ||
/** | ||
* The npm publish setup requires 3 things to happen: | ||
* | ||
* - update package.json | ||
* - update README.md | ||
* - update CHANGELOG.md | ||
*/ | ||
releaseSetup({ currentVersion, newVersion }: { | ||
currentVersion: string; | ||
newVersion: string; | ||
}): Promise<void>; | ||
private updateChangeLog; | ||
private updateREADME; | ||
} | ||
export { NPMBuilder, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var tslib_1 = require("tslib"); | ||
var fs = require("fs"); | ||
var Mocha = require("mocha"); | ||
var fs = require("fs"); | ||
var moment = require("moment"); | ||
var semver = require("semver"); | ||
var services_1 = require("../services"); | ||
var Util_1 = require("../Util"); | ||
var services_1 = require("../services"); | ||
var AbstractBuilder_1 = require("./AbstractBuilder"); | ||
@@ -191,4 +191,78 @@ var NPMBuilder = /** @class */ (function (_super) { | ||
}; | ||
/** | ||
* The npm publish setup requires 3 things to happen: | ||
* | ||
* - update package.json | ||
* - update README.md | ||
* - update CHANGELOG.md | ||
*/ | ||
NPMBuilder.prototype.releaseSetup = function (_a) { | ||
var currentVersion = _a.currentVersion, newVersion = _a.newVersion; | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var firstCommit, changeLogData, newData, err_5, readmeData, newData; | ||
return tslib_1.__generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
// package.json | ||
Util_1.util.changePackageVersion(newVersion); | ||
_b.label = 1; | ||
case 1: | ||
_b.trys.push([1, 3, , 4]); | ||
return [4 /*yield*/, this.git.getFirstCommit()]; | ||
case 2: | ||
firstCommit = _b.sent(); | ||
changeLogData = fs.readFileSync('./CHANGELOG.md'); | ||
newData = this.updateChangeLog(changeLogData.toString(), newVersion, firstCommit); | ||
fs.writeFileSync('./CHANGELOG.md', newData); | ||
return [3 /*break*/, 4]; | ||
case 3: | ||
err_5 = _b.sent(); | ||
this.io.warn("Unable to update `CHANGELOG.md`: " + err_5.toString()); | ||
return [2 /*return*/]; | ||
case 4: | ||
// README.md | ||
try { | ||
readmeData = fs.readFileSync('./README.md'); | ||
newData = this.updateREADME(readmeData.toString(), currentVersion, newVersion); | ||
fs.writeFileSync('./README.md', newData); | ||
} | ||
catch (err) { | ||
this.io.warn("Unable to update `README.md`: " + err.toString()); | ||
return [2 /*return*/]; | ||
} | ||
this.io.success(currentVersion + " -> " + newVersion); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
NPMBuilder.prototype.updateChangeLog = function (content, newVersion, firstCommit) { | ||
var _a = content.split('## [Unreleased]'), header = _a[0], main = _a[1]; | ||
var entries = main.split('[Unreleased]:')[0]; | ||
var lines = entries.split('\n'); | ||
var versions = lines | ||
.filter(function (x) { return x.startsWith('## ['); }) | ||
.map(function (line) { return (line.match(/## \[(.*)]/) || [])[1]; }) | ||
.filter(function (x) { return x; }); | ||
versions.unshift(newVersion); | ||
versions.push(firstCommit); | ||
var owner = this.env.owner; | ||
var repo = this.env.repo; | ||
var links = ["[Unreleased]: https://github.com/" + owner + "/" + repo + "/compare/" + newVersion + "...HEAD"]; | ||
for (var i = 0; i < versions.length - 1; i++) { | ||
links.push("[" + versions[i] + "]: https://github.com/" + owner + "/" + repo + "/compare/" + versions[i + 1] + "..." + versions[i]); | ||
} | ||
return [ | ||
header, | ||
'## [Unreleased]\n\n', | ||
"## [" + newVersion + "] - " + moment().format('LL') + "\n\n", | ||
entries, | ||
links.join('\n'), | ||
].join(''); | ||
}; | ||
NPMBuilder.prototype.updateREADME = function (content, currentVersion, newVersion) { | ||
return content.split(currentVersion).join(newVersion); | ||
}; | ||
return NPMBuilder; | ||
}(AbstractBuilder_1.AbstractBuilder)); | ||
exports.NPMBuilder = NPMBuilder; |
@@ -1,3 +0,3 @@ | ||
import { TypedObject, ExitCode, IProjectResults, IProjectStatus, IFileMessages } from './Interfaces'; | ||
import * as ts from 'typescript'; | ||
import { ExitCode, IFileMessages, IProjectResults, IProjectStatus, TypedObject } from './Interfaces'; | ||
declare function compile(program: ts.Program, tsOptions: ts.CompilerOptions, tsLintConfigPath?: string, verbose?: boolean): TypedObject<IFileMessages>; | ||
@@ -4,0 +4,0 @@ declare function compileProject(tsConfigPath: string, tsLintConfigPath?: string, verbose?: boolean): IProjectResults; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var Interfaces_1 = require("./Interfaces"); | ||
var fs = require("fs"); | ||
var ts = require("typescript"); | ||
var Lint = require("tslint"); | ||
var pth = require("path"); | ||
var ProgressBar = require("progress"); | ||
var Lint = require("tslint"); | ||
var ts = require("typescript"); | ||
var services_1 = require("../services"); | ||
var Formatter_1 = require("./Formatter"); | ||
var Interfaces_1 = require("./Interfaces"); | ||
function cout(msg, verbose) { | ||
@@ -12,0 +12,0 @@ if (verbose) { |
@@ -1,2 +0,2 @@ | ||
import { TypedObject, IFileMessages, IProjectStatus, IProjectResults } from './Interfaces'; | ||
import { IFileMessages, IProjectResults, IProjectStatus, TypedObject } from './Interfaces'; | ||
declare function formatResults(results: TypedObject<IFileMessages>): string; | ||
@@ -3,0 +3,0 @@ declare function formatProjectResults(projectStatus: IProjectStatus, projectResults: IProjectResults, ci?: boolean, ciLimit?: number): string; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var colors = require("colors"); | ||
var Interfaces_1 = require("./Interfaces"); | ||
var colors = require("colors"); | ||
function align(msg, alignment, size) { | ||
@@ -165,3 +165,6 @@ var repeatNumber = Math.max(size - msg.length, 0); | ||
refs.forEach(function (msg) { | ||
var msgReferences = obj.references.filter(function (x) { return x.fileInfo.absPath === msg; }); | ||
var locations = msgReferences.map(function (x) { return x.message.line.toString().red + ":" + x.message.character; }); | ||
buffer.push(" - " + msg + "\n"); | ||
buffer.push(" " + locations.join(', ') + "\n"); | ||
}); | ||
@@ -168,0 +171,0 @@ if (totalRefs < uniqueFileNames.length) { |
@@ -1,4 +0,3 @@ | ||
import { MessageCategory, TypedObject, ExitCode, ITSMessage, IFileInfo, IFileMessages, IMessageInfo, IMessageReference, IProjectResults, IProjectStatus } from './Interfaces'; | ||
import { compile, compileProject, compileCLI, getProjectStatus } from './Compiler'; | ||
import { formatResults, formatProjectResults, formatFailureMessage } from './Formatter'; | ||
export { MessageCategory, TypedObject, ExitCode, ITSMessage, IFileInfo, IFileMessages, IMessageInfo, IMessageReference, IProjectResults, IProjectStatus, compile, compileProject, compileCLI, getProjectStatus, formatResults, formatProjectResults, formatFailureMessage, }; | ||
export * from './Compiler'; | ||
export * from './Formatter'; | ||
export * from './Interfaces'; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var Interfaces_1 = require("./Interfaces"); | ||
exports.ExitCode = Interfaces_1.ExitCode; | ||
var Compiler_1 = require("./Compiler"); | ||
exports.compile = Compiler_1.compile; | ||
exports.compileProject = Compiler_1.compileProject; | ||
exports.compileCLI = Compiler_1.compileCLI; | ||
exports.getProjectStatus = Compiler_1.getProjectStatus; | ||
var Formatter_1 = require("./Formatter"); | ||
exports.formatResults = Formatter_1.formatResults; | ||
exports.formatProjectResults = Formatter_1.formatProjectResults; | ||
exports.formatFailureMessage = Formatter_1.formatFailureMessage; | ||
var tslib_1 = require("tslib"); | ||
tslib_1.__exportStar(require("./Compiler"), exports); | ||
tslib_1.__exportStar(require("./Formatter"), exports); | ||
tslib_1.__exportStar(require("./Interfaces"), exports); |
@@ -1,6 +0,6 @@ | ||
import { MessageCategory, TypedObject, ExitCode, ITSMessage, IFileInfo, IFileMessages, IMessageInfo, IMessageReference, IProjectResults, IProjectStatus, compile, compileProject, compileCLI, getProjectStatus, formatResults, formatProjectResults, formatFailureMessage } from './compiler'; | ||
import { AbstractBuilder, IBuilder, NPMBuilder, runBuilder } from './builders'; | ||
import { IField, IAction, IAttachment, AbstractSlack, ISlacker, TravisSlack, runSlacker } from './slack'; | ||
import { CI, Environment, IBuilderMessages, IO, Git, Github, Provider } from './services'; | ||
import { util, Util } from './Util'; | ||
import { ExitCode, IFileInfo, IFileMessages, IMessageInfo, IMessageReference, IProjectResults, IProjectStatus, ITSMessage, MessageCategory, TypedObject, compile, compileCLI, compileProject, formatFailureMessage, formatProjectResults, formatResults, getProjectStatus } from './compiler'; | ||
import { CI, Environment, Git, Github, IBuilderMessages, IO, Provider } from './services'; | ||
import { AbstractSlack, IAction, IAttachment, IField, ISlacker, TravisSlack, runSlacker } from './slack'; | ||
import { Util, util } from './Util'; | ||
export { MessageCategory, TypedObject, ExitCode, ITSMessage, IFileInfo, IFileMessages, IMessageInfo, IMessageReference, IProjectResults, IProjectStatus, compile, compileProject, compileCLI, getProjectStatus, formatResults, formatProjectResults, formatFailureMessage, AbstractBuilder, IBuilder, NPMBuilder, runBuilder, IField, IAction, IAttachment, AbstractSlack, ISlacker, TravisSlack, runSlacker, CI, Environment, IBuilderMessages, IO, Git, Github, Provider, util, Util, }; |
28
index.js
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var builders_1 = require("./builders"); | ||
exports.AbstractBuilder = builders_1.AbstractBuilder; | ||
exports.NPMBuilder = builders_1.NPMBuilder; | ||
exports.runBuilder = builders_1.runBuilder; | ||
var compiler_1 = require("./compiler"); | ||
exports.ExitCode = compiler_1.ExitCode; | ||
exports.compile = compiler_1.compile; | ||
exports.compileCLI = compiler_1.compileCLI; | ||
exports.compileProject = compiler_1.compileProject; | ||
exports.compileCLI = compiler_1.compileCLI; | ||
exports.formatFailureMessage = compiler_1.formatFailureMessage; | ||
exports.formatProjectResults = compiler_1.formatProjectResults; | ||
exports.formatResults = compiler_1.formatResults; | ||
exports.getProjectStatus = compiler_1.getProjectStatus; | ||
exports.formatResults = compiler_1.formatResults; | ||
exports.formatProjectResults = compiler_1.formatProjectResults; | ||
exports.formatFailureMessage = compiler_1.formatFailureMessage; | ||
var builders_1 = require("./builders"); | ||
exports.AbstractBuilder = builders_1.AbstractBuilder; | ||
exports.NPMBuilder = builders_1.NPMBuilder; | ||
exports.runBuilder = builders_1.runBuilder; | ||
var slack_1 = require("./slack"); | ||
exports.AbstractSlack = slack_1.AbstractSlack; | ||
exports.TravisSlack = slack_1.TravisSlack; | ||
exports.runSlacker = slack_1.runSlacker; | ||
var services_1 = require("./services"); | ||
exports.CI = services_1.CI; | ||
exports.Environment = services_1.Environment; | ||
exports.IO = services_1.IO; | ||
exports.Git = services_1.Git; | ||
exports.Github = services_1.Github; | ||
exports.IO = services_1.IO; | ||
exports.Provider = services_1.Provider; | ||
var slack_1 = require("./slack"); | ||
exports.AbstractSlack = slack_1.AbstractSlack; | ||
exports.TravisSlack = slack_1.TravisSlack; | ||
exports.runSlacker = slack_1.runSlacker; | ||
var Util_1 = require("./Util"); | ||
exports.Util = Util_1.Util; | ||
exports.util = Util_1.util; | ||
exports.Util = Util_1.Util; |
{ | ||
"name": "@ioffice/tc-builder", | ||
"version": "2.1.3", | ||
"version": "3.0.0-beta.1902252323", | ||
"description": "iOFFICE TeamCity Builder", | ||
@@ -8,2 +8,3 @@ "main": "index.js", | ||
"bin": { | ||
"tc-install": "./TCBuilderInstallCLI.js", | ||
"tc-builder": "./TCBuilderCLI.js" | ||
@@ -21,4 +22,5 @@ }, | ||
"devDependencies": { | ||
"@ioffice/tslint-config-ioffice": "0.4.1", | ||
"@ioffice/tslint-config-ioffice": "0.6.1", | ||
"@types/chai": "4.1.4", | ||
"@types/inquirer": "0.0.43", | ||
"@types/mocha": "5.2.3", | ||
@@ -31,2 +33,3 @@ "@types/progress": "2.0.1", | ||
"colors": "1.3.0", | ||
"inquirer": "6.2.2", | ||
"mocha": "5.2.0", | ||
@@ -40,6 +43,6 @@ "moment": "2.22.2", | ||
"sinon": "6.0.1", | ||
"tslint": "5.10.0", | ||
"tslint": "5.12.1", | ||
"tslint-eslint-rules": "5.3.1", | ||
"typedoc": "0.11.1", | ||
"typescript": "2.9.2" | ||
"typescript": "3.3.3333" | ||
}, | ||
@@ -46,0 +49,0 @@ "publishConfig": { |
@@ -22,2 +22,3 @@ declare enum CI { | ||
readonly slackChannels: string[]; | ||
readonly isReleaseSetup: boolean; | ||
readonly isPreRelease: boolean; | ||
@@ -24,0 +25,0 @@ readonly isRelease: boolean; |
@@ -30,2 +30,3 @@ "use strict"; | ||
this.slackChannels = this.getSlackChannels(); | ||
this.isReleaseSetup = !!pEnv['RELEASE_SETUP']; | ||
this.isPreRelease = !!pEnv['PRERELEASE']; | ||
@@ -100,2 +101,5 @@ this.isRelease = !!this.commitMessage.match(this.releaseRegEx); | ||
} | ||
if (!gitUrl) { | ||
throw new Error('ERROR: missing "repository" field in "package.json"'); | ||
} | ||
var _a = gitUrl.match(/(.*)\/(.*)\/(.*)\.git$/), owner = _a[2], repo = _a[3]; | ||
@@ -102,0 +106,0 @@ return { owner: owner, repo: repo }; |
@@ -10,2 +10,6 @@ import { IO } from './IO'; | ||
/** | ||
* Obtain the very first commit for the repo. | ||
*/ | ||
getFirstCommit(): Promise<string>; | ||
/** | ||
* Switch the git branch. | ||
@@ -12,0 +16,0 @@ */ |
@@ -32,2 +32,24 @@ "use strict"; | ||
/** | ||
* Obtain the very first commit for the repo. | ||
*/ | ||
Git.prototype.getFirstCommit = function () { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var commit, err_2; | ||
return tslib_1.__generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, Util_1.util.exec('git rev-list --max-parents=0 HEAD')]; | ||
case 1: | ||
commit = _a.sent(); | ||
return [2 /*return*/, this.io.success(commit, "First commit: " + commit)]; | ||
case 2: | ||
err_2 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.getFirstCommit failure: " + err_2)]; | ||
case 3: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
/** | ||
* Switch the git branch. | ||
@@ -38,3 +60,3 @@ */ | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var newFlag, output, err_2; | ||
var newFlag, output, err_3; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -52,4 +74,4 @@ switch (_a.label) { | ||
case 3: | ||
err_2 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.switchBranch(" + branch + ", " + isNew + ") failure: " + err_2)]; | ||
err_3 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.switchBranch(" + branch + ", " + isNew + ") failure: " + err_3)]; | ||
case 4: return [2 /*return*/]; | ||
@@ -65,3 +87,3 @@ } | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var output, err_3; | ||
var output, err_4; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -76,4 +98,4 @@ switch (_a.label) { | ||
case 2: | ||
err_3 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.discardBranchChanges failure: " + err_3)]; | ||
err_4 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.discardBranchChanges failure: " + err_4)]; | ||
case 3: return [2 /*return*/]; | ||
@@ -89,3 +111,3 @@ } | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var output, err_4; | ||
var output, err_5; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -100,4 +122,4 @@ switch (_a.label) { | ||
case 2: | ||
err_4 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.deleteBranch('" + branch + "') failure: " + err_4)]; | ||
err_5 = _a.sent(); | ||
return [2 /*return*/, this.io.failure("Git.deleteBranch('" + branch + "') failure: " + err_5)]; | ||
case 3: return [2 /*return*/]; | ||
@@ -115,3 +137,3 @@ } | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var err_5; | ||
var err_6; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -132,4 +154,4 @@ switch (_a.label) { | ||
case 4: | ||
err_5 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_5)]; | ||
err_6 = _a.sent(); | ||
return [2 /*return*/, this.io.failure(err_6)]; | ||
case 5: return [2 /*return*/]; | ||
@@ -136,0 +158,0 @@ } |
@@ -0,4 +1,4 @@ | ||
import { RequestPromise } from 'request-promise'; | ||
import { Environment } from './Environment'; | ||
import { IO } from './IO'; | ||
import { RequestPromise } from 'request-promise'; | ||
declare class Github { | ||
@@ -5,0 +5,0 @@ env: Environment; |
import { CI, Environment } from './Environment'; | ||
import { IBuilderMessages, IO } from './IO'; | ||
import { Git } from './Git'; | ||
import { Github } from './Github'; | ||
import { IBuilderMessages, IO } from './IO'; | ||
declare class Provider { | ||
@@ -6,0 +6,0 @@ private static instance; |
@@ -6,4 +6,2 @@ "use strict"; | ||
exports.Environment = Environment_1.Environment; | ||
var IO_1 = require("./IO"); | ||
exports.IO = IO_1.IO; | ||
var Git_1 = require("./Git"); | ||
@@ -13,2 +11,4 @@ exports.Git = Git_1.Git; | ||
exports.Github = Github_1.Github; | ||
var IO_1 = require("./IO"); | ||
exports.IO = IO_1.IO; | ||
var Provider = /** @class */ (function () { | ||
@@ -15,0 +15,0 @@ function Provider() { |
@@ -41,3 +41,10 @@ import { Environment } from './Environment'; | ||
dumpMessages(): void; | ||
/** | ||
* Prompts the user for the next version provided by the `currentVersion`. The current version is | ||
* assumed to be parsable by `semver`. | ||
* | ||
* @param currentVersion The current version of the package. | ||
*/ | ||
promptForNewVersion(currentVersion: string): Promise<string>; | ||
} | ||
export { IBuilderMessages, IO, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var colors = require("colors"); | ||
var inquirer = require("inquirer"); | ||
var semver = require("semver"); | ||
var Util_1 = require("../Util"); | ||
var Environment_1 = require("./Environment"); | ||
var Util_1 = require("../Util"); | ||
var colors = require("colors"); | ||
var IO = /** @class */ (function () { | ||
@@ -122,2 +124,23 @@ function IO(env) { | ||
}; | ||
/** | ||
* Prompts the user for the next version provided by the `currentVersion`. The current version is | ||
* assumed to be parsable by `semver`. | ||
* | ||
* @param currentVersion The current version of the package. | ||
*/ | ||
IO.prototype.promptForNewVersion = function (currentVersion) { | ||
var newPatch = semver.parse(currentVersion).inc('patch').version; | ||
var newMinor = semver.parse(currentVersion).inc('minor').version; | ||
var newMajor = semver.parse(currentVersion).inc('major').version; | ||
return new Promise(function (resolve, reject) { | ||
inquirer.prompt([ | ||
{ | ||
type: 'list', | ||
name: 'version', | ||
message: "Current version is " + currentVersion + ". Choose the next version:", | ||
choices: [newPatch, newMinor, newMajor], | ||
}, | ||
]).then(function (answers) { return resolve(answers['version']); }, reject); | ||
}); | ||
}; | ||
IO.warnings = []; | ||
@@ -124,0 +147,0 @@ IO.errors = []; |
@@ -1,5 +0,3 @@ | ||
declare function setupFiles(fileName?: string): void; | ||
declare function installDevTools(pkg: object): void; | ||
declare function updateDevTools(): void; | ||
declare function runSetup(tcPkg: object): number; | ||
export { setupFiles, installDevTools, updateDevTools, runSetup, }; | ||
declare function setupFiles(replacements: object, fileName?: string): void; | ||
declare function runSetup(): number; | ||
export { setupFiles, runSetup, }; |
@@ -5,5 +5,4 @@ "use strict"; | ||
var path = require("path"); | ||
var child_process_1 = require("child_process"); | ||
var services_1 = require("../services"); | ||
var Util_1 = require("../Util"); | ||
var services_1 = require("../services"); | ||
var rel = function (x) { return path.resolve(__dirname, x); }; | ||
@@ -35,10 +34,26 @@ var log = function (msg) { return process.stdout.write(msg + "\n"); }; | ||
} | ||
function setupFiles(fileName) { | ||
var env = services_1.Provider.getInstance().env; | ||
var replacements = { | ||
packageName: env.packageName, | ||
repo: env.repo, | ||
owner: env.owner, | ||
upperCasePkgName: env.packageName.toLocaleUpperCase(), | ||
}; | ||
/** | ||
* Write any of the files stored in `./projectFiles`. If only a string is given | ||
* then the file will be copied as is (with replacements in the content) to the root directory | ||
* of the project. If we need to specify a different directory then you may specify | ||
* | ||
* ``` | ||
* ['someFileInProjectFiles', 'some/path/to/be/copied/to'] | ||
* ``` | ||
*/ | ||
function writeFiles(fileList, replacements) { | ||
fileList.forEach(function (item) { | ||
var fileName = Array.isArray(item) ? item[0] : item; | ||
var destFileName = Array.isArray(item) ? item[1] : item; | ||
var contents = getFileContents(fileName, replacements); | ||
if (fs.existsSync(destFileName)) { | ||
log("[SKIP]: " + destFileName); | ||
} | ||
else { | ||
log("[WRITING]: " + destFileName); | ||
fs.writeFileSync(destFileName, contents); | ||
} | ||
}); | ||
} | ||
function setupFiles(replacements, fileName) { | ||
var projectFiles = [ | ||
@@ -48,11 +63,12 @@ '.editorconfig', | ||
'.npmignore', | ||
'.teamcity.json', | ||
'CHANGELOG.md', | ||
'CONTRIBUTING.md', | ||
'Makefile', | ||
'tsconfig.dev.json', | ||
'tsconfig.json', | ||
'tslint.dev.json', | ||
'tslint.json', | ||
]; | ||
if (fileName) { | ||
if (projectFiles.indexOf(fileName) === -1) { | ||
if (!fs.existsSync(rel("./projectFiles/" + fileName + ".tpl"))) { | ||
log("[ERROR]: invalid file " + fileName); | ||
@@ -65,42 +81,123 @@ } | ||
} | ||
projectFiles.forEach(function (fileName) { | ||
var contents = getFileContents(fileName, replacements); | ||
if (fs.existsSync(fileName)) { | ||
log("[SKIP]: " + fileName); | ||
} | ||
else { | ||
log("[WRITING]: " + fileName); | ||
fs.writeFileSync(fileName, contents); | ||
} | ||
}); | ||
writeFiles(projectFiles, replacements); | ||
verifySourceDirectory(); | ||
} | ||
exports.setupFiles = setupFiles; | ||
function installDevTools(pkg) { | ||
var devDeps = pkg['devDependencies']; | ||
var depsArray = Object.keys(devDeps).map(function (x) { return x + "@" + devDeps[x]; }); | ||
var cmd = "yarn add -D -E " + depsArray.join(' '); | ||
log("$ " + cmd); | ||
child_process_1.execSync(cmd); | ||
function teamcitySetup(replacements) { | ||
log('[TEAMCITY SETUP]'); | ||
writeFiles([ | ||
['teamcity/.teamcity.json', '.teamcity.json'], | ||
], replacements); | ||
} | ||
exports.installDevTools = installDevTools; | ||
function updateDevTools() { | ||
var pkg = Util_1.util.readJSON('./package.json', '.') || {}; | ||
var devDeps = pkg['devDependencies']; | ||
var depsArray = Object.keys(devDeps).map(function (x) { return x + "@latest"; }); | ||
var cmd = "yarn add -D -E " + depsArray.join(' '); | ||
log("$ " + cmd); | ||
child_process_1.execSync(cmd); | ||
function travisSetup(replacements) { | ||
log('[TRAVIS SETUP]'); | ||
writeFiles([ | ||
['travis/.travis.yml', '.travis.yml'], | ||
], replacements); | ||
} | ||
exports.updateDevTools = updateDevTools; | ||
function runSetup(tcPkg) { | ||
function webpackSetup(replacements) { | ||
log('[WEBPACK SETUP]'); | ||
var directory = process.argv[process.argv.indexOf('webpack') + 1]; | ||
var skipDeps = process.argv.indexOf('--skip-deps'); | ||
if (!directory) { | ||
log('ERROR: usage: tc-builder setup webpack (dirname) [--skip-deps]'); | ||
} | ||
writeFiles([ | ||
['webpack/webpack.config.ts', directory + "/webpack.config.ts"], | ||
], replacements); | ||
if (skipDeps) { | ||
return; | ||
} | ||
var packages = [ | ||
'@types/webpack', | ||
'webpack', | ||
'webpack-cli', | ||
'css-loader', | ||
'bundle-loader', | ||
'file-loader', | ||
'html-loader', | ||
'less-loader', | ||
'less', | ||
'raw-loader', | ||
'style-loader', | ||
'ts-loader', | ||
'url-loader', | ||
'webpack-bundle-analyzer', | ||
]; | ||
packages.forEach(function (name) { | ||
var cmd = "yarn add -E -D " + name + "@latest"; | ||
process.stdout.write("$ " + cmd + "\n"); | ||
Util_1.util.execCmd(cmd, true); | ||
}); | ||
} | ||
function angularSetup(replacements) { | ||
log('[ANGULAR SETUP]'); | ||
var directory = process.argv[process.argv.indexOf('angular') + 1]; | ||
var skipDeps = process.argv.indexOf('--skip-deps'); | ||
if (!directory) { | ||
log('ERROR: usage: tc-builder setup angular (dirname) [--skip-deps]'); | ||
} | ||
writeFiles([ | ||
['angular/App.bundle.ts', directory + "/App.bundle.ts"], | ||
['angular/App.component.ts', directory + "/App.component.ts"], | ||
['angular/App.module.ts', directory + "/App.module.ts"], | ||
], replacements); | ||
if (skipDeps) { | ||
return; | ||
} | ||
var packages = [ | ||
'@angular/animations', | ||
'@angular/common', | ||
'@angular/compiler', | ||
'@angular/compiler-cli', | ||
'@angular/core', | ||
'@angular/forms', | ||
'@angular/http', | ||
'@angular/platform-browser', | ||
'@angular/platform-browser-dynamic', | ||
'@angular/platform-server', | ||
'@angular/router', | ||
'@angular/upgrade', | ||
'zone.js', | ||
'core-js', | ||
'reflect-metadata', | ||
]; | ||
packages.forEach(function (name) { | ||
var cmd = "yarn add -E -D " + name + "@latest"; | ||
process.stdout.write("$ " + cmd + "\n"); | ||
Util_1.util.execCmd(cmd, true); | ||
}); | ||
} | ||
function runSetup() { | ||
var env = services_1.Provider.getInstance().env; | ||
var replacements = { | ||
packageName: env.packageName, | ||
repo: env.repo, | ||
owner: env.owner, | ||
upperCasePkgName: env.packageName.toLocaleUpperCase(), | ||
}; | ||
var projectPkg = Util_1.util.readJSON('./package.json', '.'); | ||
if (projectPkg) { | ||
var fileName = process.argv[process.argv.indexOf('setup') + 1]; | ||
if (fileName) { | ||
setupFiles(fileName); | ||
var fileName_1 = process.argv[process.argv.indexOf('setup') + 1]; | ||
var environments = [ | ||
'teamcity', | ||
'travis', | ||
'webpack', | ||
'angular', | ||
]; | ||
var env_1 = environments.find(function (x) { return x === fileName_1; }); | ||
if (env_1) { | ||
var envMap = { | ||
teamcity: teamcitySetup, | ||
travis: travisSetup, | ||
webpack: webpackSetup, | ||
angular: angularSetup, | ||
}; | ||
envMap[env_1](replacements); | ||
} | ||
else if (fileName_1) { | ||
setupFiles(replacements, fileName_1); | ||
} | ||
else { | ||
installDevTools(tcPkg); | ||
setupFiles(); | ||
setupFiles(replacements); | ||
} | ||
@@ -107,0 +204,0 @@ } |
@@ -40,5 +40,5 @@ interface IField { | ||
declare abstract class AbstractSlack { | ||
readonly env: import("src/main/services/Environment").Environment; | ||
readonly io: import("src/main/services/IO").IO; | ||
readonly messages: import("src/main/services/IO").IBuilderMessages | null; | ||
readonly env: import("../services/Environment").Environment; | ||
readonly io: import("../services/IO").IO; | ||
readonly messages: import("../services/IO").IBuilderMessages | null; | ||
abstract getTitle(): string; | ||
@@ -45,0 +45,0 @@ abstract getTitleLink(): string; |
@@ -1,2 +0,2 @@ | ||
import { IField, IAction, IAttachment, AbstractSlack, ISlacker } from './AbstractSlack'; | ||
import { AbstractSlack, IAction, IAttachment, IField, ISlacker } from './AbstractSlack'; | ||
import { TravisSlack } from './TravisSlack'; | ||
@@ -3,0 +3,0 @@ /** |
@@ -5,6 +5,9 @@ #!/usr/bin/env node | ||
var tslib_1 = require("tslib"); | ||
var builders_1 = require("./builders"); | ||
var compiler_1 = require("./compiler"); | ||
var Setup_1 = require("./setup/Setup"); | ||
var slack_1 = require("./slack"); | ||
var Util_1 = require("./Util"); | ||
var commands = [ | ||
'setup', | ||
'update-tools', | ||
'compile', | ||
@@ -15,2 +18,3 @@ 'run', | ||
var options = [ | ||
'--dev', | ||
'--no-lint', | ||
@@ -25,11 +29,11 @@ '--verbose', | ||
]; | ||
var _a = commands.map(function (x) { return process.argv.indexOf(x) > -1; }), setup = _a[0], updateTools = _a[1], compile = _a[2], run = _a[3], slackNotify = _a[4]; | ||
var _b = options.map(function (x) { return process.argv.indexOf(x) > -1; }), noLint = _b[0], verbose = _b[1], help = _b[2], h = _b[3], version = _b[4], v = _b[5], ci = _b[6], noMsgDump = _b[7]; | ||
var _a = commands.map(function (x) { return process.argv.indexOf(x) > -1; }), setup = _a[0], compile = _a[1], run = _a[2], slackNotify = _a[3]; | ||
var _b = options.map(function (x) { return process.argv.indexOf(x) > -1; }), dev = _b[0], noLint = _b[1], verbose = _b[2], help = _b[3], h = _b[4], version = _b[5], v = _b[6], ci = _b[7], noMsgDump = _b[8]; | ||
var tcPkg = Util_1.util.readJSON('./package.json', __dirname) || {}; | ||
var tcPkgVersion = tcPkg['version']; | ||
var log = function (msg) { return process.stdout.write(msg + "\n"); }; | ||
var usage = "usage: tc-builder <command> [--options]\n\nThe following commands are supported:\n\n - setup: Installs all the same dependencies as the ones in the tc-builder and creates\n configuration files if they do not exists. This command should be run when starting\n a new project or updating tc-builder.\n\n If there are any new updates to the configuration files and you wish to see them you\n can provide the name of the file right after the command.\n - update-tools: Installs all the latest devDependencies.\n - compile: Looks at the 'tsconfig.json' file to compile the project. By default it will also\n lint the files unless we use the '--no-lint' option.\n - run: Main command to be run in team city. It will make sure to run all the tests and publish\n to npm if necessary.\n - slack-notify: If you have provided the appropiate slack environment variables then this will\n get slack to send a message.\n\nOptions:\n\n --no-lint: Skip linting.\n --verbose: Print messages of the steps for the 'compile' command.\n --ci: Continous Integration flag, minimizes the output in case there are too many errors.\n --help, -h: Print this message.\n --version, -v: Print the version.\n --no-msg-dump: Skip dumping error and warning messages to './tcBuilderMessages.json'.\n\ntc-builder@" + tcPkgVersion + "\n"; | ||
var usage = "usage: tc-builder (command) [--options]\n\nThe following commands are supported:\n\n - setup: Installs all the same dependencies as the ones in the tc-builder and creates\n configuration files if they do not exists. This command should be run when starting\n a new project or updating tc-builder.\n\n If there are any new updates to the configuration files and you wish to see them you\n can provide the name of the file right after the command.\n - update-tools: Installs all the latest devDependencies.\n - compile: Looks at the 'tsconfig.json' file to compile the project. By default it will also\n lint the files unless we use the '--no-lint' option.\n - run: Main command to be run in team city. It will make sure to run all the tests and publish\n to npm if necessary.\n - slack-notify: If you have provided the appropiate slack environment variables then this will\n get slack to send a message.\n\nOptions:\n\n --dev: Uses tsconfig.dev.json and tslint.dev.json\n --no-lint: Skip linting.\n --verbose: Print messages of the steps for the 'compile' command.\n --ci: Continous Integration flag, minimizes the output in case there are too many errors.\n --help, -h: Print this message.\n --version, -v: Print the version.\n --no-msg-dump: Skip dumping error and warning messages to './tcBuilderMessages.json'.\n\ntc-builder@" + tcPkgVersion + "\n"; | ||
function main() { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var exitNumber, setupMod, setupMod, compileMod, projectPkg, tcBuilderOptions, messageMap, buildersMod, code, slackMod; | ||
var exitNumber, projectPkg, tcBuilderOptions, messageMap, code; | ||
return tslib_1.__generator(this, function (_a) { | ||
@@ -41,46 +45,37 @@ switch (_a.label) { | ||
log(usage); | ||
return [3 /*break*/, 10]; | ||
return [3 /*break*/, 9]; | ||
case 1: | ||
if (!(version || v)) return [3 /*break*/, 2]; | ||
log(tcPkgVersion); | ||
return [3 /*break*/, 10]; | ||
return [3 /*break*/, 9]; | ||
case 2: | ||
if (!((+setup) + (+updateTools) + (+compile) + (+run) + (+slackNotify) !== 1)) return [3 /*break*/, 3]; | ||
if (!((+setup) + (+compile) + (+run) + (+slackNotify) !== 1)) return [3 /*break*/, 3]; | ||
log("usage: tc-builder <" + commands.join(' | ') + "> [-h]"); | ||
exitNumber = 1; | ||
return [3 /*break*/, 10]; | ||
return [3 /*break*/, 9]; | ||
case 3: | ||
if (!setup) return [3 /*break*/, 4]; | ||
setupMod = require('./setup/Setup'); | ||
exitNumber = setupMod.runSetup(tcPkg); | ||
return [3 /*break*/, 10]; | ||
exitNumber = Setup_1.runSetup(); | ||
return [3 /*break*/, 9]; | ||
case 4: | ||
if (!updateTools) return [3 /*break*/, 5]; | ||
setupMod = require('./setup/Setup'); | ||
setupMod.updateDevTools(); | ||
return [3 /*break*/, 10]; | ||
case 5: | ||
if (!compile) return [3 /*break*/, 6]; | ||
compileMod = require('./compiler/Compiler'); | ||
if (!compile) return [3 /*break*/, 5]; | ||
projectPkg = Util_1.util.readJSON('./package.json', '.'); | ||
tcBuilderOptions = projectPkg ? projectPkg['tcBuilder'] || {} : {}; | ||
messageMap = tcBuilderOptions['allowed'] || {}; | ||
exitNumber = compileMod.compileCLI('tsconfig.json', noLint ? '' : './tslint.json', verbose, messageMap, ci, !noMsgDump); | ||
return [3 /*break*/, 10]; | ||
exitNumber = compiler_1.compileCLI(dev ? 'tsconfig.dev.json' : 'tsconfig.json', noLint ? '' : (dev ? './tslint.dev.json' : './tslint.json'), verbose, messageMap, ci, !noMsgDump); | ||
return [3 /*break*/, 9]; | ||
case 5: | ||
if (!run) return [3 /*break*/, 7]; | ||
return [4 /*yield*/, builders_1.runBuilder(builders_1.NPMBuilder, !noMsgDump)]; | ||
case 6: | ||
if (!run) return [3 /*break*/, 8]; | ||
buildersMod = require('./builders'); | ||
return [4 /*yield*/, buildersMod.runBuilder(buildersMod.NPMBuilder, !noMsgDump)]; | ||
case 7: | ||
code = (_a.sent()).code; | ||
exitNumber = code; | ||
return [3 /*break*/, 10]; | ||
return [3 /*break*/, 9]; | ||
case 7: | ||
if (!slackNotify) return [3 /*break*/, 9]; | ||
return [4 /*yield*/, slack_1.runSlacker(slack_1.TravisSlack)]; | ||
case 8: | ||
if (!slackNotify) return [3 /*break*/, 10]; | ||
slackMod = require('./slack'); | ||
return [4 /*yield*/, slackMod.runSlacker(slackMod.TravisSlack)]; | ||
exitNumber = _a.sent(); | ||
_a.label = 9; | ||
case 9: | ||
exitNumber = _a.sent(); | ||
_a.label = 10; | ||
case 10: | ||
process.on('exit', function () { | ||
@@ -87,0 +82,0 @@ process.exit(exitNumber); |
21
Util.js
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var tslib_1 = require("tslib"); | ||
var child_process_1 = require("child_process"); | ||
var fs_1 = require("fs"); | ||
var pth = require("path"); | ||
var child_process_1 = require("child_process"); | ||
var Util = /** @class */ (function () { | ||
@@ -80,18 +79,4 @@ function Util() { | ||
Util.prototype.getModifiedFiles = function () { | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
var result, err_1; | ||
return tslib_1.__generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, this.execCmd('git status -s')]; | ||
case 1: | ||
result = _a.sent(); | ||
return [2 /*return*/, result.split('\n').map(function (x) { return x.trim(); }).filter(function (x) { return x; })]; | ||
case 2: | ||
err_1 = _a.sent(); | ||
return [2 /*return*/, Promise.reject(err_1)]; | ||
case 3: return [2 /*return*/]; | ||
} | ||
}); | ||
return this.execCmd('git status -s').then(function (result) { | ||
return result.split('\n').map(function (x) { return x.trim(); }).filter(function (x) { return x; }); | ||
}); | ||
@@ -98,0 +83,0 @@ }; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
132471
60
3060
1
23
2