@teambit/insights 0.0.812 → 0.0.815
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all-insights/duplicate-dependencies.ts +10 -4
- package/dist/all-insights/duplicate-dependencies.js +6 -1
- package/dist/all-insights/duplicate-dependencies.js.map +1 -1
- package/package-tar/teambit-insights-0.0.815.tgz +0 -0
- package/package.json +6 -6
- package/{preview-1660102118004.js → preview-1660361218837.js} +1 -1
- package/package-tar/teambit-insights-0.0.812.tgz +0 -0
|
@@ -68,9 +68,10 @@ export default class DuplicateDependencies implements Insight {
|
|
|
68
68
|
return formatted;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
private getDependents(
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
private getDependents(priorVersions: VersionSubgraph[]): {
|
|
72
|
+
totalOutdatedDependents: number;
|
|
73
|
+
dependentsByVersion: VersionWithDependents[];
|
|
74
|
+
} {
|
|
74
75
|
let totalOutdatedDependents = 0;
|
|
75
76
|
const dependentsByVersion: VersionWithDependents[] = [];
|
|
76
77
|
priorVersions.forEach((pVersion: VersionSubgraph) => {
|
|
@@ -94,7 +95,12 @@ export default class DuplicateDependencies implements Insight {
|
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
revreseCompareVersions(v1: VersionWithDependents, v2: VersionWithDependents) {
|
|
97
|
-
|
|
98
|
+
try {
|
|
99
|
+
return rcompare(v1.version, v2.version);
|
|
100
|
+
} catch (err) {
|
|
101
|
+
// in case one of them is a snap
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
98
104
|
}
|
|
99
105
|
|
|
100
106
|
private stringifyDependents(dependents: Dependent[]): string {
|
|
@@ -133,7 +133,12 @@ class DuplicateDependencies {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
revreseCompareVersions(v1, v2) {
|
|
136
|
-
|
|
136
|
+
try {
|
|
137
|
+
return (0, _semver().rcompare)(v1.version, v2.version);
|
|
138
|
+
} catch (err) {
|
|
139
|
+
// in case one of them is a snap
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
137
142
|
}
|
|
138
143
|
|
|
139
144
|
stringifyDependents(dependents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["INSIGHT_NAME","DuplicateDependencies","constructor","graphBuilder","runInsight","graph","getGraph","message","data","undefined","duplicates","findDuplicateDependencies","lenDependencies","keys","length","formatData","formatted","dependency","depData","entries","totalOutdatedDependents","dependentsByVersion","getDependents","priorVersions","push","dependencyId","latestVersion","latestVersionId","toString","forEach","pVersion","dependents","version","ComponentID","fromString","versionId","split","immediateDependents","dependent","id","usedVersion","compId","sort","revreseCompareVersions","v1","v2","rcompare","stringifyDependents","string","map","join","stringifyDependentsByVersion","versions","renderData","obj","run","bareResult","formattedData","renderedData","result","metaData","name","description"],"sources":["duplicate-dependencies.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { GraphBuilder, VersionSubgraph } from '@teambit/graph';\nimport { rcompare } from 'semver';\n// import { ComponentID } from '../../../component/component-id';\nimport { ComponentID } from '@teambit/component';\nimport { Insight, InsightResult, RawResult } from '../insight';\n// import NoDataForInsight from '../exceptions/no-data-for-insight';\n\nexport const INSIGHT_NAME = 'duplicate dependencies';\n\ntype Dependent = {\n id: string;\n usedVersion: string;\n};\n\ntype VersionWithDependents = {\n version: string;\n compId: string;\n dependents: Dependent[];\n};\n\ntype FormattedEntry = {\n dependencyId: string;\n latestVersion: string;\n totalOutdatedDependents: string;\n dependentsByVersion: VersionWithDependents[];\n};\nexport default class DuplicateDependencies implements Insight {\n name = INSIGHT_NAME;\n description = 'Get all duplicate dependencies in component graph';\n graphBuilder: GraphBuilder;\n constructor(graphBuilder: GraphBuilder) {\n this.graphBuilder = graphBuilder;\n }\n private async runInsight(): Promise<RawResult> {\n const graph = await this.graphBuilder.getGraph();\n if (!graph) {\n return {\n message: 'No graph found',\n data: undefined,\n };\n }\n const duplicates = graph.findDuplicateDependencies();\n const lenDependencies = [...duplicates.keys()].length;\n if (lenDependencies === 1) {\n return {\n message: `Found ${lenDependencies} duplicate dependency.`,\n data: duplicates,\n };\n }\n return {\n message: `Found ${lenDependencies} duplicate dependencies.`,\n data: duplicates,\n };\n }\n\n private formatData(data: any): FormattedEntry[] {\n const formatted: FormattedEntry[] = [];\n for (const [dependency, depData] of data.entries()) {\n const { totalOutdatedDependents, dependentsByVersion } = this.getDependents(depData.priorVersions);\n formatted.push({\n dependencyId: dependency,\n latestVersion: depData.latestVersionId,\n totalOutdatedDependents: totalOutdatedDependents.toString(),\n dependentsByVersion,\n });\n }\n return formatted;\n }\n\n private getDependents(
|
|
1
|
+
{"version":3,"names":["INSIGHT_NAME","DuplicateDependencies","constructor","graphBuilder","runInsight","graph","getGraph","message","data","undefined","duplicates","findDuplicateDependencies","lenDependencies","keys","length","formatData","formatted","dependency","depData","entries","totalOutdatedDependents","dependentsByVersion","getDependents","priorVersions","push","dependencyId","latestVersion","latestVersionId","toString","forEach","pVersion","dependents","version","ComponentID","fromString","versionId","split","immediateDependents","dependent","id","usedVersion","compId","sort","revreseCompareVersions","v1","v2","rcompare","err","stringifyDependents","string","map","join","stringifyDependentsByVersion","versions","renderData","obj","run","bareResult","formattedData","renderedData","result","metaData","name","description"],"sources":["duplicate-dependencies.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { GraphBuilder, VersionSubgraph } from '@teambit/graph';\nimport { rcompare } from 'semver';\n// import { ComponentID } from '../../../component/component-id';\nimport { ComponentID } from '@teambit/component';\nimport { Insight, InsightResult, RawResult } from '../insight';\n// import NoDataForInsight from '../exceptions/no-data-for-insight';\n\nexport const INSIGHT_NAME = 'duplicate dependencies';\n\ntype Dependent = {\n id: string;\n usedVersion: string;\n};\n\ntype VersionWithDependents = {\n version: string;\n compId: string;\n dependents: Dependent[];\n};\n\ntype FormattedEntry = {\n dependencyId: string;\n latestVersion: string;\n totalOutdatedDependents: string;\n dependentsByVersion: VersionWithDependents[];\n};\nexport default class DuplicateDependencies implements Insight {\n name = INSIGHT_NAME;\n description = 'Get all duplicate dependencies in component graph';\n graphBuilder: GraphBuilder;\n constructor(graphBuilder: GraphBuilder) {\n this.graphBuilder = graphBuilder;\n }\n private async runInsight(): Promise<RawResult> {\n const graph = await this.graphBuilder.getGraph();\n if (!graph) {\n return {\n message: 'No graph found',\n data: undefined,\n };\n }\n const duplicates = graph.findDuplicateDependencies();\n const lenDependencies = [...duplicates.keys()].length;\n if (lenDependencies === 1) {\n return {\n message: `Found ${lenDependencies} duplicate dependency.`,\n data: duplicates,\n };\n }\n return {\n message: `Found ${lenDependencies} duplicate dependencies.`,\n data: duplicates,\n };\n }\n\n private formatData(data: any): FormattedEntry[] {\n const formatted: FormattedEntry[] = [];\n for (const [dependency, depData] of data.entries()) {\n const { totalOutdatedDependents, dependentsByVersion } = this.getDependents(depData.priorVersions);\n formatted.push({\n dependencyId: dependency,\n latestVersion: depData.latestVersionId,\n totalOutdatedDependents: totalOutdatedDependents.toString(),\n dependentsByVersion,\n });\n }\n return formatted;\n }\n\n private getDependents(priorVersions: VersionSubgraph[]): {\n totalOutdatedDependents: number;\n dependentsByVersion: VersionWithDependents[];\n } {\n let totalOutdatedDependents = 0;\n const dependentsByVersion: VersionWithDependents[] = [];\n priorVersions.forEach((pVersion: VersionSubgraph) => {\n const dependents: Dependent[] = [];\n const version = ComponentID.fromString(pVersion.versionId).version || pVersion.versionId.split('@')[1];\n pVersion.immediateDependents.forEach((dependent: string) => {\n dependents.push({\n id: dependent,\n usedVersion: pVersion.versionId,\n });\n });\n dependentsByVersion.push({\n compId: pVersion.versionId,\n version,\n dependents,\n });\n totalOutdatedDependents += pVersion.immediateDependents.length;\n });\n dependentsByVersion.sort(this.revreseCompareVersions);\n return { totalOutdatedDependents, dependentsByVersion };\n }\n\n revreseCompareVersions(v1: VersionWithDependents, v2: VersionWithDependents) {\n try {\n return rcompare(v1.version, v2.version);\n } catch (err) {\n // in case one of them is a snap\n return 0;\n }\n }\n\n private stringifyDependents(dependents: Dependent[]): string {\n const string = dependents\n .map((dependent) => {\n return `- ${dependent.id} => ${dependent.usedVersion}`;\n })\n .join('\\n');\n return string;\n }\n\n private stringifyDependentsByVersion(versions: VersionWithDependents[]): string {\n const string = versions\n .map((version) => {\n return `- ${version.compId} has ${version.dependents.length} dependents`;\n })\n .join('\\n');\n return string;\n }\n\n private renderData(data: FormattedEntry[]) {\n const string = data\n .map((obj) => {\n return `\\n\\nFound ${obj.totalOutdatedDependents} outdated dependents for ${obj.dependencyId}\nThe latest version is \"${obj.latestVersion}\"\nOutdated dependents:\n${this.stringifyDependentsByVersion(obj.dependentsByVersion)}`;\n })\n .join('\\n');\n return string;\n }\n\n async run(): Promise<InsightResult> {\n const bareResult = await this.runInsight();\n const formattedData = this.formatData(bareResult.data);\n const renderedData = this.renderData(formattedData);\n const result: InsightResult = {\n metaData: {\n name: this.name,\n description: this.description,\n },\n data: formattedData,\n message: bareResult.message,\n renderedData,\n };\n\n if (bareResult.message) {\n result.message = bareResult.message;\n }\n return result;\n }\n}\n"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/insights",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.815",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/explorer/insights",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.explorer",
|
|
8
8
|
"name": "insights",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.815"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"@babel/runtime": "7.12.18",
|
|
17
17
|
"core-js": "^3.0.0",
|
|
18
18
|
"@teambit/harmony": "0.3.3",
|
|
19
|
-
"@teambit/graph": "0.0.
|
|
20
|
-
"@teambit/component": "0.0.
|
|
21
|
-
"@teambit/cli": "0.0.
|
|
19
|
+
"@teambit/graph": "0.0.815",
|
|
20
|
+
"@teambit/component": "0.0.815",
|
|
21
|
+
"@teambit/cli": "0.0.544",
|
|
22
22
|
"@teambit/component-issues": "0.0.60",
|
|
23
23
|
"@teambit/bit-error": "0.0.394"
|
|
24
24
|
},
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@types/node": "12.20.4"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@teambit/legacy": "1.0.
|
|
36
|
+
"@teambit/legacy": "1.0.327",
|
|
37
37
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
38
38
|
"react": "^16.8.0 || ^17.0.0"
|
|
39
39
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
;
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_insights@0.0.
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_insights@0.0.815/dist/insights.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [];
|
|
5
5
|
export const overview = [overview_0];
|
|
Binary file
|