@teambit/dependencies 0.0.6 → 0.0.9
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/dist/dependencies-cmd.js +10 -2
- package/dist/dependencies-cmd.js.map +1 -1
- package/dist/dependencies.main.runtime.d.ts +10 -3
- package/dist/dependencies.main.runtime.js +42 -19
- package/dist/dependencies.main.runtime.js.map +1 -1
- package/package-tar/teambit-dependencies-0.0.9.tgz +0 -0
- package/package.json +6 -6
- /package/{preview-1660188657912.js → preview-1660447667955.js} +0 -0
- package/package-tar/teambit-dependencies-0.0.6.tgz +0 -0
package/dist/dependencies-cmd.js
CHANGED
|
@@ -193,8 +193,16 @@ class DependenciesSetCmd {
|
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
async report([pattern, packages], setDepsFlags) {
|
|
196
|
-
const
|
|
197
|
-
|
|
196
|
+
const {
|
|
197
|
+
changedComps,
|
|
198
|
+
addedPackages
|
|
199
|
+
} = await this.deps.setDependency(pattern, packages, setDepsFlags);
|
|
200
|
+
return `${_chalk().default.green('successfully updated dependencies')}
|
|
201
|
+
${_chalk().default.bold('changed components')}
|
|
202
|
+
${changedComps.join('\n')}
|
|
203
|
+
|
|
204
|
+
${_chalk().default.bold('added packages')}
|
|
205
|
+
${JSON.stringify(addedPackages, undefined, 4)}`;
|
|
198
206
|
}
|
|
199
207
|
|
|
200
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DependenciesGetCmd","name","description","report","id","tree","results","dependencies","idWithVersion","workspaceGraph","_getIdWithLatestVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","constructor","chalk","red","workspaceTree","scopeTree","scopeGraph","green","getDependenciesInfo","getScopeDependencies","IdNotFoundInGraph","length","toStringWithoutVersion","scopeTable","generateDependenciesInfoTable","workspaceTable","bold","DependenciesDebugCmd","JSON","stringify","undefined","DependenciesSetCmd","deps","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","setDependency","join","DependenciesCmd","unrecognizedSubcommand"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport {\n dependencies,\n DependenciesResultsDebug,\n DependenciesResults,\n} from '@teambit/legacy/dist/api/consumer/lib/dependencies';\nimport { generateDependenciesInfoTable } from '@teambit/legacy/dist/cli/templates/component-template';\nimport { IdNotFoundInGraph } from '@teambit/legacy/dist/scope/exceptions/id-not-found-in-graph';\nimport DependencyGraph from '@teambit/legacy/dist/scope/graph/scope-graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { DependenciesMain } from './dependencies.main.runtime';\n\ntype GetDependenciesFlags = {\n tree: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n peer?: boolean;\n};\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [['t', 'tree', 'EXPERIMENTAL. render dependencies as a tree, similar to \"npm ls\"']] as CommandOptions;\n\n async report([id]: [string], { tree = false }: GetDependenciesFlags) {\n const results = (await dependencies(id, false)) as DependenciesResults;\n\n if (tree) {\n const idWithVersion = results.workspaceGraph._getIdWithLatestVersion(results.id);\n const getGraphAsTree = (graph: DependencyGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red('unable to generate a tree representation, the graph is too big or has cycles')}`;\n }\n throw err;\n }\n };\n const workspaceTree = getGraphAsTree(results.workspaceGraph);\n const scopeTree = getGraphAsTree(results.scopeGraph);\n return `${chalk.green('workspace')}:\\n${workspaceTree}\\n\\n${chalk.green('scope')}:\\n${scopeTree}`;\n }\n const workspaceGraph = results.workspaceGraph.getDependenciesInfo(results.id);\n const getScopeDependencies = () => {\n try {\n return results.scopeGraph.getDependenciesInfo(results.id);\n } catch (err) {\n if (err instanceof IdNotFoundInGraph) return []; // component might be new\n throw err;\n }\n };\n const scopeGraph = getScopeDependencies();\n if (!scopeGraph.length && !workspaceGraph.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const scopeTable = generateDependenciesInfoTable(scopeGraph, results.id);\n const workspaceTable = generateDependenciesInfoTable(workspaceGraph, results.id);\n return `${chalk.bold('Dependencies originated from workspace')}\n${workspaceTable || '<none>'}\n\n${chalk.bold('Dependencies originated from scope')}\n${scopeTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n async report([id]: [string]) {\n const results = (await dependencies(id, true)) as DependenciesResultsDebug;\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n { name: 'package', description: 'package name with version, e.g. \"lodash@1.0.0\"' },\n ];\n group = 'info';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const
|
|
1
|
+
{"version":3,"names":["DependenciesGetCmd","name","description","report","id","tree","results","dependencies","idWithVersion","workspaceGraph","_getIdWithLatestVersion","getGraphAsTree","graph","graphAsTree","getDependenciesAsObjectTree","toString","archy","err","constructor","chalk","red","workspaceTree","scopeTree","scopeGraph","green","getDependenciesInfo","getScopeDependencies","IdNotFoundInGraph","length","toStringWithoutVersion","scopeTable","generateDependenciesInfoTable","workspaceTable","bold","DependenciesDebugCmd","JSON","stringify","undefined","DependenciesSetCmd","deps","COMPONENT_PATTERN_HELP","pattern","packages","setDepsFlags","changedComps","addedPackages","setDependency","join","DependenciesCmd","unrecognizedSubcommand"],"sources":["dependencies-cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport archy from 'archy';\nimport {\n dependencies,\n DependenciesResultsDebug,\n DependenciesResults,\n} from '@teambit/legacy/dist/api/consumer/lib/dependencies';\nimport { generateDependenciesInfoTable } from '@teambit/legacy/dist/cli/templates/component-template';\nimport { IdNotFoundInGraph } from '@teambit/legacy/dist/scope/exceptions/id-not-found-in-graph';\nimport DependencyGraph from '@teambit/legacy/dist/scope/graph/scope-graph';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { DependenciesMain } from './dependencies.main.runtime';\n\ntype GetDependenciesFlags = {\n tree: boolean;\n};\n\nexport type SetDependenciesFlags = {\n dev?: boolean;\n peer?: boolean;\n};\n\nexport class DependenciesGetCmd implements Command {\n name = 'get <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show direct and indirect dependencies of the given component';\n alias = '';\n options = [['t', 'tree', 'EXPERIMENTAL. render dependencies as a tree, similar to \"npm ls\"']] as CommandOptions;\n\n async report([id]: [string], { tree = false }: GetDependenciesFlags) {\n const results = (await dependencies(id, false)) as DependenciesResults;\n\n if (tree) {\n const idWithVersion = results.workspaceGraph._getIdWithLatestVersion(results.id);\n const getGraphAsTree = (graph: DependencyGraph) => {\n try {\n const graphAsTree = graph.getDependenciesAsObjectTree(idWithVersion.toString());\n return archy(graphAsTree);\n } catch (err: any) {\n if (err.constructor.name === 'RangeError') {\n return `${chalk.red('unable to generate a tree representation, the graph is too big or has cycles')}`;\n }\n throw err;\n }\n };\n const workspaceTree = getGraphAsTree(results.workspaceGraph);\n const scopeTree = getGraphAsTree(results.scopeGraph);\n return `${chalk.green('workspace')}:\\n${workspaceTree}\\n\\n${chalk.green('scope')}:\\n${scopeTree}`;\n }\n const workspaceGraph = results.workspaceGraph.getDependenciesInfo(results.id);\n const getScopeDependencies = () => {\n try {\n return results.scopeGraph.getDependenciesInfo(results.id);\n } catch (err) {\n if (err instanceof IdNotFoundInGraph) return []; // component might be new\n throw err;\n }\n };\n const scopeGraph = getScopeDependencies();\n if (!scopeGraph.length && !workspaceGraph.length) {\n return `no dependencies found for ${results.id.toString()}.\ntry running \"bit cat-component ${results.id.toStringWithoutVersion()}\" to see whether the component/version exists locally`;\n }\n\n const scopeTable = generateDependenciesInfoTable(scopeGraph, results.id);\n const workspaceTable = generateDependenciesInfoTable(workspaceGraph, results.id);\n return `${chalk.bold('Dependencies originated from workspace')}\n${workspaceTable || '<none>'}\n\n${chalk.bold('Dependencies originated from scope')}\n${scopeTable || '<none>'}`;\n }\n}\n\nexport class DependenciesDebugCmd implements Command {\n name = 'debug <component-name>';\n arguments = [{ name: 'component-name', description: 'component name or component id' }];\n group = 'info';\n description = 'show the immediate dependencies and how their versions were determined';\n alias = '';\n options = [] as CommandOptions;\n\n async report([id]: [string]) {\n const results = (await dependencies(id, true)) as DependenciesResultsDebug;\n return JSON.stringify(results, undefined, 4);\n }\n}\n\nexport class DependenciesSetCmd implements Command {\n name = 'set <component-pattern> <package...>';\n arguments = [\n { name: 'component-pattern', description: COMPONENT_PATTERN_HELP },\n { name: 'package', description: 'package name with version, e.g. \"lodash@1.0.0\"' },\n ];\n group = 'info';\n description = 'set a dependency to component(s)';\n alias = '';\n options = [\n ['d', 'dev', 'add to the devDependencies'],\n ['p', 'peer', 'add to the peerDependencies'],\n ] as CommandOptions;\n\n constructor(private deps: DependenciesMain) {}\n\n async report([pattern, packages]: [string, string[]], setDepsFlags: SetDependenciesFlags) {\n const { changedComps, addedPackages } = await this.deps.setDependency(pattern, packages, setDepsFlags);\n\n return `${chalk.green('successfully updated dependencies')}\n${chalk.bold('changed components')}\n${changedComps.join('\\n')}\n\n${chalk.bold('added packages')}\n${JSON.stringify(addedPackages, undefined, 4)}`;\n }\n}\n\nexport class DependenciesCmd implements Command {\n name = 'dependencies <sub-command>';\n alias = 'deps';\n description = 'manage dependencies';\n options = [];\n group = 'info';\n commands: Command[] = [];\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"dependencies\", please run \"bit dependencies --help\" to list the subcommands`\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAKA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAZA;AAwBO,MAAMA,kBAAN,CAA4C;EAAA;IAAA,8CAC1C,sBAD0C;IAAA,mDAErC,CAAC;MAAEC,IAAI,EAAE,gBAAR;MAA0BC,WAAW,EAAE;IAAvC,CAAD,CAFqC;IAAA,+CAGzC,MAHyC;IAAA,qDAInC,8DAJmC;IAAA,+CAKzC,EALyC;IAAA,iDAMvC,CAAC,CAAC,GAAD,EAAM,MAAN,EAAc,kEAAd,CAAD,CANuC;EAAA;;EAQrC,MAANC,MAAM,CAAC,CAACC,EAAD,CAAD,EAAiB;IAAEC,IAAI,GAAG;EAAT,CAAjB,EAAyD;IACnE,MAAMC,OAAO,GAAI,MAAM,IAAAC,4BAAA,EAAaH,EAAb,EAAiB,KAAjB,CAAvB;;IAEA,IAAIC,IAAJ,EAAU;MACR,MAAMG,aAAa,GAAGF,OAAO,CAACG,cAAR,CAAuBC,uBAAvB,CAA+CJ,OAAO,CAACF,EAAvD,CAAtB;;MACA,MAAMO,cAAc,GAAIC,KAAD,IAA4B;QACjD,IAAI;UACF,MAAMC,WAAW,GAAGD,KAAK,CAACE,2BAAN,CAAkCN,aAAa,CAACO,QAAd,EAAlC,CAApB;UACA,OAAO,IAAAC,gBAAA,EAAMH,WAAN,CAAP;QACD,CAHD,CAGE,OAAOI,GAAP,EAAiB;UACjB,IAAIA,GAAG,CAACC,WAAJ,CAAgBjB,IAAhB,KAAyB,YAA7B,EAA2C;YACzC,OAAQ,GAAEkB,gBAAA,CAAMC,GAAN,CAAU,8EAAV,CAA0F,EAApG;UACD;;UACD,MAAMH,GAAN;QACD;MACF,CAVD;;MAWA,MAAMI,aAAa,GAAGV,cAAc,CAACL,OAAO,CAACG,cAAT,CAApC;MACA,MAAMa,SAAS,GAAGX,cAAc,CAACL,OAAO,CAACiB,UAAT,CAAhC;MACA,OAAQ,GAAEJ,gBAAA,CAAMK,KAAN,CAAY,WAAZ,CAAyB,MAAKH,aAAc,OAAMF,gBAAA,CAAMK,KAAN,CAAY,OAAZ,CAAqB,MAAKF,SAAU,EAAhG;IACD;;IACD,MAAMb,cAAc,GAAGH,OAAO,CAACG,cAAR,CAAuBgB,mBAAvB,CAA2CnB,OAAO,CAACF,EAAnD,CAAvB;;IACA,MAAMsB,oBAAoB,GAAG,MAAM;MACjC,IAAI;QACF,OAAOpB,OAAO,CAACiB,UAAR,CAAmBE,mBAAnB,CAAuCnB,OAAO,CAACF,EAA/C,CAAP;MACD,CAFD,CAEE,OAAOa,GAAP,EAAY;QACZ,IAAIA,GAAG,YAAYU,sCAAnB,EAAsC,OAAO,EAAP,CAD1B,CACqC;;QACjD,MAAMV,GAAN;MACD;IACF,CAPD;;IAQA,MAAMM,UAAU,GAAGG,oBAAoB,EAAvC;;IACA,IAAI,CAACH,UAAU,CAACK,MAAZ,IAAsB,CAACnB,cAAc,CAACmB,MAA1C,EAAkD;MAChD,OAAQ,6BAA4BtB,OAAO,CAACF,EAAR,CAAWW,QAAX,EAAsB;AAChE,iCAAiCT,OAAO,CAACF,EAAR,CAAWyB,sBAAX,EAAoC,uDAD/D;IAED;;IAED,MAAMC,UAAU,GAAG,IAAAC,kDAAA,EAA8BR,UAA9B,EAA0CjB,OAAO,CAACF,EAAlD,CAAnB;IACA,MAAM4B,cAAc,GAAG,IAAAD,kDAAA,EAA8BtB,cAA9B,EAA8CH,OAAO,CAACF,EAAtD,CAAvB;IACA,OAAQ,GAAEe,gBAAA,CAAMc,IAAN,CAAW,wCAAX,CAAqD;AACnE,EAAED,cAAc,IAAI,QAAS;AAC7B;AACA,EAAEb,gBAAA,CAAMc,IAAN,CAAW,oCAAX,CAAiD;AACnD,EAAEH,UAAU,IAAI,QAAS,EAJrB;EAKD;;AAlDgD;;;;AAqD5C,MAAMI,oBAAN,CAA8C;EAAA;IAAA,8CAC5C,wBAD4C;IAAA,mDAEvC,CAAC;MAAEjC,IAAI,EAAE,gBAAR;MAA0BC,WAAW,EAAE;IAAvC,CAAD,CAFuC;IAAA,+CAG3C,MAH2C;IAAA,qDAIrC,wEAJqC;IAAA,+CAK3C,EAL2C;IAAA,iDAMzC,EANyC;EAAA;;EAQvC,MAANC,MAAM,CAAC,CAACC,EAAD,CAAD,EAAiB;IAC3B,MAAME,OAAO,GAAI,MAAM,IAAAC,4BAAA,EAAaH,EAAb,EAAiB,IAAjB,CAAvB;IACA,OAAO+B,IAAI,CAACC,SAAL,CAAe9B,OAAf,EAAwB+B,SAAxB,EAAmC,CAAnC,CAAP;EACD;;AAXkD;;;;AAc9C,MAAMC,kBAAN,CAA4C;EAcjDpB,WAAW,CAASqB,IAAT,EAAiC;IAAA,KAAxBA,IAAwB,GAAxBA,IAAwB;IAAA,8CAbrC,sCAaqC;IAAA,mDAZhC,CACV;MAAEtC,IAAI,EAAE,mBAAR;MAA6BC,WAAW,EAAEsC;IAA1C,CADU,EAEV;MAAEvC,IAAI,EAAE,SAAR;MAAmBC,WAAW,EAAE;IAAhC,CAFU,CAYgC;IAAA,+CARpC,MAQoC;IAAA,qDAP9B,kCAO8B;IAAA,+CANpC,EAMoC;IAAA,iDALlC,CACR,CAAC,GAAD,EAAM,KAAN,EAAa,4BAAb,CADQ,EAER,CAAC,GAAD,EAAM,MAAN,EAAc,6BAAd,CAFQ,CAKkC;EAAE;;EAElC,MAANC,MAAM,CAAC,CAACsC,OAAD,EAAUC,QAAV,CAAD,EAA0CC,YAA1C,EAA8E;IACxF,MAAM;MAAEC,YAAF;MAAgBC;IAAhB,IAAkC,MAAM,KAAKN,IAAL,CAAUO,aAAV,CAAwBL,OAAxB,EAAiCC,QAAjC,EAA2CC,YAA3C,CAA9C;IAEA,OAAQ,GAAExB,gBAAA,CAAMK,KAAN,CAAY,mCAAZ,CAAiD;AAC/D,EAAEL,gBAAA,CAAMc,IAAN,CAAW,oBAAX,CAAiC;AACnC,EAAEW,YAAY,CAACG,IAAb,CAAkB,IAAlB,CAAwB;AAC1B;AACA,EAAE5B,gBAAA,CAAMc,IAAN,CAAW,gBAAX,CAA6B;AAC/B,EAAEE,IAAI,CAACC,SAAL,CAAeS,aAAf,EAA8BR,SAA9B,EAAyC,CAAzC,CAA4C,EAL1C;EAMD;;AAzBgD;;;;AA4B5C,MAAMW,eAAN,CAAyC;EAAA;IAAA,8CACvC,4BADuC;IAAA,+CAEtC,MAFsC;IAAA,qDAGhC,qBAHgC;IAAA,iDAIpC,EAJoC;IAAA,+CAKtC,MALsC;IAAA,kDAMxB,EANwB;EAAA;;EAQlC,MAAN7C,MAAM,CAAC,CAAC8C,sBAAD,CAAD,EAAqC;IAC/C,OAAO9B,gBAAA,CAAMC,GAAN,CACJ,IAAG6B,sBAAuB,uGADtB,CAAP;EAGD;;AAZ6C"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { CLIMain } from '@teambit/cli';
|
|
2
|
+
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
2
3
|
import { Workspace } from '@teambit/workspace';
|
|
3
4
|
import { SetDependenciesFlags } from './dependencies-cmd';
|
|
4
5
|
export declare class DependenciesMain {
|
|
5
6
|
private workspace;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
private dependencyResolver;
|
|
8
|
+
constructor(workspace: Workspace, dependencyResolver: DependencyResolverMain);
|
|
9
|
+
setDependency(componentPattern: string, packages: string[], options: SetDependenciesFlags): Promise<{
|
|
10
|
+
changedComps: string[];
|
|
11
|
+
addedPackages: Record<string, string>;
|
|
12
|
+
}>;
|
|
13
|
+
private getPackageNameAndVerResolved;
|
|
14
|
+
private splitPkgToNameAndVer;
|
|
8
15
|
static slots: never[];
|
|
9
16
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
10
17
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
11
|
-
static provider([cli, workspace]: [CLIMain, Workspace]): Promise<DependenciesMain>;
|
|
18
|
+
static provider([cli, workspace, depsResolver]: [CLIMain, Workspace, DependencyResolverMain]): Promise<DependenciesMain>;
|
|
12
19
|
}
|
|
13
20
|
export default DependenciesMain;
|
|
@@ -74,8 +74,9 @@ function _dependencies() {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
class DependenciesMain {
|
|
77
|
-
constructor(workspace) {
|
|
77
|
+
constructor(workspace, dependencyResolver) {
|
|
78
78
|
this.workspace = workspace;
|
|
79
|
+
this.dependencyResolver = dependencyResolver;
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
async setDependency(componentPattern, packages, options) {
|
|
@@ -87,20 +88,11 @@ class DependenciesMain {
|
|
|
87
88
|
return 'dependencies';
|
|
88
89
|
};
|
|
89
90
|
|
|
90
|
-
const packagesObj =
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} else if (packageSplit.length === 3 && pkg.startsWith('@')) {
|
|
96
|
-
// it's a scoped package
|
|
97
|
-
acc[`@${packageSplit[1]}`] = packageSplit[2];
|
|
98
|
-
} else {
|
|
99
|
-
throw new Error(`invalid package "${pkg}" syntax, expected "package@version"`);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return acc;
|
|
103
|
-
}, {});
|
|
91
|
+
const packagesObj = {};
|
|
92
|
+
await Promise.all(packages.map(async pkg => {
|
|
93
|
+
const [name, version] = await this.getPackageNameAndVerResolved(pkg);
|
|
94
|
+
packagesObj[name] = version;
|
|
95
|
+
}));
|
|
104
96
|
const config = {
|
|
105
97
|
policy: {
|
|
106
98
|
[getDepField()]: packagesObj
|
|
@@ -110,11 +102,42 @@ class DependenciesMain {
|
|
|
110
102
|
await this.workspace.addSpecificComponentConfig(compId, _dependencyResolver().DependencyResolverAspect.id, config, true);
|
|
111
103
|
}));
|
|
112
104
|
await this.workspace.bitMap.write();
|
|
113
|
-
return
|
|
105
|
+
return {
|
|
106
|
+
changedComps: compIds.map(compId => compId.toStringWithoutVersion()),
|
|
107
|
+
addedPackages: packagesObj
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
async getPackageNameAndVerResolved(pkg) {
|
|
112
|
+
const resolveLatest = async pkgName => {
|
|
113
|
+
const versionResolver = await this.dependencyResolver.getVersionResolver({});
|
|
114
|
+
const resolved = await versionResolver.resolveRemoteVersion(pkgName, {
|
|
115
|
+
rootDir: ''
|
|
116
|
+
});
|
|
117
|
+
if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);
|
|
118
|
+
return resolved.version;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const [name, version] = this.splitPkgToNameAndVer(pkg);
|
|
122
|
+
const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;
|
|
123
|
+
return [name, versionResolved];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
splitPkgToNameAndVer(pkg) {
|
|
127
|
+
const packageSplit = pkg.split('@');
|
|
128
|
+
|
|
129
|
+
if (pkg.startsWith('@')) {
|
|
130
|
+
// scoped package
|
|
131
|
+
if (packageSplit.length > 3) throw new Error(`invalid package "${pkg}" syntax, expected "package[@version]"`);
|
|
132
|
+
return [`@${packageSplit[1]}`, packageSplit[2]];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (packageSplit.length > 2) throw new Error(`invalid package "${pkg}" syntax, expected "package[@version]"`);
|
|
136
|
+
return [packageSplit[0], packageSplit[1]];
|
|
114
137
|
}
|
|
115
138
|
|
|
116
|
-
static async provider([cli, workspace]) {
|
|
117
|
-
const depsMain = new DependenciesMain(workspace);
|
|
139
|
+
static async provider([cli, workspace, depsResolver]) {
|
|
140
|
+
const depsMain = new DependenciesMain(workspace, depsResolver);
|
|
118
141
|
const depsCmd = new (_dependenciesCmd().DependenciesCmd)();
|
|
119
142
|
depsCmd.commands = [new (_dependenciesCmd().DependenciesGetCmd)(), new (_dependenciesCmd().DependenciesDebugCmd)(), new (_dependenciesCmd().DependenciesSetCmd)(depsMain)];
|
|
120
143
|
cli.register(depsCmd);
|
|
@@ -125,7 +148,7 @@ class DependenciesMain {
|
|
|
125
148
|
|
|
126
149
|
exports.DependenciesMain = DependenciesMain;
|
|
127
150
|
(0, _defineProperty2().default)(DependenciesMain, "slots", []);
|
|
128
|
-
(0, _defineProperty2().default)(DependenciesMain, "dependencies", [_cli().CLIAspect, _workspace().default]);
|
|
151
|
+
(0, _defineProperty2().default)(DependenciesMain, "dependencies", [_cli().CLIAspect, _workspace().default, _dependencyResolver().DependencyResolverAspect]);
|
|
129
152
|
(0, _defineProperty2().default)(DependenciesMain, "runtime", _cli().MainRuntime);
|
|
130
153
|
|
|
131
154
|
_dependencies().DependenciesAspect.addRuntime(DependenciesMain);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DependenciesMain","constructor","workspace","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","peer","packagesObj","
|
|
1
|
+
{"version":3,"names":["DependenciesMain","constructor","workspace","dependencyResolver","setDependency","componentPattern","packages","options","compIds","idsByPattern","getDepField","dev","peer","packagesObj","Promise","all","map","pkg","name","version","getPackageNameAndVerResolved","config","policy","compId","addSpecificComponentConfig","DependencyResolverAspect","id","bitMap","write","changedComps","toStringWithoutVersion","addedPackages","resolveLatest","pkgName","versionResolver","getVersionResolver","resolved","resolveRemoteVersion","rootDir","Error","splitPkgToNameAndVer","versionResolved","packageSplit","split","startsWith","length","provider","cli","depsResolver","depsMain","depsCmd","DependenciesCmd","commands","DependenciesGetCmd","DependenciesDebugCmd","DependenciesSetCmd","register","CLIAspect","WorkspaceAspect","MainRuntime","DependenciesAspect","addRuntime"],"sources":["dependencies.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport {\n DependenciesCmd,\n DependenciesDebugCmd,\n DependenciesGetCmd,\n DependenciesSetCmd,\n SetDependenciesFlags,\n} from './dependencies-cmd';\nimport { DependenciesAspect } from './dependencies.aspect';\n\nexport class DependenciesMain {\n constructor(private workspace: Workspace, private dependencyResolver: DependencyResolverMain) {}\n\n async setDependency(\n componentPattern: string,\n packages: string[],\n options: SetDependenciesFlags\n ): Promise<{ changedComps: string[]; addedPackages: Record<string, string> }> {\n const compIds = await this.workspace.idsByPattern(componentPattern);\n const getDepField = () => {\n if (options.dev) return 'devDependencies';\n if (options.peer) return 'peerDependencies';\n return 'dependencies';\n };\n const packagesObj = {};\n await Promise.all(\n packages.map(async (pkg) => {\n const [name, version] = await this.getPackageNameAndVerResolved(pkg);\n packagesObj[name] = version;\n })\n );\n const config = {\n policy: {\n [getDepField()]: packagesObj,\n },\n };\n await Promise.all(\n compIds.map(async (compId) => {\n await this.workspace.addSpecificComponentConfig(compId, DependencyResolverAspect.id, config, true);\n })\n );\n\n await this.workspace.bitMap.write();\n\n return {\n changedComps: compIds.map((compId) => compId.toStringWithoutVersion()),\n addedPackages: packagesObj,\n };\n }\n\n private async getPackageNameAndVerResolved(pkg: string): Promise<[string, string]> {\n const resolveLatest = async (pkgName: string) => {\n const versionResolver = await this.dependencyResolver.getVersionResolver({});\n const resolved = await versionResolver.resolveRemoteVersion(pkgName, { rootDir: '' });\n if (!resolved.version) throw new Error(`unable to resolve version for ${pkgName}`);\n return resolved.version;\n };\n const [name, version] = this.splitPkgToNameAndVer(pkg);\n const versionResolved = !version || version === 'latest' ? await resolveLatest(name) : version;\n return [name, versionResolved];\n }\n\n private splitPkgToNameAndVer(pkg: string): [string, string | undefined] {\n const packageSplit = pkg.split('@');\n if (pkg.startsWith('@')) {\n // scoped package\n if (packageSplit.length > 3) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [`@${packageSplit[1]}`, packageSplit[2]];\n }\n if (packageSplit.length > 2) throw new Error(`invalid package \"${pkg}\" syntax, expected \"package[@version]\"`);\n return [packageSplit[0], packageSplit[1]];\n }\n\n static slots = [];\n static dependencies = [CLIAspect, WorkspaceAspect, DependencyResolverAspect];\n\n static runtime = MainRuntime;\n\n static async provider([cli, workspace, depsResolver]: [CLIMain, Workspace, DependencyResolverMain]) {\n const depsMain = new DependenciesMain(workspace, depsResolver);\n const depsCmd = new DependenciesCmd();\n depsCmd.commands = [new DependenciesGetCmd(), new DependenciesDebugCmd(), new DependenciesSetCmd(depsMain)];\n cli.register(depsCmd);\n\n return depsMain;\n }\n}\n\nDependenciesAspect.addRuntime(DependenciesMain);\n\nexport default DependenciesMain;\n"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/dependencies",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/dependencies/dependencies",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.dependencies",
|
|
8
8
|
"name": "dependencies",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.9"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"archy": "1.0.0",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"@babel/runtime": "7.12.18",
|
|
15
15
|
"core-js": "^3.0.0",
|
|
16
16
|
"@teambit/harmony": "0.3.3",
|
|
17
|
-
"@teambit/cli": "0.0.
|
|
18
|
-
"@teambit/dependency-resolver": "0.0.
|
|
19
|
-
"@teambit/workspace": "0.0.
|
|
17
|
+
"@teambit/cli": "0.0.544",
|
|
18
|
+
"@teambit/dependency-resolver": "0.0.816",
|
|
19
|
+
"@teambit/workspace": "0.0.816"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/mocha": "9.1.0",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@types/node": "12.20.4"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@teambit/legacy": "1.0.
|
|
30
|
+
"@teambit/legacy": "1.0.327",
|
|
31
31
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
32
32
|
"react": "^16.8.0 || ^17.0.0"
|
|
33
33
|
},
|
|
File without changes
|
|
Binary file
|