UNPKG

@aimee-blue/ab-service-kit

Version:
1 lines 3.27 kB
{"version":3,"sources":["../../src/shared/app.ts"],"names":["packageJson","loadedPackageJson","loadPackageJson","packageJsonExists","Error","contents","encoding","JSON","parse","determineGitVersion","gitResult","error","status","gitVersion","stdout","trim","versionStr","startsWith","substring","appVersion","Utils","onceAsync","loaded","version","appName","name"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA,MAAMA,WAAW,GAAG,cAApB;AAOA,IAAIC,iBAAJ;;AAEA,eAAeC,eAAf,GAAiC;AAC/B,MAAID,iBAAJ,EAAuB;AACrB,WAAOA,iBAAP;AACD;;AAED,QAAME,iBAAiB,GAAG,MAAM,yBAAWH,WAAX,CAAhC;;AACA,MAAI,CAACG,iBAAL,EAAwB;AACtB,UAAM,IAAIC,KAAJ,CACJ,gGADI,CAAN;AAGD;;AAED,QAAMC,QAAQ,GAAG,MAAM,uBAASL,WAAT,EAAsB;AAC3CM,IAAAA,QAAQ,EAAE;AADiC,GAAtB,CAAvB;AAIAL,EAAAA,iBAAiB,GAAGM,IAAI,CAACC,KAAL,CAAWH,QAAX,CAApB;AAEA,SAAOJ,iBAAP;AACD;;AAED,SAASQ,mBAAT,GAA+B;AAC7B,QAAMC,SAAS,GAAG,8BAChB,KADgB,EAEhB,CAAC,UAAD,EAAa,QAAb,EAAuB,WAAvB,EAAoC,aAApC,EAAmD,QAAnD,CAFgB,EAGhB;AACEJ,IAAAA,QAAQ,EAAE;AADZ,GAHgB,CAAlB;;AAQA,MAAII,SAAS,CAACC,KAAV,IAAmBD,SAAS,CAACE,MAAV,KAAqB,CAA5C,EAA+C;AAC7C,WAAO,IAAP;AACD;;AAED,QAAMC,UAAU,GAAGH,SAAS,CAACI,MAAV,CAAiBC,IAAjB,EAAnB;AAEA,QAAMC,UAAU,GAAGH,UAAU,CAACI,UAAX,CAAsB,GAAtB,IACfJ,UAAU,CAACK,SAAX,CAAqB,CAArB,CADe,GAEfL,UAFJ;AAIA,SAAOG,UAAP;AACD;;AAEM,MAAMG,UAAU,GAAGC,gBAAMC,SAAN,CAAgB,YAAY;AACpD,QAAMC,MAAM,GAAG,MAAMpB,eAAe,EAApC;;AACA,MAAIoB,MAAM,CAACC,OAAP,KAAmB,mBAAvB,EAA4C;AAC1C,WAAOd,mBAAmB,MAAMa,MAAM,CAACC,OAAvC;AACD;;AACD,SAAOD,MAAM,CAACC,OAAd;AACD,CANyB,CAAnB;;;;AAQA,MAAMC,OAAO,GAAGJ,gBAAMC,SAAN,CAAgB,YAAY;AACjD,QAAMC,MAAM,GAAG,MAAMpB,eAAe,EAApC;AACA,SAAOoB,MAAM,CAACG,IAAd;AACD,CAHsB,CAAhB","sourcesContent":["import { pathExists, readFile } from 'fs-extra';\nimport { spawnSync } from 'child_process';\nimport { Utils } from '@aimee-blue/ab-shared';\n\nconst packageJson = 'package.json';\n\ninterface IPackageJson {\n version: string;\n name: string;\n}\n\nlet loadedPackageJson: IPackageJson | undefined;\n\nasync function loadPackageJson() {\n if (loadedPackageJson) {\n return loadedPackageJson;\n }\n\n const packageJsonExists = await pathExists(packageJson);\n if (!packageJsonExists) {\n throw new Error(\n 'Cannot find package.json, this application is meant to be run with current package.json in cwd'\n );\n }\n\n const contents = await readFile(packageJson, {\n encoding: 'utf8',\n });\n\n loadedPackageJson = JSON.parse(contents) as IPackageJson;\n\n return loadedPackageJson;\n}\n\nfunction determineGitVersion() {\n const gitResult = spawnSync(\n 'git',\n ['describe', '--long', '--dirty=+', '--abbrev=10', '--tags'],\n {\n encoding: 'utf8',\n }\n );\n\n if (gitResult.error || gitResult.status !== 0) {\n return null;\n }\n\n const gitVersion = gitResult.stdout.trim();\n\n const versionStr = gitVersion.startsWith('v')\n ? gitVersion.substring(1)\n : gitVersion;\n\n return versionStr;\n}\n\nexport const appVersion = Utils.onceAsync(async () => {\n const loaded = await loadPackageJson();\n if (loaded.version === '0.0.0-development') {\n return determineGitVersion() || loaded.version;\n }\n return loaded.version;\n});\n\nexport const appName = Utils.onceAsync(async () => {\n const loaded = await loadPackageJson();\n return loaded.name;\n});\n"],"file":"app.js"}