{"version":3,"file":"index.cjs","names":[],"sources":["../src/lcov/collect-lcov-report-paths.function.options.ts","../src/lcov/collect-lcov-report-paths.function.ts","../src/lcov/merge-lcov-reports-in-workspace.function.ts"],"sourcesContent":["import {\n\tnormalizeCollectWorkspacePackagesOptions,\n\ttype CollectWorkspacePackagesOptions,\n\ttype NormalizedCollectWorkspacePackagesOptions,\n} from '@alexaegis/workspace-tools';\n\nexport type CollectLcovReportPathsOptions = Omit<\n\tCollectWorkspacePackagesOptions,\n\t'onlyWorkspaceRoot' | 'skipWorkspaceRoot'\n>;\n\nexport type NormalizedCollectLcovReportPathsOptions = Omit<\n\tNormalizedCollectWorkspacePackagesOptions,\n\t'onlyWorkspaceRoot' | 'skipWorkspaceRoot'\n>;\n\nexport const normalizeCollectLcovReportPathsOptions = (\n\toptions?: CollectLcovReportPathsOptions,\n): NormalizedCollectLcovReportPathsOptions => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { onlyWorkspaceRoot, skipWorkspaceRoot, ...rest } =\n\t\tnormalizeCollectWorkspacePackagesOptions(options);\n\n\treturn rest;\n};\n","import { isNullish } from '@alexaegis/common';\nimport {\n\tNODE_MODULES_DIRECTORY_NAME,\n\tcollectWorkspacePackages,\n\tgetWorkspaceRoot,\n} from '@alexaegis/workspace-tools';\nimport { globby } from 'globby';\nimport {\n\tnormalizeCollectLcovReportPathsOptions,\n\ttype CollectLcovReportPathsOptions,\n} from './collect-lcov-report-paths.function.options.ts';\n\nexport const LCOV_INFO_FILE_NAME = 'lcov.info';\n\nexport const collectLcovReportPaths = async (\n\trawOptions?: CollectLcovReportPathsOptions,\n): Promise<string[]> => {\n\tconst options = normalizeCollectLcovReportPathsOptions(rawOptions);\n\tconst workspaceRoot = getWorkspaceRoot(options);\n\n\tif (isNullish(workspaceRoot)) {\n\t\treturn [];\n\t}\n\n\tconst workspacePackages = await collectWorkspacePackages({\n\t\t...options,\n\t\tskipWorkspaceRoot: true,\n\t});\n\n\tconst lcovPathResults = await Promise.all(\n\t\tworkspacePackages.map((workspacePackage) =>\n\t\t\tglobby([`${workspacePackage.packagePath}/**/${LCOV_INFO_FILE_NAME}`], {\n\t\t\t\tabsolute: true,\n\t\t\t\tonlyFiles: true,\n\t\t\t\tcwd: workspaceRoot,\n\t\t\t\tignore: [`**/${NODE_MODULES_DIRECTORY_NAME}`],\n\t\t\t}),\n\t\t),\n\t);\n\n\treturn lcovPathResults.flat();\n};\n","import { asyncFilterMap } from '@alexaegis/common';\nimport {\n\tnormalizeCollectWorkspacePackagesOptions,\n\ttype CollectWorkspacePackagesOptions,\n} from '@alexaegis/workspace-tools';\nimport { readFile } from 'node:fs/promises';\nimport { collectLcovReportPaths } from './collect-lcov-report-paths.function.ts';\n\nexport const mergeLcovReportsInWorkspace = async (\n\trawOptions?: CollectWorkspacePackagesOptions,\n): Promise<string> => {\n\tconst options = normalizeCollectWorkspacePackagesOptions(rawOptions);\n\tconst lcovPaths = await collectLcovReportPaths(rawOptions);\n\n\toptions.logger.info(\n\t\t`found the following lcov files in the workpace:\\n\\t- ${lcovPaths.join('\\n\\t- ')}`,\n\t);\n\n\tconst allLcovReports = await asyncFilterMap(lcovPaths, (path) =>\n\t\treadFile(path, {\n\t\t\tencoding: 'utf8',\n\t\t}).catch(() => undefined),\n\t);\n\n\treturn allLcovReports.join('\\n');\n};\n"],"mappings":";;;;;;AAgBA,IAAa,0CACZ,YAC6C;CAE7C,MAAM,EAAE,mBAAmB,mBAAmB,GAAG,UAAA,GAAA,2BAAA,yCAAA,CACP,OAAO;CAEjD,OAAO;AACR;;;ACZA,IAAa,sBAAsB;AAEnC,IAAa,yBAAyB,OACrC,eACuB;CACvB,MAAM,UAAU,uCAAuC,UAAU;CACjE,MAAM,iBAAA,GAAA,2BAAA,iBAAA,CAAiC,OAAO;CAE9C,KAAA,GAAA,kBAAA,UAAA,CAAc,aAAa,GAC1B,OAAO,CAAC;CAGT,MAAM,oBAAoB,OAAA,GAAA,2BAAA,yBAAA,CAA+B;EACxD,GAAG;EACH,mBAAmB;CACpB,CAAC;CAaD,QAAO,MAXuB,QAAQ,IACrC,kBAAkB,KAAK,sBAAA,GAAA,OAAA,OAAA,CACf,CAAC,GAAG,iBAAiB,YAAY,MAAM,qBAAqB,GAAG;EACrE,UAAU;EACV,WAAW;EACX,KAAK;EACL,QAAQ,CAAC,MAAM,2BAAA,6BAA6B;CAC7C,CAAC,CACF,CACD,EAAA,CAEuB,KAAK;AAC7B;;;ACjCA,IAAa,8BAA8B,OAC1C,eACqB;CACrB,MAAM,WAAA,GAAA,2BAAA,yCAAA,CAAmD,UAAU;CACnE,MAAM,YAAY,MAAM,uBAAuB,UAAU;CAEzD,QAAQ,OAAO,KACd,wDAAwD,UAAU,KAAK,OAAQ,GAChF;CAQA,QAAO,OAAA,GAAA,kBAAA,eAAA,CANqC,YAAY,UAAA,GAAA,iBAAA,SAAA,CAC9C,MAAM,EACd,UAAU,OACX,CAAC,CAAC,CAAC,YAAY,KAAA,CAAS,CACzB,EAAA,CAEsB,KAAK,IAAI;AAChC"}