@teambit/graph 0.0.553 → 0.0.557

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.
Files changed (54) hide show
  1. package/dist/graph.ui.runtime.d.ts +7 -0
  2. package/dist/ui/dependencies-graph/calc-elements.d.ts +3 -0
  3. package/dist/ui/dependencies-graph/calc-layout.d.ts +3 -0
  4. package/dist/ui/dependencies-graph/graph-context.d.ts +1 -0
  5. package/dist/ui/query/use-graph-query.d.ts +1 -0
  6. package/package.json +20 -12
  7. package/tsconfig.json +1 -2
  8. package/component-graph/component-graph.ts +0 -105
  9. package/component-graph/index.ts +0 -2
  10. package/duplicate-dependency.ts +0 -18
  11. package/edge-type.ts +0 -5
  12. package/graph-builder.ts +0 -56
  13. package/graph.aspect.ts +0 -7
  14. package/graph.docs.md +0 -7
  15. package/graph.graphql.ts +0 -94
  16. package/graph.main.runtime.ts +0 -15
  17. package/graph.provider.ts +0 -14
  18. package/graph.ui.runtime.tsx +0 -41
  19. package/index.ts +0 -11
  20. package/model/dependency/dependency.ts +0 -11
  21. package/model/dependency/index.ts +0 -1
  22. package/model/graph-filters/graph-filters.ts +0 -1
  23. package/model/graph-filters/index.ts +0 -1
  24. package/object-list-to-graph.ts +0 -54
  25. package/package-tar/teambit-graph-0.0.553.tgz +0 -0
  26. package/types/asset.d.ts +0 -29
  27. package/types/style.d.ts +0 -42
  28. package/ui/component-node/component-node.module.scss +0 -63
  29. package/ui/component-node/component-node.tsx +0 -61
  30. package/ui/component-node/index.ts +0 -3
  31. package/ui/component-node/variants.module.scss +0 -43
  32. package/ui/component-node/variants.ts +0 -5
  33. package/ui/dependencies-graph/calc-elements.tsx +0 -47
  34. package/ui/dependencies-graph/calc-layout.tsx +0 -36
  35. package/ui/dependencies-graph/dep-edge/dep-edge.tsx +0 -28
  36. package/ui/dependencies-graph/dep-edge/edge.module.scss +0 -10
  37. package/ui/dependencies-graph/dep-edge/index.ts +0 -1
  38. package/ui/dependencies-graph/dependencies-graph.module.scss +0 -83
  39. package/ui/dependencies-graph/dependencies-graph.tsx +0 -98
  40. package/ui/dependencies-graph/graph-context.ts +0 -9
  41. package/ui/dependencies-graph/index.ts +0 -3
  42. package/ui/dependencies-graph/minimap.ts +0 -15
  43. package/ui/graph-page/graph-filters.tsx +0 -27
  44. package/ui/graph-page/graph-page.module.scss +0 -35
  45. package/ui/graph-page/graph-page.tsx +0 -54
  46. package/ui/graph-page/index.ts +0 -1
  47. package/ui/graph.section.tsx +0 -19
  48. package/ui/query/edge-model.ts +0 -16
  49. package/ui/query/get-graph.query.ts +0 -73
  50. package/ui/query/graph-model.ts +0 -12
  51. package/ui/query/index.ts +0 -6
  52. package/ui/query/node-model.ts +0 -16
  53. package/ui/query/use-graph-query.ts +0 -29
  54. package/ui/query/use-graph.tsx +0 -12
@@ -6,8 +6,15 @@ export interface ComponentWidgetProps extends React.HTMLAttributes<HTMLDivElemen
6
6
  }
7
7
  export declare type ComponentWidget = ComponentType<ComponentWidgetProps>;
8
8
  export declare type ComponentWidgetSlot = SlotRegistry<ComponentWidget>;
