UNPKG

5.01 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAE7B,+BAA2D;AAC3D,mCAA8E;AAQ9E,KAAK,UAAU,iBAAiB;IAI5B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,oBAAY,CAAC,cAAc,CAAC,CAAC;IAE1D,IAAI,iBAAS,CAAC,cAAc,CAAC,EAAE;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QAEnC;;;;WAIG;QACH,MAAM,MAAM,GAAG,MAAM,iBAAS,CAAC;YAC3B,GAAG,EAAE,oBAAoB;YACzB,IAAI,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH;;;WAGG;QACH,MAAM,OAAO,GAAG,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;QAEtC;;;WAGG;QACH,MAAM,OAAO,GAAG,CACZ,MAAM,iBAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CACnE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAE1B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;KAC/B;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,cAAsB,EACtB,UAAkB,EAClB,IAAa;IAEb,IAAI,CAAC,CAAC,MAAM,eAAS,CAAC,cAAc,CAAC,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,YAAY,cAAc,kBAAkB,CAAC,CAAC;KACjE;IAED,IAAI,IAAI,CAAC,OAAO,EAAE;QACd,MAAM,YAAM,CAAC,cAAc,EAAE;YACzB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,CAAC,WAAW,EAAE,EAAE,CACnB,MAAM,WAAW,cAAc,cAAc,kBAAkB;YACnE,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;KACN;AACL,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAa;IAC7B,IAAI,IAAI,CAAC,MAAM,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;IAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEvE,IAAI,MAAM,eAAS,CAAC,cAAc,CAAC,EAAE;QACjC,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;KAC5D;SAAM;QACH,MAAM,YAAM,CAAC,cAAc,EAAE;YACzB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;KACN;IAED,IAAI,IAAI,CAAC,IAAI,EAAE;QACX,MAAM,UAAI,CAAC,cAAc,EAAE;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;KACN;AACL,CAAC;AAEc,KAAK,oBAAW,OAAgB,EAAE;IAC7C,IAAI;QACA,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;YAAS;QACN,uBAAe,EAAE,CAAC;KACrB;AACL,CAAC;AAND,4BAMC","sourcesContent":["import * as path from 'path';\n\nimport { isHeadTag, push, setTag, tagExists } from './git';\nimport { endPrintVerbose, getConfig, isPkgData, readJSONFile } from './utils';\n\nexport interface Options {\n push?: boolean;\n verbose?: boolean;\n dryRun?: boolean;\n}\n\nasync function getVersionTagData(): Promise<{\n tagName: string;\n message: string;\n}> {\n const projectPkgPath = path.join(process.cwd(), 'package.json');\n const projectPkgData = await readJSONFile(projectPkgPath);\n\n if (isPkgData(projectPkgData)) {\n const { version } = projectPkgData;\n\n /**\n * @see https://github.com/sindresorhus/np/blob/v5.1.3/source/util.js#L51-L65\n * @see https://github.com/npm/cli/blob/v6.13.0/lib/version.js#L311\n * @see https://github.com/yarnpkg/yarn/blob/v1.19.1/src/cli/commands/version.js#L194\n */\n const prefix = await getConfig({\n npm: 'tag-version-prefix',\n yarn: 'version-tag-prefix',\n });\n\n /**\n * @see https://github.com/npm/cli/blob/v6.13.0/lib/version.js#L311\n * @see https://github.com/yarnpkg/yarn/blob/v1.19.1/src/cli/commands/version.js#L206\n */\n const tagName = `${prefix}${version}`;\n\n /**\n * @see https://github.com/npm/cli/blob/v6.13.0/lib/version.js#L296\n * @see https://github.com/yarnpkg/yarn/blob/v1.19.1/src/cli/commands/version.js#L191\n */\n const message = (\n await getConfig({ npm: 'message', yarn: 'version-git-message' })\n ).replace(/%s/g, version);\n\n return { tagName, message };\n }\n\n throw new Error('Failed to find version tag name.');\n}\n\nasync function gitTagAlreadyExists(\n versionTagName: string,\n tagMessage: string,\n opts: Options,\n): Promise<void> {\n if (!(await isHeadTag(versionTagName))) {\n throw new Error(`Git tag '${versionTagName}' already exists`);\n }\n\n if (opts.verbose) {\n await setTag(versionTagName, {\n message: tagMessage,\n debug: (commandText) =>\n `> #${commandText}\\n # tag '${versionTagName}' already exists`,\n dryRun: true,\n });\n }\n}\n\nasync function main(opts: Options): Promise<void> {\n if (opts.dryRun) {\n console.error('Dry Run enabled');\n opts.verbose = true;\n }\n\n const { tagName: versionTagName, message } = await getVersionTagData();\n\n if (await tagExists(versionTagName)) {\n await gitTagAlreadyExists(versionTagName, message, opts);\n } else {\n await setTag(versionTagName, {\n message,\n debug: opts.verbose,\n dryRun: opts.dryRun,\n });\n }\n\n if (opts.push) {\n await push(versionTagName, {\n debug: opts.verbose,\n dryRun: opts.dryRun,\n });\n }\n}\n\nexport default async function (opts: Options = {}): Promise<void> {\n try {\n await main(opts);\n } finally {\n endPrintVerbose();\n }\n}\n"]}
\No newline at end of file