UNPKG

typescript-assistant

Version:

Combines and integrates professional Typescript tools into your project

73 lines 3.39 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const glob = require("glob"); exports.createGit = (dependencies) => { let { taskRunner, logger } = dependencies; let 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) => __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, isOnBranch: () => __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. if (currentBranchName === 'HEAD') { return false; } return currentBranchName !== 'master'; }), 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