9
+ /**
10
+ * Presents dependencies graph in the component page
11
+ */
9
12
  export declare class GraphUI {
10
13
  private componentWidgetSlot;
14
+ /**
15
+ * adds plugins to component nodes
16
+ * @param value
17
+ */
11
18
  registerComponentWidget(value: ComponentWidget): void;
12
19
  constructor(componentWidgetSlot: ComponentWidgetSlot);
13
20
  static dependencies: import("@teambit/harmony").Aspect[];
@@ -4,5 +4,8 @@ import { GraphModel } from '../query';
4
4
  declare type ElementsOptions = {
5
5
  rootNode?: ComponentID;
6
6
  };
7
+ /**
8
+ * generate Nodes and Edges for the ReactFlowRenderer graph renderer
9
+ */
7
10
  export declare function calcElements(graph: GraphModel | undefined, { rootNode }: ElementsOptions): (Node<any> | Edge<any>)[];
8
11
  export {};
@@ -1,4 +1,7 @@
1
1
  import { GraphModel } from '../query';
2
+ /**
3
+ * calculate the specific location of each node in the graph
4
+ */
2
5
  export declare function calcLayout(graph: GraphModel): Map<string, {
3
6
  x: number;
4
7
  y: number;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { ComponentWidgetSlot } from '../../graph.ui.runtime';
3
+ /** internal context, to pass shared information to all nodes */
3
4
  export declare type ComponentGraph = {
4
5
  componentWidgets: ComponentWidgetSlot;
5
6
  };
@@ -1,5 +1,6 @@
1
1
  import { GraphQlError } from '@teambit/graphql';
2
2
  import { GraphModel } from './graph-model';
3
+ /** provides dependencies graph data from graphQL */
3
4
  export declare function useGraphQuery(componentId: string[], filter?: string): {
4
5
  graph: GraphModel | undefined;
5
6
  error: GraphQlError | undefined;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/graph",
3
- "version": "0.0.553",
3
+ "version": "0.0.557",
4
4
  "homepage": "https://bit.dev/teambit/component/graph",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "graph",
9
- "version": "0.0.553"
9
+ "version": "0.0.557"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -23,17 +23,17 @@
23
23
  "@teambit/base-ui.text.muted-text": "1.0.1",
24
24
  "@teambit/evangelist.input.checkbox.label": "1.0.3",
25
25
  "@teambit/documenter.ui.heading": "4.1.1",
26
- "@teambit/component": "0.0.553",
27
- "@teambit/graphql": "0.0.553",
28
- "@teambit/cli": "0.0.384",
29
- "@teambit/ui": "0.0.553",
30
- "@teambit/legacy-bit-id": "0.0.373",
31
- "@teambit/component.ui.deprecation-icon": "0.0.467",
26
+ "@teambit/component": "0.0.557",
27
+ "@teambit/graphql": "0.0.557",
28
+ "@teambit/cli": "0.0.388",
29
+ "@teambit/ui": "0.0.557",
30
+ "@teambit/legacy-bit-id": "0.0.377",
31
+ "@teambit/component.ui.deprecation-icon": "0.0.471",
32
32
  "@teambit/design.ui.styles.ellipsis": "0.0.346",
33
- "@teambit/envs.ui.env-icon": "0.0.461",
33
+ "@teambit/envs.ui.env-icon": "0.0.465",
34
34
  "@teambit/design.ui.pages.not-found": "0.0.352",
35
35
  "@teambit/design.ui.pages.server-error": "0.0.352",
36
- "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.462"
36
+ "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.466"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/react": "^17.0.8",
@@ -49,7 +49,7 @@
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@apollo/client": "^3.0.0",
52
- "@teambit/legacy": "1.0.170",
52
+ "@teambit/legacy": "1.0.174",
53
53
  "react-dom": "^16.8.0 || ^17.0.0",
54
54
  "react": "^16.8.0 || ^17.0.0"
55
55
  },
@@ -77,12 +77,20 @@
77
77
  "react": "-"
78
78
  },
79
79
  "peerDependencies": {
80
- "@teambit/legacy": "1.0.170",
80
+ "@teambit/legacy": "1.0.174",
81
81
  "react-dom": "^16.8.0 || ^17.0.0",
82
82
  "react": "^16.8.0 || ^17.0.0"
83
83
  }
84
84
  }
85
85
  },
86
+ "files": [
87
+ "dist",
88
+ "!dist/tsconfig.tsbuildinfo",
89
+ "README.md",
90
+ "README.mdx",
91
+ "*.js",
92
+ "*.json"
93
+ ],
86
94
  "private": false,
