UNPKG

typescript-assistant

Version:

Combines and integrates professional Typescript tools into your project

99 lines 4.18 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createGit = createGit; const glob = require("glob"); function createGit(dependencies) { const { taskRunner, logger } = dependencies; function findAllTypescriptFiles() { // Not using this mechanism anymore but a blacklist to allow multiple tsconfig files. // let tsConfig = JSON.parse(readFileSync(join(process.cwd(), 'tsconfig.json'), 'UTF-8')); // let globs: string[] = tsConfig && tsConfig.include ? tsConfig.include : ['src/**/*.ts', 'test/**/*.ts']; let blacklist = [ "**/node_modules/**", "typings/**", "build/**", "dist/**", "**/*.d.ts", ]; return new Promise((resolve, reject) => { glob("**/*.ts", { ignore: blacklist }, (error, matches) => { if (error) { reject(error); } else { resolve(matches); } }); }); } let git = { findChangedFiles(sinceLastPush) { let args = sinceLastPush ? ["diff", "--name-only", "--diff-filter=ACMR", "origin/HEAD", "HEAD"] : ["diff", "--name-only", "--diff-filter=ACMR", "HEAD"]; return git.execute(args).then((files) => { return files; }); }, isPristine() { return git.execute(["status", "--porcelain"]).then((modifiedFiles) => { return modifiedFiles.length === 0; }); }, findChangedFilesOrAllTypescriptFiles(sinceLastPush) { return __awaiter(this, void 0, void 0, function* () { return git .findChangedFiles(sinceLastPush) .then((files) => files.length === 0 ? findAllTypescriptFiles() : files) // no changed files found => All TS Files .catch(findAllTypescriptFiles); // If not inside a git repository }); }, findAllTypescriptFiles, isOnMasterOrReleaseBranch() { return __awaiter(this, void 0, void 0, function* () { let branchName = yield git.getBranchName(); return branchName === "master" || branchName.startsWith("release"); }); }, isOnBranch() { return __awaiter(this, void 0, void 0, function* () { let currentBranchName = yield git.getBranchName(); return currentBranchName !== "master"; }); }, getBranchName() { return __awaiter(this, void 0, void 0, function* () { let [stdout] = yield git.execute(["rev-parse", "--abbrev-ref", "HEAD"]); let currentBranchName = stdout.toString().trim(); // When in detached HEAD, assume it's master. return currentBranchName === "HEAD" ? "master" : currentBranchName; }); }, execute(args) { let lines = []; return taskRunner .runTask("git", args, { name: "git", logger, handleOutput: (line) => { lines.push(line); return true; }, }) .result.then(() => { return lines; }); }, }; return git; } //# sourceMappingURL=git.js.map