@teambit/lanes 0.0.360 → 0.0.363
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/switch-lanes.js +8 -6
- package/dist/switch-lanes.js.map +1 -1
- package/dist/switch.cmd.js +4 -1
- package/dist/switch.cmd.js.map +1 -1
- package/package-tar/teambit-lanes-0.0.363.tgz +0 -0
- package/package.json +16 -16
- package/{preview-1657709114119.js → preview-1657942042539.js} +2 -2
- package/package-tar/teambit-lanes-0.0.360.tgz +0 -0
package/dist/switch-lanes.js
CHANGED
@@ -169,7 +169,8 @@ class LaneSwitcher {
|
|
169
169
|
|
170
170
|
const failedComponents = allComponentsStatus.filter(componentStatus => componentStatus.failureMessage).map(componentStatus => ({
|
171
171
|
id: componentStatus.id,
|
172
|
-
failureMessage: componentStatus.failureMessage
|
172
|
+
failureMessage: componentStatus.failureMessage,
|
173
|
+
unchangedLegitimately: componentStatus.unchangedLegitimately
|
173
174
|
}));
|
174
175
|
const succeededComponents = allComponentsStatus.filter(componentStatus => !componentStatus.failureMessage); // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,
|
175
176
|
// which can be an issue when some components are also dependencies of others
|
@@ -329,15 +330,16 @@ async function getComponentStatus(consumer, id, switchProps) {
|
|
329
330
|
id
|
330
331
|
};
|
331
332
|
|
332
|
-
const returnFailure = msg => {
|
333
|
+
const returnFailure = (msg, unchangedLegitimately = false) => {
|
333
334
|
componentStatus.failureMessage = msg;
|
335
|
+
componentStatus.unchangedLegitimately = unchangedLegitimately;
|
334
336
|
return componentStatus;
|
335
337
|
};
|
336
338
|
|
337
339
|
const modelComponent = await consumer.scope.getModelComponentIfExist(id);
|
338
340
|
|
339
341
|
if (!modelComponent) {
|
340
|
-
return returnFailure(`component ${id.toString()} had never imported
|
342
|
+
return returnFailure(`component ${id.toString()} had never imported`, true);
|
341
343
|
}
|
342
344
|
|
343
345
|
const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);
|
@@ -349,7 +351,7 @@ async function getComponentStatus(consumer, id, switchProps) {
|
|
349
351
|
const version = id.version;
|
350
352
|
|
351
353
|
if (!version) {
|
352
|
-
return returnFailure(`component doesn't have any snaps on ${_laneId().DEFAULT_LANE}
|
354
|
+
return returnFailure(`component doesn't have any snaps on ${_laneId().DEFAULT_LANE}`, true);
|
353
355
|
}
|
354
356
|
|
355
357
|
const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, {
|
@@ -359,7 +361,7 @@ async function getComponentStatus(consumer, id, switchProps) {
|
|
359
361
|
|
360
362
|
if (!existingBitMapId) {
|
361
363
|
if (switchProps.existingOnWorkspaceOnly) {
|
362
|
-
return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace
|
364
|
+
return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`, true);
|
363
365
|
}
|
364
366
|
|
365
367
|
return {
|
@@ -385,7 +387,7 @@ async function getComponentStatus(consumer, id, switchProps) {
|
|
385
387
|
const currentlyUsedVersion = existingBitMapId.version;
|
386
388
|
|
387
389
|
if (currentlyUsedVersion === version) {
|
388
|
-
return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}
|
390
|
+
return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`, true);
|
389
391
|
} // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
390
392
|
|
391
393
|
|
package/dist/switch-lanes.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","consumer","switch","setStatusLine","populateSwitchProps","allComponentsStatus","getAllComponentsStatus","componentWithConflict","find","component","mergeResults","hasConflicts","promptMergeOptions","mergeStrategy","GeneralError","id","toStringWithoutVersion","getMergeStrategyInteractive","failedComponents","filter","componentStatus","failureMessage","map","succeededComponents","componentsResults","mapSeries","componentFromFS","applyVersion","markFilesToBeRemovedIfNeeded","saveLanesData","componentsWithDependencies","c","manyComponentsWriter","ManyComponentsWriter","installNpmPackages","skipNpmInstall","override","verbose","writeDists","ignoreDist","writeConfig","writePackageJson","ignorePackageJson","writeAll","deleteFilesIfNeeded","appliedVersionComponents","applyVersionResult","onDestroy","components","laneId","scope","lanes","parseLaneIdFromString","laneName","localLane","loadLane","isDefault","populatePropsAccordingToDefaultLane","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","remoteLaneId","laneIdToSwitch","debug","toString","getCurrentLaneId","isEqual","BitError","scopeComponentImporter","ScopeComponentsImporter","getInstance","remoteLaneObjects","importFromLanes","length","allLanes","l","join","remoteLane","name","ids","changeVersion","head","localTrackedLane","getAliasByLaneId","undefined","isOnLane","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","LaneId","from","DEFAULT_LANE","toLaneId","tmp","Tmp","componentsStatusP","getComponentStatus","componentsStatus","Promise","all","clear","err","saveRemoteLaneToBitmap","setRemoteLane","throwIfLaneExists","listLanes","localLaneName","alias","createLane","trackLane","remoteScope","setCurrentLane","workspaceLane","WorkspaceLane","load","path","syncWithLanes","returnFailure","msg","modelComponent","getModelComponentIfExist","unmerged","objects","unmergedComponents","getEntry","resolved","version","existingBitMapId","getBitIdIfExist","ignoreVersion","componentOnLane","loadVersion","existingOnWorkspaceOnly","componentFromModel","hasVersion","currentlyUsedVersion","baseComponent","loadComponent","isModified","isComponentSourceCodeModified","isHeadSameAsMain","getHead","tagVersion","getTagOfRefIfExists","headVersion","otherComponent","threeWayMerge","otherLabel","currentComponent","currentLabel"],"sources":["switch-lanes.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ComponentWithDependencies } from '@teambit/legacy/dist/scope';\nimport { Version, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport {\n applyVersion,\n ComponentStatus,\n CheckoutProps,\n deleteFilesIfNeeded,\n markFilesToBeRemovedIfNeeded,\n} from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n ApplyVersionResults,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport threeWayMerge, {\n MergeResultsThreeWay,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { createLane } from './create-lane';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: BitId[];\n existingOnWorkspaceOnly: boolean;\n remoteLane?: Lane;\n localTrackedLane?: string;\n alias?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n private laneIdToSwitch: LaneId; // populated by `this.populateSwitchProps()`\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n await this.populateSwitchProps();\n const allComponentsStatus: ComponentStatus[] = await this.getAllComponentsStatus();\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!this.checkoutProps.promptMergeOptions && !this.checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!this.checkoutProps.mergeStrategy) this.checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({ id: componentStatus.id, failureMessage: componentStatus.failureMessage as string }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const componentsResults = await mapSeries(succeededComponents, ({ id, componentFromFS, mergeResults }) => {\n return applyVersion(this.consumer, id, componentFromFS, mergeResults, this.checkoutProps);\n });\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n await this.saveLanesData();\n\n const componentsWithDependencies = componentsResults\n .map((c) => c.component)\n .filter((c) => c) as ComponentWithDependencies[];\n\n const manyComponentsWriter = new ManyComponentsWriter({\n consumer: this.consumer,\n componentsWithDependencies,\n installNpmPackages: !this.checkoutProps.skipNpmInstall,\n override: true,\n verbose: this.checkoutProps.verbose,\n writeDists: !this.checkoutProps.ignoreDist,\n writeConfig: this.checkoutProps.writeConfig,\n writePackageJson: !this.checkoutProps.ignorePackageJson,\n });\n await manyComponentsWriter.writeAll();\n await deleteFilesIfNeeded(componentsResults, this.consumer);\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n await this.consumer.onDestroy();\n\n return { components: appliedVersionComponents, failedComponents };\n }\n\n private async populateSwitchProps() {\n const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);\n\n const localLane = await this.consumer.scope.loadLane(laneId);\n if (laneId.isDefault()) {\n this.populatePropsAccordingToDefaultLane();\n } else if (localLane) {\n this.populatePropsAccordingToLocalLane(localLane);\n } else {\n await this.populatePropsAccordingToRemoteLane(laneId);\n }\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId) {\n this.laneIdToSwitch = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n if (this.consumer.getCurrentLaneId().isEqual(remoteLaneId)) {\n throw new BitError(`already checked out to \"${remoteLaneId.toString()}\"`);\n }\n // fetch the remote to update all heads\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.consumer.scope);\n const remoteLaneObjects = await scopeComponentImporter.importFromLanes([remoteLaneId]);\n if (remoteLaneObjects.length === 0) {\n throw new BitError(`error: the lane ${this.switchProps.laneName} doesn't exist.`);\n }\n if (remoteLaneObjects.length > 1) {\n const allLanes = remoteLaneObjects.map((l) => l.id()).join(', ');\n throw new BitError(`switching to multiple lanes is not supported. got: ${allLanes}`);\n }\n const remoteLane = remoteLaneObjects[0];\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.ids = remoteLane.components.map((l) => l.id.changeVersion(l.head.toString()));\n this.switchProps.localTrackedLane = this.consumer.scope.lanes.getAliasByLaneId(remoteLaneId) || undefined;\n this.switchProps.remoteLane = remoteLane;\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n }\n\n private populatePropsAccordingToDefaultLane() {\n if (!this.consumer.isOnLane()) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = this.consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n this.laneIdToSwitch = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane) {\n if (this.consumer.getCurrentLaneId().name === this.switchProps.laneName) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = localLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n this.laneIdToSwitch = localLane.toLaneId();\n }\n\n private async getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const { ids } = this.switchProps;\n const tmp = new Tmp(this.consumer.scope);\n try {\n const componentsStatusP = (ids as BitId[]).map((id) => getComponentStatus(this.consumer, id, this.switchProps));\n const componentsStatus = await Promise.all(componentsStatusP);\n await tmp.clear();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n\n private async saveLanesData() {\n const saveRemoteLaneToBitmap = () => {\n if (this.switchProps.remoteLane) {\n this.consumer.bitMap.setRemoteLane(this.switchProps.remoteLane.toLaneId());\n }\n };\n const throwIfLaneExists = async () => {\n const allLanes = await this.consumer.scope.listLanes();\n if (allLanes.find((l) => l.toLaneId().isEqual(this.laneIdToSwitch))) {\n throw new BitError(`unable to checkout to lane \"${this.laneIdToSwitch.toString()}\".\n the lane already exists. please switch to the lane and merge`);\n }\n };\n\n const localLaneName = this.switchProps.alias || this.laneIdToSwitch.name;\n if (this.switchProps.remoteLane) {\n await throwIfLaneExists();\n await createLane(this.consumer, this.laneIdToSwitch.name, this.laneIdToSwitch.scope, this.switchProps.remoteLane);\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: localLaneName,\n remoteLane: this.laneIdToSwitch.name,\n remoteScope: this.laneIdToSwitch.scope,\n });\n }\n }\n\n saveRemoteLaneToBitmap();\n this.consumer.scope.lanes.setCurrentLane(localLaneName);\n const workspaceLane =\n localLaneName === DEFAULT_LANE ? null : WorkspaceLane.load(localLaneName, this.consumer.scope.path);\n this.consumer.bitMap.syncWithLanes(workspaceLane);\n }\n}\n\nasync function getComponentStatus(consumer: Consumer, id: BitId, switchProps: SwitchProps): Promise<ComponentStatus> {\n const componentStatus: ComponentStatus = { id };\n const returnFailure = (msg: string) => {\n componentStatus.failureMessage = msg;\n return componentStatus;\n };\n const modelComponent = await consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) {\n return returnFailure(`component ${id.toString()} had never imported`);\n }\n const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);\n if (unmerged && unmerged.resolved === false) {\n return returnFailure(\n `component ${id.toStringWithoutVersion()} has conflicts that need to be resolved first, please use bit merge --resolve/--abort`\n );\n }\n const version = id.version;\n if (!version) {\n return returnFailure(`component doesn't have any snaps on ${DEFAULT_LANE}`);\n }\n const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, { ignoreVersion: true });\n const componentOnLane: Version = await modelComponent.loadVersion(version, consumer.scope.objects);\n if (!existingBitMapId) {\n if (switchProps.existingOnWorkspaceOnly) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`);\n }\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n if (!existingBitMapId.hasVersion()) {\n // happens when switching from main to a lane and a component was snapped on the lane.\n // in the .bitmap file, the version is \"latest\" or empty. so we just need to write the component according to the\n // model. we don't care about the componentFromFS\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n const currentlyUsedVersion = existingBitMapId.version;\n if (currentlyUsedVersion === version) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`);\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);\n const component = await consumer.loadComponent(existingBitMapId);\n // don't use `consumer.isModified` here. otherwise, if there are dependency changes, the user can't discard them\n // and won't be able to switch lanes.\n const isModified = await consumer.isComponentSourceCodeModified(baseComponent, component);\n let mergeResults: MergeResultsThreeWay | null | undefined;\n const isHeadSameAsMain = () => {\n const head = modelComponent.getHead();\n if (!head) return false;\n if (!existingBitMapId.version) return false;\n const tagVersion = modelComponent.getTagOfRefIfExists(head);\n const headVersion = tagVersion || head.toString();\n return existingBitMapId.version === headVersion;\n };\n if (isModified) {\n if (!isHeadSameAsMain()) {\n throw new GeneralError(\n `unable to checkout ${id.toStringWithoutVersion()}, the component is modified and belongs to another lane`\n );\n }\n\n const otherComponent: Version = await modelComponent.loadVersion(\n existingBitMapId.version as string, // we are here because the head is same as main. so, existingBitMapId.version must be set\n consumer.scope.objects\n );\n mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: version,\n currentComponent: component,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return { componentFromFS: component, componentFromModel: componentOnLane, id, mergeResults };\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","consumer","switch","setStatusLine","populateSwitchProps","allComponentsStatus","getAllComponentsStatus","componentWithConflict","find","component","mergeResults","hasConflicts","promptMergeOptions","mergeStrategy","GeneralError","id","toStringWithoutVersion","getMergeStrategyInteractive","failedComponents","filter","componentStatus","failureMessage","map","unchangedLegitimately","succeededComponents","componentsResults","mapSeries","componentFromFS","applyVersion","markFilesToBeRemovedIfNeeded","saveLanesData","componentsWithDependencies","c","manyComponentsWriter","ManyComponentsWriter","installNpmPackages","skipNpmInstall","override","verbose","writeDists","ignoreDist","writeConfig","writePackageJson","ignorePackageJson","writeAll","deleteFilesIfNeeded","appliedVersionComponents","applyVersionResult","onDestroy","components","laneId","scope","lanes","parseLaneIdFromString","laneName","localLane","loadLane","isDefault","populatePropsAccordingToDefaultLane","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","remoteLaneId","laneIdToSwitch","debug","toString","getCurrentLaneId","isEqual","BitError","scopeComponentImporter","ScopeComponentsImporter","getInstance","remoteLaneObjects","importFromLanes","length","allLanes","l","join","remoteLane","name","ids","changeVersion","head","localTrackedLane","getAliasByLaneId","undefined","isOnLane","bitMap","getAuthoredAndImportedBitIdsOfDefaultLane","LaneId","from","DEFAULT_LANE","toLaneId","tmp","Tmp","componentsStatusP","getComponentStatus","componentsStatus","Promise","all","clear","err","saveRemoteLaneToBitmap","setRemoteLane","throwIfLaneExists","listLanes","localLaneName","alias","createLane","trackLane","remoteScope","setCurrentLane","workspaceLane","WorkspaceLane","load","path","syncWithLanes","returnFailure","msg","modelComponent","getModelComponentIfExist","unmerged","objects","unmergedComponents","getEntry","resolved","version","existingBitMapId","getBitIdIfExist","ignoreVersion","componentOnLane","loadVersion","existingOnWorkspaceOnly","componentFromModel","hasVersion","currentlyUsedVersion","baseComponent","loadComponent","isModified","isComponentSourceCodeModified","isHeadSameAsMain","getHead","tagVersion","getTagOfRefIfExists","headVersion","otherComponent","threeWayMerge","otherLabel","currentComponent","currentLabel"],"sources":["switch-lanes.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ComponentWithDependencies } from '@teambit/legacy/dist/scope';\nimport { Version, Lane } from '@teambit/legacy/dist/scope/models';\nimport { Tmp } from '@teambit/legacy/dist/scope/repositories';\nimport WorkspaceLane from '@teambit/legacy/dist/consumer/bit-map/workspace-lane';\nimport {\n applyVersion,\n ComponentStatus,\n CheckoutProps,\n deleteFilesIfNeeded,\n markFilesToBeRemovedIfNeeded,\n} from '@teambit/legacy/dist/consumer/versions-ops/checkout-version';\nimport ManyComponentsWriter from '@teambit/legacy/dist/consumer/component-ops/many-components-writer';\nimport {\n FailedComponents,\n getMergeStrategyInteractive,\n ApplyVersionResults,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport threeWayMerge, {\n MergeResultsThreeWay,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { createLane } from './create-lane';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: BitId[];\n existingOnWorkspaceOnly: boolean;\n remoteLane?: Lane;\n localTrackedLane?: string;\n alias?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n private laneIdToSwitch: LaneId; // populated by `this.populateSwitchProps()`\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n await this.populateSwitchProps();\n const allComponentsStatus: ComponentStatus[] = await this.getAllComponentsStatus();\n const componentWithConflict = allComponentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict) {\n if (!this.checkoutProps.promptMergeOptions && !this.checkoutProps.mergeStrategy) {\n throw new GeneralError(\n `automatic merge has failed for component ${componentWithConflict.id.toStringWithoutVersion()}.\\nplease use \"--manual\" to manually merge changes or use \"--theirs / --ours\" to choose one of the conflicted versions`\n );\n }\n if (!this.checkoutProps.mergeStrategy) this.checkoutProps.mergeStrategy = await getMergeStrategyInteractive();\n }\n const failedComponents: FailedComponents[] = allComponentsStatus\n .filter((componentStatus) => componentStatus.failureMessage)\n .map((componentStatus) => ({\n id: componentStatus.id,\n failureMessage: componentStatus.failureMessage as string,\n unchangedLegitimately: componentStatus.unchangedLegitimately,\n }));\n\n const succeededComponents = allComponentsStatus.filter((componentStatus) => !componentStatus.failureMessage);\n // do not use Promise.all for applyVersion. otherwise, it'll write all components in parallel,\n // which can be an issue when some components are also dependencies of others\n const componentsResults = await mapSeries(succeededComponents, ({ id, componentFromFS, mergeResults }) => {\n return applyVersion(this.consumer, id, componentFromFS, mergeResults, this.checkoutProps);\n });\n\n markFilesToBeRemovedIfNeeded(succeededComponents, componentsResults);\n\n await this.saveLanesData();\n\n const componentsWithDependencies = componentsResults\n .map((c) => c.component)\n .filter((c) => c) as ComponentWithDependencies[];\n\n const manyComponentsWriter = new ManyComponentsWriter({\n consumer: this.consumer,\n componentsWithDependencies,\n installNpmPackages: !this.checkoutProps.skipNpmInstall,\n override: true,\n verbose: this.checkoutProps.verbose,\n writeDists: !this.checkoutProps.ignoreDist,\n writeConfig: this.checkoutProps.writeConfig,\n writePackageJson: !this.checkoutProps.ignorePackageJson,\n });\n await manyComponentsWriter.writeAll();\n await deleteFilesIfNeeded(componentsResults, this.consumer);\n\n const appliedVersionComponents = componentsResults.map((c) => c.applyVersionResult);\n\n await this.consumer.onDestroy();\n\n return { components: appliedVersionComponents, failedComponents };\n }\n\n private async populateSwitchProps() {\n const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);\n\n const localLane = await this.consumer.scope.loadLane(laneId);\n if (laneId.isDefault()) {\n this.populatePropsAccordingToDefaultLane();\n } else if (localLane) {\n this.populatePropsAccordingToLocalLane(localLane);\n } else {\n await this.populatePropsAccordingToRemoteLane(laneId);\n }\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId) {\n this.laneIdToSwitch = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n if (this.consumer.getCurrentLaneId().isEqual(remoteLaneId)) {\n throw new BitError(`already checked out to \"${remoteLaneId.toString()}\"`);\n }\n // fetch the remote to update all heads\n const scopeComponentImporter = ScopeComponentsImporter.getInstance(this.consumer.scope);\n const remoteLaneObjects = await scopeComponentImporter.importFromLanes([remoteLaneId]);\n if (remoteLaneObjects.length === 0) {\n throw new BitError(`error: the lane ${this.switchProps.laneName} doesn't exist.`);\n }\n if (remoteLaneObjects.length > 1) {\n const allLanes = remoteLaneObjects.map((l) => l.id()).join(', ');\n throw new BitError(`switching to multiple lanes is not supported. got: ${allLanes}`);\n }\n const remoteLane = remoteLaneObjects[0];\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.ids = remoteLane.components.map((l) => l.id.changeVersion(l.head.toString()));\n this.switchProps.localTrackedLane = this.consumer.scope.lanes.getAliasByLaneId(remoteLaneId) || undefined;\n this.switchProps.remoteLane = remoteLane;\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n }\n\n private populatePropsAccordingToDefaultLane() {\n if (!this.consumer.isOnLane()) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = this.consumer.bitMap.getAuthoredAndImportedBitIdsOfDefaultLane();\n this.laneIdToSwitch = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane) {\n if (this.consumer.getCurrentLaneId().name === this.switchProps.laneName) {\n throw new BitError(`already checked out to \"${this.switchProps.laneName}\"`);\n }\n this.switchProps.ids = localLane.components.map((c) => c.id.changeVersion(c.head.toString()));\n this.laneIdToSwitch = localLane.toLaneId();\n }\n\n private async getAllComponentsStatus(): Promise<ComponentStatus[]> {\n const { ids } = this.switchProps;\n const tmp = new Tmp(this.consumer.scope);\n try {\n const componentsStatusP = (ids as BitId[]).map((id) => getComponentStatus(this.consumer, id, this.switchProps));\n const componentsStatus = await Promise.all(componentsStatusP);\n await tmp.clear();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return componentsStatus;\n } catch (err: any) {\n await tmp.clear();\n throw err;\n }\n }\n\n private async saveLanesData() {\n const saveRemoteLaneToBitmap = () => {\n if (this.switchProps.remoteLane) {\n this.consumer.bitMap.setRemoteLane(this.switchProps.remoteLane.toLaneId());\n }\n };\n const throwIfLaneExists = async () => {\n const allLanes = await this.consumer.scope.listLanes();\n if (allLanes.find((l) => l.toLaneId().isEqual(this.laneIdToSwitch))) {\n throw new BitError(`unable to checkout to lane \"${this.laneIdToSwitch.toString()}\".\n the lane already exists. please switch to the lane and merge`);\n }\n };\n\n const localLaneName = this.switchProps.alias || this.laneIdToSwitch.name;\n if (this.switchProps.remoteLane) {\n await throwIfLaneExists();\n await createLane(this.consumer, this.laneIdToSwitch.name, this.laneIdToSwitch.scope, this.switchProps.remoteLane);\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: localLaneName,\n remoteLane: this.laneIdToSwitch.name,\n remoteScope: this.laneIdToSwitch.scope,\n });\n }\n }\n\n saveRemoteLaneToBitmap();\n this.consumer.scope.lanes.setCurrentLane(localLaneName);\n const workspaceLane =\n localLaneName === DEFAULT_LANE ? null : WorkspaceLane.load(localLaneName, this.consumer.scope.path);\n this.consumer.bitMap.syncWithLanes(workspaceLane);\n }\n}\n\nasync function getComponentStatus(consumer: Consumer, id: BitId, switchProps: SwitchProps): Promise<ComponentStatus> {\n const componentStatus: ComponentStatus = { id };\n const returnFailure = (msg: string, unchangedLegitimately = false) => {\n componentStatus.failureMessage = msg;\n componentStatus.unchangedLegitimately = unchangedLegitimately;\n return componentStatus;\n };\n const modelComponent = await consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) {\n return returnFailure(`component ${id.toString()} had never imported`, true);\n }\n const unmerged = consumer.scope.objects.unmergedComponents.getEntry(id.name);\n if (unmerged && unmerged.resolved === false) {\n return returnFailure(\n `component ${id.toStringWithoutVersion()} has conflicts that need to be resolved first, please use bit merge --resolve/--abort`\n );\n }\n const version = id.version;\n if (!version) {\n return returnFailure(`component doesn't have any snaps on ${DEFAULT_LANE}`, true);\n }\n const existingBitMapId = consumer.bitMap.getBitIdIfExist(id, { ignoreVersion: true });\n const componentOnLane: Version = await modelComponent.loadVersion(version, consumer.scope.objects);\n if (!existingBitMapId) {\n if (switchProps.existingOnWorkspaceOnly) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is not in the workspace`, true);\n }\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n if (!existingBitMapId.hasVersion()) {\n // happens when switching from main to a lane and a component was snapped on the lane.\n // in the .bitmap file, the version is \"latest\" or empty. so we just need to write the component according to the\n // model. we don't care about the componentFromFS\n return { componentFromFS: undefined, componentFromModel: componentOnLane, id, mergeResults: null };\n }\n const currentlyUsedVersion = existingBitMapId.version;\n if (currentlyUsedVersion === version) {\n return returnFailure(`component ${id.toStringWithoutVersion()} is already at version ${version}`, true);\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await modelComponent.loadVersion(currentlyUsedVersion, consumer.scope.objects);\n const component = await consumer.loadComponent(existingBitMapId);\n // don't use `consumer.isModified` here. otherwise, if there are dependency changes, the user can't discard them\n // and won't be able to switch lanes.\n const isModified = await consumer.isComponentSourceCodeModified(baseComponent, component);\n let mergeResults: MergeResultsThreeWay | null | undefined;\n const isHeadSameAsMain = () => {\n const head = modelComponent.getHead();\n if (!head) return false;\n if (!existingBitMapId.version) return false;\n const tagVersion = modelComponent.getTagOfRefIfExists(head);\n const headVersion = tagVersion || head.toString();\n return existingBitMapId.version === headVersion;\n };\n if (isModified) {\n if (!isHeadSameAsMain()) {\n throw new GeneralError(\n `unable to checkout ${id.toStringWithoutVersion()}, the component is modified and belongs to another lane`\n );\n }\n\n const otherComponent: Version = await modelComponent.loadVersion(\n existingBitMapId.version as string, // we are here because the head is same as main. so, existingBitMapId.version must be set\n consumer.scope.objects\n );\n mergeResults = await threeWayMerge({\n consumer,\n otherComponent,\n otherLabel: version,\n currentComponent: component,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n }\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return { componentFromFS: component, componentFromModel: componentOnLane, id, mergeResults };\n}\n"],"mappings":"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"}
|
package/dist/switch.cmd.js
CHANGED
@@ -79,7 +79,10 @@ class SwitchCmd {
|
|
79
79
|
const getFailureOutput = () => {
|
80
80
|
if (!failedComponents || !failedComponents.length) return '';
|
81
81
|
const title = 'the switch has been canceled on the following component(s)';
|
82
|
-
const body = failedComponents.map(failedComponent =>
|
82
|
+
const body = failedComponents.map(failedComponent => {
|
83
|
+
const color = failedComponent.unchangedLegitimately ? 'white' : 'red';
|
84
|
+
return `${_chalk().default.bold(failedComponent.id.toString())} - ${_chalk().default[color](failedComponent.failureMessage)}`;
|
85
|
+
}).join('\n');
|
83
86
|
return `${title}\n${body}\n\n`;
|
84
87
|
};
|
85
88
|
|
package/dist/switch.cmd.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["SwitchCmd","constructor","lanes","report","lane","alias","merge","getAll","skipDependencyInstallation","json","components","failedComponents","switchLanes","JSON","stringify","getFailureOutput","length","title","body","map","failedComponent","chalk","bold","id","toString","
|
1
|
+
{"version":3,"names":["SwitchCmd","constructor","lanes","report","lane","alias","merge","getAll","skipDependencyInstallation","json","components","failedComponents","switchLanes","JSON","stringify","getFailureOutput","length","title","body","map","failedComponent","color","unchangedLegitimately","chalk","bold","id","toString","failureMessage","join","getSuccessfulOutput","laneSwitched","green","component","componentName","toStringWithoutVersion","version","applyVersionReport","componentsStr","failedOutput","successOutput"],"sources":["switch.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { MergeStrategy, applyVersionReport } from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { LanesMain } from './lanes.main.runtime';\n\nexport class SwitchCmd implements Command {\n name = 'switch <lane>';\n description = `switch to the specified lane`;\n private = true;\n alias = '';\n options = [\n [\n 'n',\n 'alias <string>',\n 'relevant when the specified lane is a remote late. name a local lane differently than the remote lane',\n ],\n [\n 'm',\n 'merge [strategy]',\n 'merge local changes with the checked out version. strategy should be \"theirs\", \"ours\" or \"manual\"',\n ],\n ['a', 'get-all', 'checkout all components in a lane include ones that do not exist in the workspace'],\n ['', 'skip-dependency-installation', 'do not install packages of the imported components'],\n ['j', 'json', 'return the output as JSON'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private lanes: LanesMain) {}\n\n async report(\n [lane]: [string],\n {\n alias,\n merge,\n getAll = false,\n skipDependencyInstallation = false,\n json = false,\n }: {\n alias?: string;\n merge?: MergeStrategy;\n getAll?: boolean;\n skipDependencyInstallation?: boolean;\n override?: boolean;\n json?: boolean;\n }\n ) {\n const { components, failedComponents } = await this.lanes.switchLanes(lane, {\n alias,\n merge,\n getAll,\n skipDependencyInstallation,\n });\n if (json) {\n return JSON.stringify({ components, failedComponents }, null, 4);\n }\n const getFailureOutput = () => {\n if (!failedComponents || !failedComponents.length) return '';\n const title = 'the switch has been canceled on the following component(s)';\n const body = failedComponents\n .map((failedComponent) => {\n const color = failedComponent.unchangedLegitimately ? 'white' : 'red';\n return `${chalk.bold(failedComponent.id.toString())} - ${chalk[color](failedComponent.failureMessage)}`;\n })\n .join('\\n');\n return `${title}\\n${body}\\n\\n`;\n };\n const getSuccessfulOutput = () => {\n const laneSwitched = chalk.green(`\\nsuccessfully set \"${chalk.bold(lane)}\" as the active lane`);\n if (!components || !components.length) return `No component had been changed.${laneSwitched}`;\n if (components.length === 1) {\n const component = components[0];\n const componentName = component.id.toStringWithoutVersion();\n const title = `successfully switched ${chalk.bold(componentName)} to version ${chalk.bold(\n component.id.version as string\n )}\\n`;\n return `${title} ${applyVersionReport(components, false)}${laneSwitched}`;\n }\n const title = `successfully switched the following components to the version of ${lane}\\n\\n`;\n const componentsStr = applyVersionReport(components, true, false);\n return title + componentsStr + laneSwitched;\n };\n const failedOutput = getFailureOutput();\n const successOutput = getSuccessfulOutput();\n return failedOutput + successOutput;\n }\n}\n"],"mappings":"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"}
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/lanes",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.363",
|
4
4
|
"homepage": "https://bit.dev/teambit/lanes/lanes",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.lanes",
|
8
8
|
"name": "lanes",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.363"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "2.4.2",
|
@@ -18,23 +18,23 @@
|
|
18
18
|
"core-js": "^3.0.0",
|
19
19
|
"@teambit/harmony": "0.3.3",
|
20
20
|
"@teambit/bit-error": "0.0.394",
|
21
|
-
"@teambit/cli": "0.0.
|
22
|
-
"@teambit/merging": "0.0.
|
23
|
-
"@teambit/scope": "0.0.
|
24
|
-
"@teambit/workspace": "0.0.
|
25
|
-
"@teambit/graphql": "0.0.
|
26
|
-
"@teambit/community": "0.0.
|
27
|
-
"@teambit/component": "0.0.
|
28
|
-
"@teambit/lane-id": "0.0.
|
29
|
-
"@teambit/lanes.modules.diff": "0.0.
|
21
|
+
"@teambit/cli": "0.0.524",
|
22
|
+
"@teambit/merging": "0.0.106",
|
23
|
+
"@teambit/scope": "0.0.791",
|
24
|
+
"@teambit/workspace": "0.0.791",
|
25
|
+
"@teambit/graphql": "0.0.791",
|
26
|
+
"@teambit/community": "0.0.72",
|
27
|
+
"@teambit/component": "0.0.791",
|
28
|
+
"@teambit/lane-id": "0.0.43",
|
29
|
+
"@teambit/lanes.modules.diff": "0.0.152",
|
30
30
|
"@teambit/legacy-bit-id": "0.0.399",
|
31
|
-
"@teambit/logger": "0.0.
|
31
|
+
"@teambit/logger": "0.0.617",
|
32
32
|
"@teambit/design.ui.pages.not-found": "0.0.356",
|
33
|
-
"@teambit/lanes.ui.lanes": "0.0.
|
34
|
-
"@teambit/sidebar": "0.0.
|
33
|
+
"@teambit/lanes.ui.lanes": "0.0.92",
|
34
|
+
"@teambit/sidebar": "0.0.791",
|
35
35
|
"@teambit/ui-foundation.ui.menu": "0.0.487",
|
36
36
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.490",
|
37
|
-
"@teambit/ui": "0.0.
|
37
|
+
"@teambit/ui": "0.0.791",
|
38
38
|
"@teambit/component-id": "0.0.402"
|
39
39
|
},
|
40
40
|
"devDependencies": {
|
@@ -51,7 +51,7 @@
|
|
51
51
|
},
|
52
52
|
"peerDependencies": {
|
53
53
|
"react-router-dom": "^6.0.0",
|
54
|
-
"@teambit/legacy": "1.0.
|
54
|
+
"@teambit/legacy": "1.0.306",
|
55
55
|
"react-dom": "^16.8.0 || ^17.0.0",
|
56
56
|
"react": "^16.8.0 || ^17.0.0"
|
57
57
|
},
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.363/dist/lanes.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.lanes_lanes@0.0.363/dist/lanes.docs.mdx';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
Binary file
|