87
95
  "engines": {
88
96
  "node": ">=12.22.0"
package/tsconfig.json CHANGED
@@ -15,9 +15,9 @@
15
15
  "skipLibCheck": true,
16
16
  "moduleResolution": "node",
17
17
  "esModuleInterop": true,
18
- "outDir": "dist",
19
18
  "composite": true,
20
19
  "emitDeclarationOnly": true,
20
+ "outDir": "dist",
21
21
  "experimentalDecorators": true,
22
22
  "emitDecoratorMetadata": true,
23
23
  "allowSyntheticDefaultImports": true,
@@ -25,7 +25,6 @@
25
25
  "strict": true,
26
26
  "noImplicitAny": false,
27
27
  "rootDir": ".",
28
- "removeComments": true,
29
28
  "preserveConstEnums": true,
30
29
  "resolveJsonModule": true
31
30
  },
@@ -1,105 +0,0 @@
1
- import { Component } from '@teambit/component';
2
- import { Graph } from 'cleargraph';
3
-
4
- import { Dependency } from '../model/dependency';
5
- import { DuplicateDependency, VersionSubgraph } from '../duplicate-dependency';
6
-
7
- export const DEPENDENCIES_TYPES = ['dependencies', 'devDependencies'];
8
-
9
- type Node = { id: string; node: Component };
10
- type Edge = { sourceId: string; targetId: string; edge: Dependency };
11
-
12
- export class ComponentGraph extends Graph<Component, Dependency> {
13
- versionMap: Map<string, { allVersionNodes: string[]; latestVersionNode: string }>;
14
- constructor(nodes: Node[] = [], edges: Edge[] = []) {
15
- super(nodes, edges);
16
- this.versionMap = new Map();
17
- }
18
-
19
- protected create(nodes: Node[] = [], edges: Edge[] = []): this {
20
- return new ComponentGraph(nodes, edges) as this;
21
- }
22
-
23
- findDuplicateDependencies(): Map<string, DuplicateDependency> {
24
- const duplicateDependencies: Map<string, DuplicateDependency> = new Map();
25
- for (const [compFullName, versions] of this.versionMap) {
26
- if (versions.allVersionNodes.length > 1) {
27
- const versionSubgraphs: VersionSubgraph[] = [];
28
- const notLatestVersions = versions.allVersionNodes.filter((version) => version !== versions.latestVersionNode);
29
- notLatestVersions.forEach((version) => {
30
- const predecessors = this.predecessorsSubgraph(version);
31
- const immediatePredecessors = this.predecessors(version).map((predecessor) => predecessor.id);
32
- const subGraph = this.buildFromCleargraph(predecessors);
33
- const versionSubgraph: VersionSubgraph = {
34
- versionId: version,
35
- subGraph,
36
- // TODO: validate that this is working correctly
37
- immediateDependents: immediatePredecessors,
38
- };
39
- versionSubgraphs.push(versionSubgraph);
40
- });
41
- if (versionSubgraphs.length > 0) {
42
- const duplicateDep = new DuplicateDependency(versions.latestVersionNode, versionSubgraphs);
43
- duplicateDependencies.set(compFullName, duplicateDep);
44
- }
45
- }
46
- }
47
- return duplicateDependencies;
48
- }
49
-
50
- buildFromCleargraph(graph: Graph<Component, Dependency>): ComponentGraph {
51
- // TODO: once cleargraph constructor and graph.nodes are consistent we should just use this line
52
- // this.create(graph.nodes, graph.edges)
53
-
54
- const newGraph = new ComponentGraph();
55
- const newGraphNodes: Node[] = graph.nodes.map((node) => {
56
- return {
57
- id: node.id,
58
- node: node.attr,
59
- };
60
- });
61
- const newGraphEdges: Edge[] = graph.edges.map((edge) => {
62
- return {
63
- sourceId: edge.sourceId,
64
- targetId: edge.targetId,
65
- edge: edge.attr,
66
- };
67
- });
68
- newGraph.setNodes(newGraphNodes);
69
- newGraph.setEdges(newGraphEdges);
70
-
71
- return newGraph;
72
- }
73
-
74
- runtimeOnly(componentIds: string[]) {
75
- return this.successorsSubgraph(componentIds, (edge) => edge.attr.type === 'runtime');
76
- }
77
-
78
- _calculateVersionMap() {
79
- const versionMap: Map<string, { allVersionNodes: string[]; latestVersionNode: string }> = new Map();
80
- for (const node of this.nodes) {
81
- const comp = node.attr;
82
- const compKey = node.id;
83
- const compFullName = comp.id._legacy.toStringWithoutVersion();
84
- if (!versionMap.has(compFullName)) {
85
- versionMap.set(compFullName, {
86
- allVersionNodes: [compKey],
87
- latestVersionNode: compKey,
88
- });
89
- } else {
90
- const value = versionMap.get(compFullName);
91
- if (value) {
92
- if (Object.prototype.hasOwnProperty.call(value, 'allVersionNodes')) {
93
- value.allVersionNodes.push(compKey);
94
- }
95
- const currentCompVersion = this.node(compKey)?.attr.id._legacy.getVersion();
96
- const latestCompVersion = this.node(value.latestVersionNode)?.attr.id._legacy.getVersion();
97
- if (!!currentCompVersion && !!latestCompVersion && currentCompVersion.isLaterThan(latestCompVersion)) {
98
- value.latestVersionNode = compKey;
99
- }
100
- }
101
- }
102
- }
103
- return versionMap;
104
- }
105
- }
@@ -1,2 +0,0 @@
1
- // eslint-disable-next-line import/no-cycle
2
- export { ComponentGraph } from './component-graph';
@@ -1,18 +0,0 @@
1
- // eslint-disable-next-line import/no-cycle
2
- import type { ComponentGraph } from './component-graph';
3
-
4
- export class DuplicateDependency {
5
- latestVersionId: string;
6
- priorVersions: VersionSubgraph[];
7
-
8
- constructor(latestVersionId: string, priorVersions: VersionSubgraph[]) {
9
- this.latestVersionId = latestVersionId;
10
- this.priorVersions = priorVersions;
11
- }
12
- }
13
-
14
- export type VersionSubgraph = {
15
- versionId: string;
16
- subGraph: ComponentGraph;
17
- immediateDependents: string[];
18
- };
package/edge-type.ts DELETED
@@ -1,5 +0,0 @@
1
- export enum EdgeType {
2
- dev = 'DEV',
3
- runtime = 'RUNTIME',
4
- peer = 'PEER',
5
- }
package/graph-builder.ts DELETED
@@ -1,56 +0,0 @@
1
- import { ComponentFactory, ComponentID, ComponentMain } from '@teambit/component';
2
- import type LegacyGraph from '@teambit/legacy/dist/scope/graph/graph';
3
- import { ComponentGraph } from './component-graph';
4
- import { Dependency } from './model/dependency';
5
-
6
- type GetGraphOpts = {
7
- host?: ComponentFactory;
8
- };
9
-
10
- type BuildFromLegacyGraphOpts = {
11
- host?: ComponentFactory;
12
- };
13
- export class GraphBuilder {
14
- _graph?: ComponentGraph;
15
- _initialized = false;
16
- constructor(private componentAspect: ComponentMain) {}
17
-
18
- async getGraph(ids?: ComponentID[], opts: GetGraphOpts = {}): Promise<ComponentGraph> {
19
- const componentHost = opts.host || this.componentAspect.getHost();
20
-
21
- const legacyGraph = await componentHost.getLegacyGraph(ids);
22
- const graph = await this.buildFromLegacy(legacyGraph, { host: opts.host });
23
- this._graph = graph;
24
- this._initialized = true;
25
- return this._graph;
26
- }
27
-
28
- private async buildFromLegacy(
29
- legacyGraph: LegacyGraph,
30
- opts: BuildFromLegacyGraphOpts = {}
31
- ): Promise<ComponentGraph> {
32
- const newGraph = new ComponentGraph();
33
- const componentHost = opts.host || this.componentAspect.getHost();
34
-
35
- const setNodeP = legacyGraph.nodes().map(async (nodeId) => {
36
- const componentId = await componentHost.resolveComponentId(nodeId);
37
- const component = await componentHost.get(componentId);
38
- if (component) {
39
- newGraph.setNode(componentId.toString(), component);
40
- }
41
- });
42
- await Promise.all(setNodeP);
43
-
44
- const setEdgePromise = legacyGraph.edges().map(async (edgeId) => {
45
- const source = await componentHost.resolveComponentId(edgeId.v);
46
- const target = await componentHost.resolveComponentId(edgeId.w);
47
- const edgeObj =
48
- legacyGraph.edge(edgeId.v, edgeId.w) === 'dependencies' ? new Dependency('runtime') : new Dependency('dev');
49
- newGraph.setEdge(source.toString(), target.toString(), edgeObj);
50
- });
51
- await Promise.all(setEdgePromise);
52
-
53
- newGraph.versionMap = newGraph._calculateVersionMap();
54
- return newGraph;
55
- }
56
- }
package/graph.aspect.ts DELETED
@@ -1,7 +0,0 @@
1
- import { Aspect } from '@teambit/harmony';
2
-
3
- export const GraphAspect = Aspect.create({
4
- id: 'teambit.component/graph',
5
- dependencies: [],
6
- defaultConfig: {},
7
- });
package/graph.docs.md DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- description: Generate Bit component dependency graphs.
3
- labels: ['dependency', 'graph', 'component', 'bit']
4
- ---
5
-
6
- This is an extension that knows to build a graph of components from a component or a list of components.
7
- It uses the component-resolver extension in order to resolve the component dependencies during the graph building.
package/graph.graphql.ts DELETED
@@ -1,94 +0,0 @@
1
- import { ComponentMain } from '@teambit/component';
2
- import { Schema } from '@teambit/graphql';
3
- import gql from 'graphql-tag';
4
-
5
- import { GraphBuilder } from './graph-builder';
6
- import { ComponentGraph } from './component-graph';
7
- import { GraphFilter } from './model/graph-filters';
8
- import { DependencyType } from './model/dependency';
9
- import { EdgeType } from './edge-type';
10
-
11
- const textCmp = new Intl.Collator().compare;
12
-
13
- export function graphSchema(graphBuilder: GraphBuilder, componentAspect: ComponentMain): Schema {
14
- return {
15
- typeDefs: gql`
16
- type ComponentGraph {
17
- nodes: [ComponentGraphNode]
18
- edges: [ComponentGraphEdge]
19
- }
20
-
21
- type ComponentGraphNode {
22
- id: String
23
- component: Component
24
- }
25
-
26
- enum DependencyLifecycleType {
27
- PEER
28
- RUNTIME
29
- DEV
30
- }
31
-
32
- type ComponentGraphEdge {
33
- sourceId: String
34
- targetId: String
35
- dependencyLifecycleType: DependencyLifecycleType
36
- }
37
-
38
- extend type Query {
39
- graph(ids: [String], filter: String): ComponentGraph
40
- }
41
- `,
42
- resolvers: {
43
- ComponentGraph: {
44
- nodes: (graph: ComponentGraph) => {
45
- return graph.nodes
46
- .map((node) => {
47
- return {
48
- id: node.id,
49
- component: node.attr,
50
- };
51
- })
52
- .sort((a, b) => textCmp(a.id, b.id));
53
- },
54
- edges: (graph: ComponentGraph) => {
55
- return graph.edges
56
- .map(
57
- (edge) =>
58
- ({
59
- sourceId: edge.sourceId,
60
- targetId: edge.targetId,
61
- dependencyLifecycleType: getDependencyLifecycleType(edge.attr.type),
62
- } as { sourceId: string; targetId: string; dependencyLifecycleType: EdgeType })
63
- )
64
- .sort((a, b) => textCmp(a.sourceId, b.sourceId))
65
- .sort((a, b) => textCmp(a.targetId, b.targetId));
66
- },
67
- },
68
- Query: {
69
- graph: async (_parent, { ids, filter }: { ids?: string[]; filter?: GraphFilter }) => {
70
- const componentsHost = componentAspect.getHost();
71
- const resolvedIds = ids
72
- ? await componentsHost.resolveMultipleComponentIds(ids)
73
- : (await componentsHost.list()).map((x) => x.id);
74
-
75
- const graph = await graphBuilder.getGraph(resolvedIds);
76
- if (!graph) return undefined;
77
-
78
- if (filter === 'runtimeOnly') {
79
- const runtimeGraph = graph.runtimeOnly(resolvedIds.map((x) => x.toString()));
80
- return runtimeGraph;
81
- }
82
-
83
- return graph;
84
- },
85
- },
86
- },
87
- };
88
- }
89
-
90
- function getDependencyLifecycleType(edgeRawData: DependencyType): EdgeType {
91
- if (edgeRawData === 'dev') return EdgeType.dev;
92
- if (edgeRawData === 'runtime') return EdgeType.runtime;
93
- return EdgeType.peer;
94
- }
@@ -1,15 +0,0 @@
1
- import { MainRuntime } from '@teambit/cli';
2
- import GraphqlAspect from '@teambit/graphql';
3
- import { ComponentAspect } from '@teambit/component';
4
-
5
- import { GraphAspect } from './graph.aspect';
6
- import { provide } from './graph.provider';
7
-
8
- export const GraphMain = {
9
- name: 'graph',
10
- runtime: MainRuntime,
11
- dependencies: [GraphqlAspect, ComponentAspect],
12
- provider: provide,
13
- };
14
-
15
- GraphAspect.addRuntime(GraphMain);
package/graph.provider.ts DELETED
@@ -1,14 +0,0 @@
1
- import { GraphqlMain } from '@teambit/graphql';
2
- import { ComponentMain } from '@teambit/component';
3
-
4
- import { GraphBuilder } from './graph-builder';
5
- import { graphSchema } from './graph.graphql';
6
-
7
- export type GraphDeps = [GraphqlMain, ComponentMain];
8
-
9
- export async function provide([graphql, componentAspect]: GraphDeps): Promise<GraphBuilder> {
10
- const graphBuilder = new GraphBuilder(componentAspect);
11
- // TODO: make sure it's working (the host here might be undefined?)
12
- graphql.register(graphSchema(graphBuilder, componentAspect));
13
- return graphBuilder;
14
- }
@@ -1,41 +0,0 @@
1
- import { ComponentType } from 'react';
2
- import { UIRuntime } from '@teambit/ui';
3
- import { Slot, SlotRegistry } from '@teambit/harmony';
4
-
5
- import { ComponentAspect, ComponentUI, ComponentModel } from '@teambit/component';
6
- import { GraphAspect } from './graph.aspect';
7
- import { GraphSection } from './ui/graph.section';
8
-
9
- export interface ComponentWidgetProps extends React.HTMLAttributes<HTMLDivElement> {
10
- component: ComponentModel;
11
- }
12
- export type ComponentWidget = ComponentType<ComponentWidgetProps>;
13
- export type ComponentWidgetSlot = SlotRegistry<ComponentWidget>;
14
-
15
- /**
16
- * Presents dependencies graph in the component page
17
- */
18
- export class GraphUI {
19
- /**
20
- * adds plugins to component nodes
21
- * @param value
22
- */
23
- registerComponentWidget(value: ComponentWidget) {
24
- this.componentWidgetSlot.register(value);
25
- }
26
-
27
- constructor(private componentWidgetSlot: ComponentWidgetSlot) {}
28
- static dependencies = [ComponentAspect];
29
- static runtime = UIRuntime;
30
- static slots = [Slot.withType<ComponentWidget>()];
31
- static async provider([componentUI]: [ComponentUI], config, [componentWidgetSlot]: [ComponentWidgetSlot]) {
32
- const graphUI = new GraphUI(componentWidgetSlot);
33
- const section = new GraphSection(componentWidgetSlot);
34
- componentUI.registerNavigation(section.navigationLink, section.order);
35
- componentUI.registerRoute(section.route);
36
-
37
- return graphUI;
38
- }
39
- }
40
-
41
- GraphAspect.addRuntime(GraphUI);
package/index.ts DELETED
@@ -1,11 +0,0 @@
1
- export { GraphAspect as default, GraphAspect } from './graph.aspect';
2
-
3
- export { Dependency } from './model/dependency';
4
- export { DuplicateDependency, VersionSubgraph } from './duplicate-dependency';
5
- export type { ComponentGraph } from './component-graph';
6
- export type { GraphBuilder } from './graph-builder';
7
- export type { GraphMain } from './graph.main.runtime';
8
- export { EdgeType } from './edge-type';
9
- export type { GraphUI, ComponentWidget, ComponentWidgetSlot, ComponentWidgetProps } from './graph.ui.runtime';
10
- export { useGraph, useGraphQuery, GraphModel, EdgeModel, NodeModel } from './ui/query';
11
- export { objectListToGraph, IdGraph } from './object-list-to-graph';
@@ -1,11 +0,0 @@
1
- export type DependencyType = 'dev' | 'peer' | 'runtime';
2
-
3
- export class Dependency {
4
- readonly type: DependencyType;
5
- constructor(type: DependencyType) {
6
- this.type = type;
7
- }
8
- stringify(): string {
9
- return this.type;
10
- }
11
- }
@@ -1 +0,0 @@
1
- export { Dependency, DependencyType } from './dependency';
@@ -1 +0,0 @@
1
- export type GraphFilter = 'runtimeOnly' | undefined;
@@ -1 +0,0 @@
1
- export type { GraphFilter } from './graph-filters';
@@ -1,54 +0,0 @@
1
- import { Graph } from 'cleargraph';
2
- import { uniqBy } from 'lodash';
3
- import { BitId } from '@teambit/legacy-bit-id';
4
- import { ObjectList } from '@teambit/legacy/dist/scope/objects/object-list';
5
- import { getAllVersionsInfo } from '@teambit/legacy/dist/scope/component-ops/traverse-versions';
6
- import { Dependency } from './model/dependency';
7
-
8
- type Node = { id: string; node: BitId };
9
- type Edge = { sourceId: string; targetId: string; edge: Dependency };
10
-
11
- export class IdGraph extends Graph<BitId, Dependency> {
12
- constructor(nodes: Node[] = [], edges: Edge[] = []) {
13
- super(nodes, edges);
14
- }
15
- }
16
-
17
- export async function objectListToGraph(objectList: ObjectList): Promise<IdGraph> {
18
- const bitObjectsList = await objectList.toBitObjects();
19
- const components = bitObjectsList.getComponents();
20
- const versions = bitObjectsList.getVersions();
21
- const nodes: Node[] = [];
22
- const edges: Edge[] = [];
23
- await Promise.all(
24
- components.map(async (component) => {
25
- const versionsInfo = await getAllVersionsInfo({
26
- modelComponent: component,
27
- versionObjects: versions,
28
- throws: false,
29
- });
30
- versionsInfo.forEach((versionInfo) => {
31
- const id = component.toBitId().changeVersion(versionInfo.tag || versionInfo.ref.toString());
32
- const idStr = id.toString();
33
- nodes.push({ id: idStr, node: id });
34
- if (!versionInfo.version) {
35
- return;
36
- }
37
- const { dependencies, devDependencies, extensionDependencies } = versionInfo.version.depsIdsGroupedByType;
38
- const addDep = (depId: BitId, edge: Dependency) => {
39
- const depIdStr = depId.toString();
40
- nodes.push({ id: depIdStr, node: depId });
41
- edges.push({ sourceId: idStr, targetId: depIdStr, edge });
42
- };
43
- const runTime = new Dependency('runtime');
44
- const dev = new Dependency('dev');
45
- dependencies.forEach((depId) => addDep(depId, runTime));
46
- [...devDependencies, ...extensionDependencies].forEach((depId) => addDep(depId, dev));
47
- });
48
- })
49
- );
50
- const uniqNodes = uniqBy(nodes, 'id');
51
- const idGraph = new IdGraph(uniqNodes, edges);
52
-
53
- return idGraph;
54
- }
package/types/asset.d.ts DELETED
@@ -1,29 +0,0 @@
1
- declare module '*.png' {
2
- const value: any;
3
- export = value;
4
- }
5
- declare module '*.svg' {
6
- import type { FunctionComponent, SVGProps } from 'react';
7
-
8
- export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
9
- const src: string;
10
- export default src;
11
- }
12
-
13
- // @TODO Gilad
14
- declare module '*.jpg' {
15
- const value: any;
16
- export = value;
17
- }
18
- declare module '*.jpeg' {
19
- const value: any;
20
- export = value;
21
- }
22
- declare module '*.gif' {
23
- const value: any;
24
- export = value;
25
- }
26
- declare module '*.bmp' {
27
- const value: any;
28
- export = value;
29
- }