@storm-software/git-tools
Version:
Tools for managing Git repositories within a Nx workspace.
1 lines • 5.09 kB
Source Map (JSON)
{"version":3,"sources":["../../bin/pre-push.ts"],"names":["getConfig","handleProcess","writeInfo","checkPackageVersion","fs","path","readFile","writeError","exitWithError","writeSuccess","run","exitWithSuccess","writeFatal"],"mappings":";;;;;;;;;;;;;;;AAkBA,KAAA,CAAM,YAAY;AAChB,EAAA,MAAM,MAAA,GAAS,MAAMA,2BAAA,EAAU;AAC/B,EAAA,IAAI;AACF,IAAAC,+BAAA,CAAc,MAAM,CAAA;AAEpB,IAAAC,2BAAA,CAAU,4BAA4B,MAAM,CAAA;AAC5C,IAAAC,qCAAA,CAAoB,OAAA,CAAQ,IAAA,EAAM,KAAA,CAAM,CAAC,CAAC,CAAA;AAE1C,IAAAD,2BAAA,CAAU,mFAAyC,MAAM,CAAA;AAEzD,IAAA,MAAM,SAAS,EAAC;AAEhB,IAAA,IACEE,mBAAA,CAAG,UAAA;AAAA,MACDC,qBAAA,CAAK,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB,MAAM,mBAAmB;AAAA,KAC7D,EACA;AACA,MAAA,MAAA,CAAO,IAAA;AAAA,QACL;AAAA,OACF;AAAA,IACF;AACA,IAAA,IAAID,mBAAA,CAAG,WAAWC,qBAAA,CAAK,IAAA,CAAK,OAAO,aAAA,IAAiB,IAAA,EAAM,WAAW,CAAC,CAAA,EAAG;AACvE,MAAA,MAAA,CAAO,IAAA;AAAA,QACL;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,UAAU,MAAMC,iBAAA;AAAA,QACpBD,qBAAA,CAAK,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB,MAAM,gBAAgB,CAAA;AAAA,QACxD;AAAA,UACE,QAAA,EAAU;AAAA;AACZ,OACF;AACA,MAAA,IAAI,OAAA,EAAS,KAAA,CAAM,eAAe,CAAA,EAAG;AACnC,QAAA,MAAA,CAAO,IAAA;AAAA,UACL;AAAA,SACF;AAAA,MACF;AACA,MAAA,IAAI,OAAA,EAAS,KAAA,CAAM,uBAAuB,CAAA,EAAG;AAC3C,QAAA,MAAA,CAAO,IAAA;AAAA,UACL;AAAA,SACF;AAAA,MACF;AAAA,IACF,CAAA,CAAA,MAAQ;AACN,MAAA,MAAA,CAAO,KAAK,uDAAuD,CAAA;AAAA,IACrE;AAEA,IAAA,IAAI,MAAA,CAAO,SAAS,CAAA,EAAG;AACrB,MAAAE,4BAAA,CAAW,sCAAiC,MAAM,CAAA;AAClD,MAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,QAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,MACrB;AAEA,MAAAC,+BAAA,CAAc,MAAM,CAAA;AAAA,IACtB;AAEA,IAAAC,8BAAA,CAAa,6BAAwB,MAAM,CAAA;AAC3C,IAAAC,qBAAA,CAAI,QAAQ,yBAAyB,CAAA;AAErC,IAAA,IAAI;AACF,MAAAA,qBAAA,CAAI,QAAQ,iBAAiB,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAAH,4BAAA;AAAA,QACE,CAAA;AAAA,OAAA,EACG,OAAiB,OACpB,CAAA,CAAA;AAAA,QACA;AAAA,OACF;AACA,MAAAC,+BAAA,CAAc,MAAM,CAAA;AAAA,IACtB;AAEA,IAAAE,qBAAA,CAAI,QAAQ,yBAAyB,CAAA;AAErC,IAAAC,iCAAA,CAAgB,MAAM,CAAA;AAAA,EACxB,SAAS,KAAA,EAAO;AACd,IAAAC,4BAAA;AAAA,MACE,CAAA,kDAAA,EAAqD,MAAM,OAAO,CAAA,CAAA;AAAA,MAClE;AAAA,KACF;AACA,IAAAJ,+BAAA,CAAc,MAAM,CAAA;AACpB,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AACF,CAAA,GAAG","file":"pre-push.cjs","sourcesContent":["#!/usr/bin/env node\n\nimport {\n exitWithError,\n exitWithSuccess,\n getConfig,\n handleProcess,\n run,\n writeError,\n writeFatal,\n writeInfo,\n writeSuccess\n} from \"@storm-software/config-tools\";\nimport fs from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { checkPackageVersion } from \"../src/utilities/check-package-version\";\n\nvoid (async () => {\n const config = await getConfig();\n try {\n handleProcess(config);\n\n writeInfo(\"Running pre-push hook...\", config);\n checkPackageVersion(process.argv?.slice(1));\n\n writeInfo(\"🔒🔒🔒 Validating lock files 🔒🔒🔒\\n\", config);\n\n const errors = [] as string[];\n\n if (\n fs.existsSync(\n path.join(config.workspaceRoot ?? \"./\", \"package-lock.json\")\n )\n ) {\n errors.push(\n 'Invalid occurrence of \"package-lock.json\" file. Please remove it and use only \"pnpm-lock.yaml\"'\n );\n }\n if (fs.existsSync(path.join(config.workspaceRoot ?? \"./\", \"yarn.lock\"))) {\n errors.push(\n 'Invalid occurrence of \"yarn.lock\" file. Please remove it and use only \"pnpm-lock.yaml\"'\n );\n }\n\n try {\n const content = await readFile(\n path.join(config.workspaceRoot ?? \"./\", \"pnpm-lock.yaml\"),\n {\n encoding: \"utf8\"\n }\n );\n if (content?.match(/localhost:487/)) {\n errors.push(\n 'The \"pnpm-lock.yaml\" has reference to local repository (\"localhost:4873\"). Please use ensure you disable local registry before running \"pnpm i\"'\n );\n }\n if (content?.match(/resolution: \\{tarball/)) {\n errors.push(\n 'The \"pnpm-lock.yaml\" has reference to tarball package. Please use npm registry only'\n );\n }\n } catch {\n errors.push('The \"pnpm-lock.yaml\" does not exist or cannot be read');\n }\n\n if (errors.length > 0) {\n writeError(\"❌ Lock file validation failed\", config);\n for (const error of errors) {\n console.error(error);\n }\n\n exitWithError(config);\n }\n\n writeSuccess(\"Lock file is valid ✅\", config);\n run(config, \"git lfs pre-push origin\");\n\n try {\n run(config, \"git-lfs version\");\n } catch (error) {\n writeError(\n `This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/pre-push.\\nError: ${\n (error as Error)?.message\n }`,\n config\n );\n exitWithError(config);\n }\n\n run(config, \"git lfs pre-push origin\");\n\n exitWithSuccess(config);\n } catch (error) {\n writeFatal(\n `A fatal error occurred while running the program: ${error.message}`,\n config\n );\n exitWithError(config);\n process.exit(1);\n }\n})();\n"]}