UNPKG

6.87 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/cli.js"],"names":["execa","require","commitlint","GIT","process","env","TRAVIS_COMMITLINT_GIT_BIN","COMMITLINT","TRAVIS_COMMITLINT_BIN","REQUIRED","COMMIT","TRAVIS_COMMIT","REPO_SLUG","TRAVIS_REPO_SLUG","PR_SLUG","TRAVIS_PULL_REQUEST_SLUG","RANGE","TRAVIS_COMMIT_RANGE","IS_PR","TRAVIS_EVENT_TYPE","main","catch","err","console","log","exit","validate","stash","pop","Promise","all","fetch","name","url","split","filter","Boolean","start","end","lint","input","git","args","options","Object","assign","stdio","isClean","result","stdout","trim","hash","CI","TRAVIS","Error","missing","envVar","length","stanza","join"],"mappings":"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","file":"cli.js","sourcesContent":["\nconst execa = require('execa');\nconst commitlint = require('@commitlint/cli');\n\n// Allow to override used bins for testing purposes\nconst GIT = process.env.TRAVIS_COMMITLINT_GIT_BIN || 'git';\nconst COMMITLINT = process.env.TRAVIS_COMMITLINT_BIN;\n\nconst REQUIRED = [\n\t'TRAVIS_COMMIT',\n\t'TRAVIS_COMMIT_RANGE',\n\t'TRAVIS_EVENT_TYPE',\n\t'TRAVIS_REPO_SLUG',\n\t'TRAVIS_PULL_REQUEST_SLUG'\n];\n\nconst COMMIT = process.env.TRAVIS_COMMIT;\nconst REPO_SLUG = process.env.TRAVIS_REPO_SLUG;\nconst PR_SLUG = process.env.TRAVIS_PULL_REQUEST_SLUG || REPO_SLUG;\nconst RANGE = process.env.TRAVIS_COMMIT_RANGE;\nconst IS_PR = process.env.TRAVIS_EVENT_TYPE === 'pull_request';\n\nmain().catch(err => {\n\tconsole.log(err);\n\tprocess.exit(1);\n});\n\nasync function main() {\n\tvalidate();\n\n\t// Stash changes in working copy if needed\n\tconst pop = await stash();\n\n\t// Make base and source available as dedicated remotes\n\tawait Promise.all([\n\t\t() => fetch({name: 'base', url: `https://github.com/${REPO_SLUG}.git`}),\n\t\tIS_PR\n\t\t\t? () => fetch({name: 'source', url: `https://github.com/${PR_SLUG}.git`})\n\t\t\t: async () => {}\n\t]);\n\n\t// Restore stashed changes if any\n\tawait pop();\n\n\t// Lint all commits in TRAVIS_COMMIT_RANGE if available\n\tif (IS_PR && RANGE) {\n\t\tconst [start, end] = RANGE.split('.').filter(Boolean);\n\t\tawait lint(['--from', start, '--to', end]);\n\t} else {\n\t\tconst input = await log(COMMIT);\n\t\tawait lint([], {input});\n\t}\n}\n\nasync function git(args, options) {\n\treturn execa(GIT, args, Object.assign({}, {stdio: 'inherit'}, options));\n}\n\nasync function fetch({name, url}) {\n\tawait git(['remote', 'add', name, url]);\n\tawait git(['fetch', name, '--quiet']);\n}\n\nasync function isClean() {\n\tconst result = await git(['status', '--porcelain'], {\n\t\tstdio: ['pipe', 'pipe', 'pipe']\n\t});\n\treturn !(result.stdout && result.stdout.trim());\n}\n\nasync function lint(args, options) {\n\treturn execa(\n\t\tCOMMITLINT || commitlint,\n\t\targs,\n\t\tObject.assign({}, {stdio: ['pipe', 'inherit', 'inherit']}, options)\n\t);\n}\n\nasync function log(hash) {\n\tconst result = await execa('git', [\n\t\t'log',\n\t\t'-n',\n\t\t'1',\n\t\t'--pretty=format:%B',\n\t\thash\n\t]);\n\treturn result.stdout;\n}\n\nasync function stash() {\n\tif (await isClean()) {\n\t\treturn async () => {};\n\t}\n\tawait git(['stash', '-k', '-u', '--quiet']);\n\treturn () => git(['stash', 'pop', '--quiet']);\n}\n\nfunction validate() {\n\tif (process.env.CI !== 'true' || process.env.TRAVIS !== 'true') {\n\t\tthrow new Error(\n\t\t\t`@commitlint/travis-cli is intended to be used on Travis CI`\n\t\t);\n\t}\n\n\tconst missing = REQUIRED.filter(envVar => !(envVar in process.env));\n\n\tif (missing.length > 0) {\n\t\tconst stanza = missing.length > 1 ? 'they were not' : 'it was not';\n\t\tthrow new Error(\n\t\t\t`Expected ${missing.join(', ')} to be defined globally, ${stanza}.`\n\t\t);\n\t}\n}\n"]}
\No newline at end of file