@teambit/isolator 0.0.1052 → 0.0.1053

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.
@@ -50,14 +50,19 @@ class CapsuleList extends Array {
50
50
  async toposort(depResolver) {
51
51
  const components = this.getAllComponents();
52
52
  const graph = new (_graph().Graph)();
53
- components.forEach(comp => graph.setNode(new (_graph().Node)(comp.id.toString(), comp)));
54
- for (const comp of components) {
53
+
54
+ // Build a graph with all the components from the current capsule list
55
+ components.forEach(comp => graph.setNode(new (_graph().Node)(depResolver.getPackageName(comp), comp)));
56
+
57
+ // Add edges between the components according to their interdependencies
58
+ for (const node of graph.nodes) {
55
59
  // eslint-disable-next-line no-await-in-loop
56
- const deps = await depResolver.getComponentDependencies(comp);
60
+ const deps = await depResolver.getDependencies(node.attr);
57
61
  deps.forEach(dep => {
58
- const depCompId = dep.componentId;
59
- if (graph.hasNode(depCompId.toString())) {
60
- graph.setEdge(new (_graph().Edge)(comp.id.toString(), depCompId.toString(), dep.lifecycle));
62
+ var _dep$getPackageName;
63
+ const depPkgName = (_dep$getPackageName = dep.getPackageName) === null || _dep$getPackageName === void 0 ? void 0 : _dep$getPackageName.call(dep);
64
+ if (depPkgName && graph.hasNode(depPkgName)) {
65
+ graph.setEdge(new (_graph().Edge)(node.id, depPkgName, dep.lifecycle));
61
66
  }
62
67
  });
63
68
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CapsuleList","Array","getCapsule","id","find","capsule","component","isEqual","getCapsuleByLegacyId","_legacy","getCapsuleIgnoreVersion","ignoreVersion","getCapsuleIgnoreScopeAndVersion","isEqualWithoutScopeAndVersion","getAllCapsuleDirs","map","path","getIdByPathInCapsule","pathInCapsule","normalizedPathInCapsule","normalize","found","getAllComponents","c","toposort","depResolver","components","graph","Graph","forEach","comp","setNode","Node","toString","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","setEdge","Edge","lifecycle","sortedSeeders","sortedCapsules","node","attr","fromArray","capsules","capsuleUsePreviouslySavedDists","isModified","buildStatus"],"sources":["capsule-list.ts"],"sourcesContent":["import type { Component, ComponentID } from '@teambit/component';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Edge, Graph, Node } from '@teambit/graph.cleargraph';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { normalize } from 'path';\nimport { Capsule } from './capsule';\n\nexport default class CapsuleList extends Array<Capsule> {\n getCapsule(id: ComponentID): Capsule | undefined {\n return this.find((capsule) => capsule.component.id.isEqual(id));\n }\n getCapsuleByLegacyId(id: BitId): Capsule | undefined {\n return this.find((capsule) => capsule.component.id._legacy.isEqual(id));\n }\n getCapsuleIgnoreVersion(id: ComponentID): Capsule | undefined {\n return this.find((capsule) => capsule.component.id.isEqual(id, { ignoreVersion: true }));\n }\n getCapsuleIgnoreScopeAndVersion(id: ComponentID): Capsule | undefined {\n return this.find((capsule) => capsule.component.id._legacy.isEqualWithoutScopeAndVersion(id._legacy));\n }\n getAllCapsuleDirs(): string[] {\n return this.map((capsule) => capsule.path);\n }\n getIdByPathInCapsule(pathInCapsule: string): ComponentID | null {\n const normalizedPathInCapsule = normalize(pathInCapsule);\n const found = this.find((capsule) => normalizedPathInCapsule === normalize(capsule.path));\n return found ? found.component.id : null;\n }\n getAllComponents(): Component[] {\n return this.map((c) => c.component);\n }\n // Sort the capsules by their dependencies. The capsules with no dependencies will be first. Returns a new array.\n async toposort(depResolver: DependencyResolverMain): Promise<CapsuleList> {\n const components = this.getAllComponents();\n const graph = new Graph<Component, string>();\n\n components.forEach((comp) => graph.setNode(new Node(comp.id.toString(), comp)));\n\n for (const comp of components) {\n // eslint-disable-next-line no-await-in-loop\n const deps = await depResolver.getComponentDependencies(comp);\n deps.forEach((dep) => {\n const depCompId = dep.componentId;\n if (graph.hasNode(depCompId.toString())) {\n graph.setEdge(new Edge(comp.id.toString(), depCompId.toString(), dep.lifecycle));\n }\n });\n }\n\n const sortedSeeders = graph.toposort(true);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sortedCapsules: Capsule[] = sortedSeeders.map((node: Node<Component>) => this.getCapsule(node.attr.id)!);\n return CapsuleList.fromArray(sortedCapsules);\n }\n static fromArray(capsules: Capsule[]) {\n return new CapsuleList(...capsules);\n }\n /**\n * determines whether or not a capsule can theoretically use the dists saved in the last snap, rather than re-compile them.\n * practically, this optimization is used for components that have typescript as their compiler.\n */\n static async capsuleUsePreviouslySavedDists(component: Component): Promise<boolean> {\n const isModified = await component.isModified();\n return component.buildStatus === 'succeed' && !isModified;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["CapsuleList","Array","getCapsule","id","find","capsule","component","isEqual","getCapsuleByLegacyId","_legacy","getCapsuleIgnoreVersion","ignoreVersion","getCapsuleIgnoreScopeAndVersion","isEqualWithoutScopeAndVersion","getAllCapsuleDirs","map","path","getIdByPathInCapsule","pathInCapsule","normalizedPathInCapsule","normalize","found","getAllComponents","c","toposort","depResolver","components","graph","Graph","forEach","comp","setNode","Node","getPackageName","node","nodes","deps","getDependencies","attr","dep","depPkgName","hasNode","setEdge","Edge","lifecycle","sortedSeeders","sortedCapsules","fromArray","capsules","capsuleUsePreviouslySavedDists","isModified","buildStatus"],"sources":["capsule-list.ts"],"sourcesContent":["import type { Component, ComponentID } from '@teambit/component';\nimport { Dependency, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { Edge, Graph, Node } from '@teambit/graph.cleargraph';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { normalize } from 'path';\nimport { Capsule } from './capsule';\n\nexport default class CapsuleList extends Array<Capsule> {\n getCapsule(id: ComponentID): Capsule | undefined {\n return this.find((capsule) => capsule.component.id.isEqual(id));\n }\n getCapsuleByLegacyId(id: BitId): Capsule | undefined {\n return this.find((capsule) => capsule.component.id._legacy.isEqual(id));\n }\n getCapsuleIgnoreVersion(id: ComponentID): Capsule | undefined {\n return this.find((capsule) => capsule.component.id.isEqual(id, { ignoreVersion: true }));\n }\n getCapsuleIgnoreScopeAndVersion(id: ComponentID): Capsule | undefined {\n return this.find((capsule) => capsule.component.id._legacy.isEqualWithoutScopeAndVersion(id._legacy));\n }\n getAllCapsuleDirs(): string[] {\n return this.map((capsule) => capsule.path);\n }\n getIdByPathInCapsule(pathInCapsule: string): ComponentID | null {\n const normalizedPathInCapsule = normalize(pathInCapsule);\n const found = this.find((capsule) => normalizedPathInCapsule === normalize(capsule.path));\n return found ? found.component.id : null;\n }\n getAllComponents(): Component[] {\n return this.map((c) => c.component);\n }\n // Sort the capsules by their dependencies. The capsules with no dependencies will be first. Returns a new array.\n async toposort(depResolver: DependencyResolverMain): Promise<CapsuleList> {\n const components = this.getAllComponents();\n const graph = new Graph<Component, string>();\n\n // Build a graph with all the components from the current capsule list\n components.forEach((comp: Component) => graph.setNode(new Node(depResolver.getPackageName(comp), comp)));\n\n // Add edges between the components according to their interdependencies\n for (const node of graph.nodes) {\n // eslint-disable-next-line no-await-in-loop\n const deps = await depResolver.getDependencies(node.attr);\n deps.forEach((dep: Dependency) => {\n const depPkgName = dep.getPackageName?.();\n if (depPkgName && graph.hasNode(depPkgName)) {\n graph.setEdge(new Edge(node.id, depPkgName, dep.lifecycle));\n }\n });\n }\n\n const sortedSeeders = graph.toposort(true);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sortedCapsules: Capsule[] = sortedSeeders.map((node: Node<Component>) => this.getCapsule(node.attr.id)!);\n return CapsuleList.fromArray(sortedCapsules);\n }\n static fromArray(capsules: Capsule[]) {\n return new CapsuleList(...capsules);\n }\n /**\n * determines whether or not a capsule can theoretically use the dists saved in the last snap, rather than re-compile them.\n * practically, this optimization is used for components that have typescript as their compiler.\n */\n static async capsuleUsePreviouslySavedDists(component: Component): Promise<boolean> {\n const isModified = await component.isModified();\n return component.buildStatus === 'succeed' && !isModified;\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_isolator@0.0.1052/dist/isolator.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_isolator@0.0.1052/dist/isolator.docs.md';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_isolator@0.0.1053/dist/isolator.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_isolator@0.0.1053/dist/isolator.docs.md';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/isolator",
3
- "version": "0.0.1052",
3
+ "version": "0.0.1053",
4
4
  "homepage": "https://bit.cloud/teambit/component/isolator",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "isolator",
9
- "version": "0.0.1052"
9
+ "version": "0.0.1053"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -27,15 +27,15 @@
27
27
  "@teambit/graph.cleargraph": "0.0.1",
28
28
  "@teambit/legacy-bit-id": "0.0.423",
29
29
  "@teambit/harmony": "0.4.6",
30
- "@teambit/component": "0.0.1052",
31
- "@teambit/dependency-resolver": "0.0.1052",
32
- "@teambit/aspect-loader": "0.0.1052",
33
- "@teambit/cli": "0.0.708",
30
+ "@teambit/component": "0.0.1053",
31
+ "@teambit/dependency-resolver": "0.0.1053",
32
+ "@teambit/aspect-loader": "0.0.1053",
33
+ "@teambit/cli": "0.0.709",
34
34
  "@teambit/component-package-version": "0.0.422",
35
- "@teambit/global-config": "0.0.710",
36
- "@teambit/graph": "0.0.1052",
37
- "@teambit/logger": "0.0.801",
38
- "@teambit/workspace.modules.node-modules-linker": "0.0.52"
35
+ "@teambit/global-config": "0.0.711",
36
+ "@teambit/graph": "0.0.1053",
37
+ "@teambit/logger": "0.0.802",
38
+ "@teambit/workspace.modules.node-modules-linker": "0.0.53"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/react": "^17.0.8",
@@ -51,7 +51,7 @@
51
51
  "@types/testing-library__jest-dom": "5.9.5"
52
52
  },
53
53
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.488",
54
+ "@teambit/legacy": "1.0.489",
55
55
  "react": "^16.8.0 || ^17.0.0",
56
56
  "react-dom": "^16.8.0 || ^17.0.0"
57
57
  },