@teambit/lanes 1.0.1149 → 1.0.1150
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/lanes.main.runtime.d.ts +3 -1
- package/dist/lanes.main.runtime.js +2 -0
- package/dist/lanes.main.runtime.js.map +1 -1
- package/dist/lanes.spec.js +53 -0
- package/dist/lanes.spec.js.map +1 -1
- package/dist/{preview-1787260228106.js → preview-1787264602520.js} +2 -2
- package/dist/switch-lanes.d.ts +20 -0
- package/dist/switch-lanes.js +26 -4
- package/dist/switch-lanes.js.map +1 -1
- package/package.json +19 -19
package/dist/lanes.spec.js
CHANGED
|
@@ -77,6 +77,20 @@ function _lanesEntities() {
|
|
|
77
77
|
};
|
|
78
78
|
return data;
|
|
79
79
|
}
|
|
80
|
+
function _componentId() {
|
|
81
|
+
const data = require("@teambit/component-id");
|
|
82
|
+
_componentId = function () {
|
|
83
|
+
return data;
|
|
84
|
+
};
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
87
|
+
function _switchLanes() {
|
|
88
|
+
const data = require("./switch-lanes");
|
|
89
|
+
_switchLanes = function () {
|
|
90
|
+
return data;
|
|
91
|
+
};
|
|
92
|
+
return data;
|
|
93
|
+
}
|
|
80
94
|
function _lanes() {
|
|
81
95
|
const data = require("./lanes.aspect");
|
|
82
96
|
_lanes = function () {
|
|
@@ -619,5 +633,44 @@ describe('GraphQL Aspect', function () {
|
|
|
619
633
|
});
|
|
620
634
|
});
|
|
621
635
|
});
|
|
636
|
+
describe('partitionSwitchIds', () => {
|
|
637
|
+
const id = idStr => _componentId().ComponentID.fromString(idStr);
|
|
638
|
+
const ours = id('acme.shop/comp1');
|
|
639
|
+
const oursOnMainOnly = id('acme.shop/comp2');
|
|
640
|
+
const foreign = id('other.scope/table');
|
|
641
|
+
it('without a restriction: every lane component is taken, main-only components come along', () => {
|
|
642
|
+
const {
|
|
643
|
+
ids,
|
|
644
|
+
laneBitIds
|
|
645
|
+
} = (0, _switchLanes().partitionSwitchIds)([ours, foreign], [ours, oursOnMainOnly]);
|
|
646
|
+
(0, _chai().expect)(ids.map(i => i.toString())).to.have.members([oursOnMainOnly.toString(), ours.toString(), foreign.toString()]);
|
|
647
|
+
// on the lane but not in the workspace's main set
|
|
648
|
+
(0, _chai().expect)(laneBitIds.map(i => i.toString())).to.deep.equal([foreign.toString()]);
|
|
649
|
+
});
|
|
650
|
+
it('a restricted-out lane component is not taken from the lane', () => {
|
|
651
|
+
const {
|
|
652
|
+
ids,
|
|
653
|
+
laneBitIds
|
|
654
|
+
} = (0, _switchLanes().partitionSwitchIds)([ours, foreign], [ours], ['acme.shop']);
|
|
655
|
+
(0, _chai().expect)(ids.map(i => i.toString())).to.deep.equal([ours.toString()]);
|
|
656
|
+
(0, _chai().expect)(laneBitIds).to.deep.equal([]);
|
|
657
|
+
});
|
|
658
|
+
|
|
659
|
+
// The regression this guards: filtering only the lane side lets a restricted-out component
|
|
660
|
+
// reappear as "main-only", which checks it out at its main version and writes it after all.
|
|
661
|
+
it('a restricted-out lane component the workspace tracks is left untouched, not reverted to main', () => {
|
|
662
|
+
const {
|
|
663
|
+
ids
|
|
664
|
+
} = (0, _switchLanes().partitionSwitchIds)([ours, foreign], [ours, foreign], ['acme.shop']);
|
|
665
|
+
(0, _chai().expect)(ids.map(i => i.toString())).to.deep.equal([ours.toString()]);
|
|
666
|
+
(0, _chai().expect)(ids.map(i => i.toString())).to.not.include(foreign.toString());
|
|
667
|
+
});
|
|
668
|
+
it('a main-only component that the lane never carried is still taken at its main version', () => {
|
|
669
|
+
const {
|
|
670
|
+
ids
|
|
671
|
+
} = (0, _switchLanes().partitionSwitchIds)([ours], [ours, oursOnMainOnly], ['acme.shop']);
|
|
672
|
+
(0, _chai().expect)(ids.map(i => i.toString())).to.have.members([oursOnMainOnly.toString(), ours.toString()]);
|
|
673
|
+
});
|
|
674
|
+
});
|
|
622
675
|
|
|
623
676
|
//# sourceMappingURL=lanes.spec.js.map
|
package/dist/lanes.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chai","data","require","_fsExtra","_interopRequireDefault","_path","_harmonyTesting","_remove","_snapping","_workspace","_export","_workspaceTesting","_componentTesting","_lanesEntities","_lanes","_mergeLanes","_graphql","e","__esModule","default","describe","timeout","lanes","workspaceData","before","mockWorkspace","workspacePath","mockComponents","loadAspect","LanesAspect","createLane","after","destroyWorkspace","it","currentLanes","getLanes","expect","to","have","lengthOf","name","equal","snapping","harmony","loadManyAspects","SnappingAspect","ExportAspect","WorkspaceAspect","get","id","tag","ids","build","ignoreIssues","exporter","export","modifyMockedComponents","result","snap","pattern","snappedComponents","length","currentLane","getCurrentLane","Error","isUpToDate","diffStatus","toLaneId","undefined","skipChanges","componentsStatus","every","c","upToDate","be","true","switchLanes","skipDependencyInstallation","unmodified","false","laneDiffResults","changeType","ChangeType","NONE","removeLanes","lanesAfterDelete","restoreLane","hash","output","laneHash","error","err","instanceOf","message","include","laneId","currentLaneId","getCurrentLaneId","laneHistory","getLaneHistory","history","getHistory","Object","keys","snappingResult","snapHistory","log","components","toString","exportResults","compFile","path","join","fs","appendFile","componentsIds","exportedLanes","newWorkspace","bareScopeName","remoteScopeName","importLaneObject","snapHistoryId","find","key","includes","results","checkoutHistory","failedComponents","revertWorkspace","revertHistory","compFileContent","readFile","not","secondSnapHistoryId","secondSnapHistory","workspace","listIds","scope","skip","RemoveAspect","remove","deleteComps","lane","isDeleted","deleted","workspaceData2","harmony2","MergeLanesAspect","mergeLanes2","lanes2","currentLaneId2","mergeLane","mergeStrategy","export2","graphql","GraphqlAspect","schemas","getSchemas","an","schema","getSchema"],"sources":["lanes.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport type { Harmony } from '@teambit/harmony';\nimport { loadAspect, loadManyAspects } from '@teambit/harmony.testing.load-aspect';\nimport type { RemoveMain } from '@teambit/remove';\nimport { RemoveAspect } from '@teambit/remove';\nimport type { SnappingMain } from '@teambit/snapping';\nimport { SnappingAspect } from '@teambit/snapping';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { ExportMain } from '@teambit/export';\nimport { ExportAspect } from '@teambit/export';\nimport type { LaneId } from '@teambit/lane-id';\nimport type { WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { mockWorkspace, destroyWorkspace } from '@teambit/workspace.testing.mock-workspace';\nimport { mockComponents, modifyMockedComponents } from '@teambit/component.testing.mock-components';\nimport { ChangeType } from '@teambit/lanes.entities.lane-diff';\nimport { LanesAspect } from './lanes.aspect';\nimport type { LanesMain } from './lanes.main.runtime';\nimport type { MergeLanesMain } from '@teambit/merge-lanes';\nimport { MergeLanesAspect } from '@teambit/merge-lanes';\nimport { GraphqlAspect, type GraphqlMain } from '@teambit/graphql';\n\ndescribe('LanesAspect', function () {\n this.timeout(0);\n\n describe('getLanes()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should list all lanes', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].name).to.equal('stage');\n });\n });\n\n describe('isLaneUpToDate', () => {\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false, ignoreIssues: 'MissingManuallyConfiguredPackages' });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n await modifyMockedComponents(workspacePath, 'v2');\n const result = await snapping.snap({\n pattern: 'comp1',\n build: false,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.true;\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({\n pattern: 'comp1',\n build: false,\n unmodified: true,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.false;\n });\n });\n\n describe('laneDiff', () => {\n let harmony: Harmony;\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n const result = await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.true;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.false;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n });\n\n describe('restoreLane()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n // as an intermediate step, make sure the lane was removed\n const lanesAfterDelete = await lanes.getLanes({});\n expect(lanesAfterDelete).to.have.lengthOf(0);\n\n await lanes.restoreLane(currentLanes[0].hash);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should restore the deleted lane', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].id.name).to.equal('stage');\n });\n describe('delete restored lane', () => {\n let output: string[];\n before(async () => {\n output = await lanes.removeLanes(['stage']);\n });\n it('should not throw', () => {\n expect(output).to.have.lengthOf(1);\n });\n });\n });\n\n describe('restore lane when an existing lane has the same id', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let laneHash: string;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n await lanes.createLane('stage');\n laneHash = currentLanes[0].hash;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should throw when restoring the lane', async () => {\n let error: Error | undefined;\n try {\n await lanes.restoreLane(laneHash);\n } catch (err: any) {\n error = err;\n }\n expect(error).to.be.instanceOf(Error);\n expect(error?.message).to.include('unable to restore lane');\n });\n });\n\n describe('lane history', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n snapping = await loadAspect(SnappingAspect, workspacePath);\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should create lane history object when creating a new lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(1);\n });\n describe('snapping', () => {\n let snappingResult;\n before(async () => {\n snappingResult = await snapping.snap({ pattern: 'comp1', build: false, message: 'first snap' });\n });\n it('should add a record to LaneHistory when snapping', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(2);\n const snapHistory = history[Object.keys(history)[1]];\n expect(snapHistory.log.message).to.equal('snap (first snap)');\n expect(snapHistory.components.length).to.equal(1);\n expect(snapHistory.components[0]).to.equal(snappingResult?.snappedComponents[0].id.toString() as string);\n });\n describe('snap again and export', () => {\n let exportResults;\n\n before(async () => {\n const compFile = path.join(workspaceData.workspacePath, 'comp1/index.js');\n await fs.appendFile(compFile, `\\nconsole.log('second-snap');`);\n // make another snap to check to test the checkout later.\n await snapping.snap({ pattern: 'comp1', build: false, message: 'second snap' });\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n\n const exporter: ExportMain = await loadAspect(ExportAspect, workspaceData.workspacePath);\n exportResults = await exporter.export();\n });\n it('should export successfully', () => {\n expect(exportResults.componentsIds.length).to.equal(1);\n expect(exportResults.exportedLanes.length).to.equal(1);\n });\n describe('import to another workspace', () => {\n let newWorkspace: WorkspaceData;\n before(async () => {\n newWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n\n lanes = await loadAspect(LanesAspect, newWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n });\n after(async () => {\n await destroyWorkspace(newWorkspace);\n });\n it('should not add a record to the lane-history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n });\n it('should be able to checkout to a previous state of the lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.checkoutHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n });\n it('should be able to revert to a previous history id', async () => {\n const revertWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n lanes = await loadAspect(LanesAspect, revertWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.revertHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n\n const compFile = path.join(\n revertWorkspace.workspacePath,\n revertWorkspace.remoteScopeName,\n 'comp1/index.js'\n );\n const compFileContent = await fs.readFile(compFile, 'utf8');\n\n // make sure it reverts to the first snap.\n expect(compFileContent).to.not.include('second-snap');\n\n // make sure it keeps the version in .bitmap intact and doesn't change it to the first snap. (as with checkout)\n const secondSnapHistoryId = Object.keys(history).find((key) =>\n history[key].log.message?.includes('second snap')\n );\n if (!secondSnapHistoryId) throw new Error('unable to find snap history of the second snap');\n const secondSnapHistory = history[secondSnapHistoryId];\n const workspace: Workspace = await loadAspect(WorkspaceAspect, revertWorkspace.workspacePath);\n const ids = await workspace.listIds();\n expect(ids[0].toString()).to.equal(secondSnapHistory.components[0]);\n await destroyWorkspace(revertWorkspace);\n });\n });\n });\n });\n });\n\n describe('create lanes with the same name different scope', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should not throw when creating the second lane', async () => {\n await lanes.createLane('stage', { scope: 'new-scope' });\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes.length).to.equal(2);\n expect(currentLanes[0].id.name).to.equal('stage');\n expect(currentLanes[1].id.name).to.equal('stage');\n });\n });\n\n // todo: fix after deleting teambit.legacy\n // for some reason it is trying to add the core-aspect teambit.component/remove to the graph and then\n // it complains that it has no version. from the cli it doesn't happen.\n describe.skip('delete component on a lane after export', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n const harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n const remove: RemoveMain = harmony.get(RemoveAspect.id);\n await remove.deleteComps('comp1');\n\n await snapping.snap({ build: false });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should save the deleted data into the lane object', async () => {\n const lane = await lanes.getCurrentLane();\n expect(lane?.components[0].isDeleted).to.be.true;\n });\n it('should save the deleted data into lane history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n const snapHistory = history[Object.keys(history)[2]];\n expect(snapHistory.deleted?.length).to.equal(1);\n });\n });\n\n describe('create comps on a lane then switch to main with --head', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n // in another workspace, merge the lane into main.\n const workspaceData2 = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n const harmony2 = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect, MergeLanesAspect],\n workspaceData2.workspacePath\n );\n const mergeLanes2 = harmony2.get<MergeLanesMain>(MergeLanesAspect.id);\n const lanes2 = harmony2.get<LanesMain>(LanesAspect.id);\n const currentLaneId2 = lanes2.getCurrentLaneId() as LaneId;\n await mergeLanes2.mergeLane(laneId, currentLaneId2, {\n mergeStrategy: 'manual',\n skipDependencyInstallation: true,\n });\n const export2 = harmony2.get<ExportMain>(ExportAspect.id);\n await export2.export();\n\n // reload harmony, otherwise, the \"lanes\" aspect has the workspace of harmony2.\n harmony = await loadManyAspects([LanesAspect], workspaceData.workspacePath);\n lanes = harmony.get(LanesAspect.id);\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('the components should be available on main', () => {\n const workspace: Workspace = harmony.get(WorkspaceAspect.id);\n const ids = workspace.listIds();\n expect(ids.length).to.equal(1);\n });\n });\n});\n\n/**\n * TODO: this should not be here. It belongs to the GraphQL aspect.\n * The reason it was moved here is that otherwise, it forms circular dependencies.\n * we should think of a better way to handle this.\n */\ndescribe('GraphQL Aspect', function () {\n this.timeout(0);\n\n describe('getSchemas and getSchema APIs', () => {\n let graphql: GraphqlMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n const harmony = await loadManyAspects([WorkspaceAspect, GraphqlAspect, LanesAspect], workspacePath);\n graphql = harmony.get<GraphqlMain>(GraphqlAspect.id);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should bring the schemas when calling getSchemas API', async () => {\n const schemas = graphql.getSchemas([LanesAspect.id]);\n expect(schemas).to.be.an('array');\n expect(schemas).to.have.lengthOf(1);\n expect(schemas[0]).to.be.an('object');\n expect(schemas[0]).to.not.be.an('function');\n });\n it('should bring the schemas when calling getSchema API', async () => {\n const schema = graphql.getSchema(LanesAspect.id);\n expect(schema).to.be.an('object');\n expect(schema).to.not.be.an('function');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_chai","data","require","_fsExtra","_interopRequireDefault","_path","_harmonyTesting","_remove","_snapping","_workspace","_export","_workspaceTesting","_componentTesting","_lanesEntities","_componentId","_switchLanes","_lanes","_mergeLanes","_graphql","e","__esModule","default","describe","timeout","lanes","workspaceData","before","mockWorkspace","workspacePath","mockComponents","loadAspect","LanesAspect","createLane","after","destroyWorkspace","it","currentLanes","getLanes","expect","to","have","lengthOf","name","equal","snapping","harmony","loadManyAspects","SnappingAspect","ExportAspect","WorkspaceAspect","get","id","tag","ids","build","ignoreIssues","exporter","export","modifyMockedComponents","result","snap","pattern","snappedComponents","length","currentLane","getCurrentLane","Error","isUpToDate","diffStatus","toLaneId","undefined","skipChanges","componentsStatus","every","c","upToDate","be","true","switchLanes","skipDependencyInstallation","unmodified","false","laneDiffResults","changeType","ChangeType","NONE","removeLanes","lanesAfterDelete","restoreLane","hash","output","laneHash","error","err","instanceOf","message","include","laneId","currentLaneId","getCurrentLaneId","laneHistory","getLaneHistory","history","getHistory","Object","keys","snappingResult","snapHistory","log","components","toString","exportResults","compFile","path","join","fs","appendFile","componentsIds","exportedLanes","newWorkspace","bareScopeName","remoteScopeName","importLaneObject","snapHistoryId","find","key","includes","results","checkoutHistory","failedComponents","revertWorkspace","revertHistory","compFileContent","readFile","not","secondSnapHistoryId","secondSnapHistory","workspace","listIds","scope","skip","RemoveAspect","remove","deleteComps","lane","isDeleted","deleted","workspaceData2","harmony2","MergeLanesAspect","mergeLanes2","lanes2","currentLaneId2","mergeLane","mergeStrategy","export2","graphql","GraphqlAspect","schemas","getSchemas","an","schema","getSchema","idStr","ComponentID","fromString","ours","oursOnMainOnly","foreign","laneBitIds","partitionSwitchIds","map","i","members","deep"],"sources":["lanes.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport type { Harmony } from '@teambit/harmony';\nimport { loadAspect, loadManyAspects } from '@teambit/harmony.testing.load-aspect';\nimport type { RemoveMain } from '@teambit/remove';\nimport { RemoveAspect } from '@teambit/remove';\nimport type { SnappingMain } from '@teambit/snapping';\nimport { SnappingAspect } from '@teambit/snapping';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { ExportMain } from '@teambit/export';\nimport { ExportAspect } from '@teambit/export';\nimport type { LaneId } from '@teambit/lane-id';\nimport type { WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { mockWorkspace, destroyWorkspace } from '@teambit/workspace.testing.mock-workspace';\nimport { mockComponents, modifyMockedComponents } from '@teambit/component.testing.mock-components';\nimport { ChangeType } from '@teambit/lanes.entities.lane-diff';\nimport { ComponentID } from '@teambit/component-id';\nimport { partitionSwitchIds } from './switch-lanes';\nimport { LanesAspect } from './lanes.aspect';\nimport type { LanesMain } from './lanes.main.runtime';\nimport type { MergeLanesMain } from '@teambit/merge-lanes';\nimport { MergeLanesAspect } from '@teambit/merge-lanes';\nimport { GraphqlAspect, type GraphqlMain } from '@teambit/graphql';\n\ndescribe('LanesAspect', function () {\n this.timeout(0);\n\n describe('getLanes()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should list all lanes', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].name).to.equal('stage');\n });\n });\n\n describe('isLaneUpToDate', () => {\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false, ignoreIssues: 'MissingManuallyConfiguredPackages' });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n await modifyMockedComponents(workspacePath, 'v2');\n const result = await snapping.snap({\n pattern: 'comp1',\n build: false,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.true;\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({\n pattern: 'comp1',\n build: false,\n unmodified: true,\n ignoreIssues: 'MissingManuallyConfiguredPackages',\n });\n const isUpToDate = (\n await lanes.diffStatus(currentLane.toLaneId(), undefined, { skipChanges: true })\n ).componentsStatus.every((c) => c.upToDate);\n\n expect(isUpToDate).to.be.false;\n });\n });\n\n describe('laneDiff', () => {\n let harmony: Harmony;\n let lanes: LanesMain;\n let snapping: SnappingMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects([SnappingAspect, ExportAspect, LanesAspect, WorkspaceAspect], workspacePath);\n snapping = harmony.get(SnappingAspect.id);\n await snapping.tag({ ids: ['comp1'], build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n const result = await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n // intermediate step, make sure it is snapped\n expect(result?.snappedComponents.length).to.equal(1);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should return that the lane is up to date when the lane is ahead of main', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.true;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n it('should return that the lane is not up to date when main is ahead', async () => {\n const currentLane = await lanes.getCurrentLane();\n if (!currentLane) throw new Error('unable to get the current lane');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await snapping.snap({ pattern: 'comp1', build: false, unmodified: true });\n\n const laneDiffResults = await lanes.diffStatus(currentLane.toLaneId());\n expect(laneDiffResults.componentsStatus[0].upToDate).to.be.false;\n expect(laneDiffResults.componentsStatus[0].changeType).to.equal(ChangeType.NONE);\n });\n });\n\n describe('restoreLane()', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n // as an intermediate step, make sure the lane was removed\n const lanesAfterDelete = await lanes.getLanes({});\n expect(lanesAfterDelete).to.have.lengthOf(0);\n\n await lanes.restoreLane(currentLanes[0].hash);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should restore the deleted lane', async () => {\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n expect(currentLanes[0].id.name).to.equal('stage');\n });\n describe('delete restored lane', () => {\n let output: string[];\n before(async () => {\n output = await lanes.removeLanes(['stage']);\n });\n it('should not throw', () => {\n expect(output).to.have.lengthOf(1);\n });\n });\n });\n\n describe('restore lane when an existing lane has the same id', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let laneHash: string;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n\n // as an intermediate step, make sure the lane was created\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes).to.have.lengthOf(1);\n\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n await lanes.removeLanes(['stage']);\n\n await lanes.createLane('stage');\n laneHash = currentLanes[0].hash;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should throw when restoring the lane', async () => {\n let error: Error | undefined;\n try {\n await lanes.restoreLane(laneHash);\n } catch (err: any) {\n error = err;\n }\n expect(error).to.be.instanceOf(Error);\n expect(error?.message).to.include('unable to restore lane');\n });\n });\n\n describe('lane history', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n snapping = await loadAspect(SnappingAspect, workspacePath);\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should create lane history object when creating a new lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(1);\n });\n describe('snapping', () => {\n let snappingResult;\n before(async () => {\n snappingResult = await snapping.snap({ pattern: 'comp1', build: false, message: 'first snap' });\n });\n it('should add a record to LaneHistory when snapping', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(2);\n const snapHistory = history[Object.keys(history)[1]];\n expect(snapHistory.log.message).to.equal('snap (first snap)');\n expect(snapHistory.components.length).to.equal(1);\n expect(snapHistory.components[0]).to.equal(snappingResult?.snappedComponents[0].id.toString() as string);\n });\n describe('snap again and export', () => {\n let exportResults;\n\n before(async () => {\n const compFile = path.join(workspaceData.workspacePath, 'comp1/index.js');\n await fs.appendFile(compFile, `\\nconsole.log('second-snap');`);\n // make another snap to check to test the checkout later.\n await snapping.snap({ pattern: 'comp1', build: false, message: 'second snap' });\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n\n const exporter: ExportMain = await loadAspect(ExportAspect, workspaceData.workspacePath);\n exportResults = await exporter.export();\n });\n it('should export successfully', () => {\n expect(exportResults.componentsIds.length).to.equal(1);\n expect(exportResults.exportedLanes.length).to.equal(1);\n });\n describe('import to another workspace', () => {\n let newWorkspace: WorkspaceData;\n before(async () => {\n newWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n\n lanes = await loadAspect(LanesAspect, newWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n });\n after(async () => {\n await destroyWorkspace(newWorkspace);\n });\n it('should not add a record to the lane-history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n });\n it('should be able to checkout to a previous state of the lane', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.checkoutHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n });\n it('should be able to revert to a previous history id', async () => {\n const revertWorkspace = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n lanes = await loadAspect(LanesAspect, revertWorkspace.workspacePath);\n await lanes.switchLanes(laneId.toString(), { skipDependencyInstallation: true });\n await lanes.importLaneObject(laneId, true, true);\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n const snapHistoryId = Object.keys(history).find((key) => history[key].log.message?.includes('first snap'));\n if (!snapHistoryId) throw new Error('unable to find snap history of the first snap');\n const results = await lanes.revertHistory(snapHistoryId, { skipDependencyInstallation: true });\n expect(results.components?.length).to.equal(1);\n expect(results.failedComponents?.length).to.equal(0);\n\n const compFile = path.join(\n revertWorkspace.workspacePath,\n revertWorkspace.remoteScopeName,\n 'comp1/index.js'\n );\n const compFileContent = await fs.readFile(compFile, 'utf8');\n\n // make sure it reverts to the first snap.\n expect(compFileContent).to.not.include('second-snap');\n\n // make sure it keeps the version in .bitmap intact and doesn't change it to the first snap. (as with checkout)\n const secondSnapHistoryId = Object.keys(history).find((key) =>\n history[key].log.message?.includes('second snap')\n );\n if (!secondSnapHistoryId) throw new Error('unable to find snap history of the second snap');\n const secondSnapHistory = history[secondSnapHistoryId];\n const workspace: Workspace = await loadAspect(WorkspaceAspect, revertWorkspace.workspacePath);\n const ids = await workspace.listIds();\n expect(ids[0].toString()).to.equal(secondSnapHistory.components[0]);\n await destroyWorkspace(revertWorkspace);\n });\n });\n });\n });\n });\n\n describe('create lanes with the same name different scope', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n lanes = await loadAspect(LanesAspect, workspacePath);\n await lanes.createLane('stage');\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should not throw when creating the second lane', async () => {\n await lanes.createLane('stage', { scope: 'new-scope' });\n const currentLanes = await lanes.getLanes({});\n expect(currentLanes.length).to.equal(2);\n expect(currentLanes[0].id.name).to.equal('stage');\n expect(currentLanes[1].id.name).to.equal('stage');\n });\n });\n\n // todo: fix after deleting teambit.legacy\n // for some reason it is trying to add the core-aspect teambit.component/remove to the graph and then\n // it complains that it has no version. from the cli it doesn't happen.\n describe.skip('delete component on a lane after export', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n const harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n const remove: RemoveMain = harmony.get(RemoveAspect.id);\n await remove.deleteComps('comp1');\n\n await snapping.snap({ build: false });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should save the deleted data into the lane object', async () => {\n const lane = await lanes.getCurrentLane();\n expect(lane?.components[0].isDeleted).to.be.true;\n });\n it('should save the deleted data into lane history', async () => {\n const laneHistory = await lanes.getLaneHistory(laneId);\n const history = laneHistory.getHistory();\n expect(Object.keys(history).length).to.equal(3);\n const snapHistory = history[Object.keys(history)[2]];\n expect(snapHistory.deleted?.length).to.equal(1);\n });\n });\n\n describe('create comps on a lane then switch to main with --head', () => {\n let lanes: LanesMain;\n let workspaceData: WorkspaceData;\n let snapping: SnappingMain;\n let laneId: LaneId;\n let harmony: Harmony;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n await mockComponents(workspacePath);\n harmony = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect],\n workspaceData.workspacePath\n );\n lanes = harmony.get(LanesAspect.id);\n await lanes.createLane('stage');\n\n const currentLaneId = lanes.getCurrentLaneId();\n if (!currentLaneId) throw new Error('unable to get the current lane-id');\n laneId = currentLaneId;\n\n snapping = harmony.get(SnappingAspect.id);\n await snapping.snap({ build: false });\n const exporter: ExportMain = harmony.get(ExportAspect.id);\n await exporter.export();\n\n // in another workspace, merge the lane into main.\n const workspaceData2 = mockWorkspace({ bareScopeName: workspaceData.remoteScopeName });\n const harmony2 = await loadManyAspects(\n [SnappingAspect, ExportAspect, RemoveAspect, WorkspaceAspect, LanesAspect, MergeLanesAspect],\n workspaceData2.workspacePath\n );\n const mergeLanes2 = harmony2.get<MergeLanesMain>(MergeLanesAspect.id);\n const lanes2 = harmony2.get<LanesMain>(LanesAspect.id);\n const currentLaneId2 = lanes2.getCurrentLaneId() as LaneId;\n await mergeLanes2.mergeLane(laneId, currentLaneId2, {\n mergeStrategy: 'manual',\n skipDependencyInstallation: true,\n });\n const export2 = harmony2.get<ExportMain>(ExportAspect.id);\n await export2.export();\n\n // reload harmony, otherwise, the \"lanes\" aspect has the workspace of harmony2.\n harmony = await loadManyAspects([LanesAspect], workspaceData.workspacePath);\n lanes = harmony.get(LanesAspect.id);\n await lanes.switchLanes('main', { skipDependencyInstallation: true });\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('the components should be available on main', () => {\n const workspace: Workspace = harmony.get(WorkspaceAspect.id);\n const ids = workspace.listIds();\n expect(ids.length).to.equal(1);\n });\n });\n});\n\n/**\n * TODO: this should not be here. It belongs to the GraphQL aspect.\n * The reason it was moved here is that otherwise, it forms circular dependencies.\n * we should think of a better way to handle this.\n */\ndescribe('GraphQL Aspect', function () {\n this.timeout(0);\n\n describe('getSchemas and getSchema APIs', () => {\n let graphql: GraphqlMain;\n let workspaceData: WorkspaceData;\n before(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n const harmony = await loadManyAspects([WorkspaceAspect, GraphqlAspect, LanesAspect], workspacePath);\n graphql = harmony.get<GraphqlMain>(GraphqlAspect.id);\n });\n after(async () => {\n await destroyWorkspace(workspaceData);\n });\n it('should bring the schemas when calling getSchemas API', async () => {\n const schemas = graphql.getSchemas([LanesAspect.id]);\n expect(schemas).to.be.an('array');\n expect(schemas).to.have.lengthOf(1);\n expect(schemas[0]).to.be.an('object');\n expect(schemas[0]).to.not.be.an('function');\n });\n it('should bring the schemas when calling getSchema API', async () => {\n const schema = graphql.getSchema(LanesAspect.id);\n expect(schema).to.be.an('object');\n expect(schema).to.not.be.an('function');\n });\n });\n});\n\ndescribe('partitionSwitchIds', () => {\n const id = (idStr: string) => ComponentID.fromString(idStr);\n const ours = id('acme.shop/comp1');\n const oursOnMainOnly = id('acme.shop/comp2');\n const foreign = id('other.scope/table');\n\n it('without a restriction: every lane component is taken, main-only components come along', () => {\n const { ids, laneBitIds } = partitionSwitchIds([ours, foreign], [ours, oursOnMainOnly]);\n expect(ids.map((i) => i.toString())).to.have.members([\n oursOnMainOnly.toString(),\n ours.toString(),\n foreign.toString(),\n ]);\n // on the lane but not in the workspace's main set\n expect(laneBitIds.map((i) => i.toString())).to.deep.equal([foreign.toString()]);\n });\n\n it('a restricted-out lane component is not taken from the lane', () => {\n const { ids, laneBitIds } = partitionSwitchIds([ours, foreign], [ours], ['acme.shop']);\n expect(ids.map((i) => i.toString())).to.deep.equal([ours.toString()]);\n expect(laneBitIds).to.deep.equal([]);\n });\n\n // The regression this guards: filtering only the lane side lets a restricted-out component\n // reappear as \"main-only\", which checks it out at its main version and writes it after all.\n it('a restricted-out lane component the workspace tracks is left untouched, not reverted to main', () => {\n const { ids } = partitionSwitchIds([ours, foreign], [ours, foreign], ['acme.shop']);\n expect(ids.map((i) => i.toString())).to.deep.equal([ours.toString()]);\n expect(ids.map((i) => i.toString())).to.not.include(foreign.toString());\n });\n\n it('a main-only component that the lane never carried is still taken at its main version', () => {\n const { ids } = partitionSwitchIds([ours], [ours, oursOnMainOnly], ['acme.shop']);\n expect(ids.map((i) => i.toString())).to.have.members([oursOnMainOnly.toString(), ours.toString()]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.1150/dist/lanes.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.lanes_lanes@1.0.1150/dist/lanes.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/dist/switch-lanes.d.ts
CHANGED
|
@@ -12,10 +12,30 @@ export type SwitchProps = {
|
|
|
12
12
|
pattern?: string;
|
|
13
13
|
skipFetch?: boolean;
|
|
14
14
|
existingOnWorkspaceOnly?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* switch only the lane components from these scopes. the lane's other components are left
|
|
17
|
+
* untouched: not written to the filesystem, not added to .bitmap, and not reverted to their main
|
|
18
|
+
* version either if this workspace happens to track them. the lane object itself is still fetched
|
|
19
|
+
* and saved whole, so a later snap/export preserves them. (`bit ci sync` mirrors only a lane's
|
|
20
|
+
* own-scope slice into a git repository.)
|
|
21
|
+
*/
|
|
22
|
+
restrictToScopes?: string[];
|
|
15
23
|
remoteLane?: Lane;
|
|
16
24
|
localTrackedLane?: string;
|
|
17
25
|
alias?: string;
|
|
18
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Which component ids a switch operates on: the lane's own components, plus the workspace components
|
|
29
|
+
* the lane does not carry (they stay at their main version, as they always have).
|
|
30
|
+
*
|
|
31
|
+
* `restrictToScopes` narrows the lane side to those scopes. Its components are then excluded from
|
|
32
|
+
* BOTH sides - a lane component outside the restriction must not reappear as "main-only", which
|
|
33
|
+
* would check it out at its main version and write it after all. Excluded means untouched.
|
|
34
|
+
*/
|
|
35
|
+
export declare function partitionSwitchIds(laneIds: ComponentID[], mainIds: ComponentID[], restrictToScopes?: string[]): {
|
|
36
|
+
ids: ComponentID[];
|
|
37
|
+
laneBitIds: ComponentID[];
|
|
38
|
+
};
|
|
19
39
|
export declare class LaneSwitcher {
|
|
20
40
|
private workspace;
|
|
21
41
|
private logger;
|
package/dist/switch-lanes.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.LaneSwitcher = void 0;
|
|
7
|
+
exports.partitionSwitchIds = partitionSwitchIds;
|
|
7
8
|
function _laneId() {
|
|
8
9
|
const data = require("@teambit/lane-id");
|
|
9
10
|
_laneId = function () {
|
|
@@ -37,6 +38,25 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
37
38
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
38
39
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
39
40
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
41
|
+
/**
|
|
42
|
+
* Which component ids a switch operates on: the lane's own components, plus the workspace components
|
|
43
|
+
* the lane does not carry (they stay at their main version, as they always have).
|
|
44
|
+
*
|
|
45
|
+
* `restrictToScopes` narrows the lane side to those scopes. Its components are then excluded from
|
|
46
|
+
* BOTH sides - a lane component outside the restriction must not reappear as "main-only", which
|
|
47
|
+
* would check it out at its main version and write it after all. Excluded means untouched.
|
|
48
|
+
*/
|
|
49
|
+
function partitionSwitchIds(laneIds, mainIds, restrictToScopes) {
|
|
50
|
+
const restricted = restrictToScopes?.length ? laneIds.filter(id => restrictToScopes.includes(id.scope)) : laneIds;
|
|
51
|
+
const isOnLane = id => Boolean(laneIds.find(laneId => laneId.isEqualWithoutVersion(id)));
|
|
52
|
+
const idsOnLaneOnly = restricted.filter(id => !mainIds.find(i => i.isEqualWithoutVersion(id)));
|
|
53
|
+
// Compared against the UNRESTRICTED lane ids on purpose - see the doc comment.
|
|
54
|
+
const idsOnMainOnly = mainIds.filter(id => !isOnLane(id));
|
|
55
|
+
return {
|
|
56
|
+
ids: [...idsOnMainOnly, ...restricted],
|
|
57
|
+
laneBitIds: idsOnLaneOnly
|
|
58
|
+
};
|
|
59
|
+
}
|
|
40
60
|
class LaneSwitcher {
|
|
41
61
|
// populated by `this.populateSwitchProps()`, if default-lane, it's undefined
|
|
42
62
|
constructor(workspace, logger, switchProps, checkoutProps, lanes) {
|
|
@@ -117,10 +137,12 @@ class LaneSwitcher {
|
|
|
117
137
|
laneIds = this.populatePropsAccordingToLocalLane(localLane);
|
|
118
138
|
}
|
|
119
139
|
}
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this.switchProps.
|
|
140
|
+
const {
|
|
141
|
+
ids,
|
|
142
|
+
laneBitIds
|
|
143
|
+
} = partitionSwitchIds(laneIds, mainIds, this.switchProps.restrictToScopes);
|
|
144
|
+
this.switchProps.ids = ids;
|
|
145
|
+
this.switchProps.laneBitIds = laneBitIds;
|
|
124
146
|
}
|
|
125
147
|
await this.populateIdsAccordingToPattern();
|
|
126
148
|
this.filterIdsNotInWorkspaceIfNeeded();
|
package/dist/switch-lanes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_laneId","data","require","_componentId","_bitError","_lanesModules","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","lanes","consumer","switch","setStatusLine","isOnMain","throwForStagedComponents","populateSwitchProps","bitMapIds","bitmapIdsFromCurrentLaneIncludeRemoved","idsToSwitch","ids","map","id","bitMapId","searchWithoutVersion","allowAddingComponentsFromScope","versionPerId","resolveMultipleComponentIds","lane","laneToSwitchTo","results","checkout","saveLanesData","onDestroy","laneId","scope","parseLaneIdFromString","laneName","skipFetch","localLane","loadLane","getMainIds","allIds","listIds","toVersionLatest","legacyScope","scopeImporter","importWithoutDeps","cache","ignoreMissingHead","err","consoleWarning","message","getIdsOfDefaultLane","mainIds","isDefault","populatePropsAccordingToDefaultLane","laneIds","BitError","toString","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","idsOnLaneOnly","find","isEqualWithoutVersion","idsOnMainOnly","laneBitIds","populateIdsAccordingToPattern","filterIdsNotInWorkspaceIfNeeded","existingOnWorkspaceOnly","isInWorkspace","Boolean","pattern","bitMap","getAllBitIdsFromAllLanes","filterIdsFromPoolIdsByPattern","remoteLaneId","laneIdToSwitchTo","debug","throwForSwitchingToCurrentLane","remoteLane","fetchLaneWithItsComponents","name","localTrackedLane","getAliasByLaneId","undefined","toComponentIds","LaneId","from","DEFAULT_LANE","toLaneId","getCurrentLaneId","isEqual","laneIdStr","localLaneName","alias","trackLane","remoteScope","setCurrentLane","isNew","syncWithIds","ComponentIdList","fromArray","objects","clearObjectsFromCache","exports"],"sources":["switch-lanes.ts"],"sourcesContent":["import type { Consumer } from '@teambit/legacy.consumer';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport type { ApplyVersionResults } from '@teambit/component.modules.merge-helper';\nimport type { Lane } from '@teambit/objects';\nimport type { CheckoutProps } from '@teambit/checkout';\nimport type { Workspace } from '@teambit/workspace';\nimport type { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { throwForStagedComponents } from '@teambit/lanes.modules.create-lane';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: ComponentID[];\n laneBitIds?: ComponentID[]; // only needed for the deprecated onLanesOnly prop. once this prop is removed, this prop can be removed as well.\n pattern?: string;\n skipFetch?: boolean;\n existingOnWorkspaceOnly?: boolean;\n remoteLane?: Lane;\n localTrackedLane?: string;\n alias?: string;\n};\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n private laneIdToSwitchTo: LaneId; // populated by `this.populateSwitchProps()`\n private laneToSwitchTo: Lane | undefined; // populated by `this.populateSwitchProps()`, if default-lane, it's undefined\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps,\n private lanes: LanesMain\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n if (this.workspace.isOnMain()) {\n await throwForStagedComponents(this.workspace);\n }\n await this.populateSwitchProps();\n const bitMapIds = this.workspace.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n const idsToSwitch = this.switchProps.ids || [];\n const ids = idsToSwitch.map((id) => {\n const bitMapId = bitMapIds.searchWithoutVersion(id);\n return bitMapId || id;\n });\n\n const checkoutProps: CheckoutProps = {\n ...this.checkoutProps,\n ids,\n allowAddingComponentsFromScope: true,\n versionPerId: await this.workspace.resolveMultipleComponentIds(idsToSwitch),\n lane: this.laneToSwitchTo,\n };\n\n const results = await this.lanes.checkout.checkout(checkoutProps);\n\n await this.saveLanesData();\n await this.consumer.onDestroy('lane-switch');\n\n return results;\n }\n\n private async populateSwitchProps() {\n const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);\n const skipFetch = this.switchProps.skipFetch;\n\n const localLane = await this.consumer.scope.loadLane(laneId);\n const getMainIds = async () => {\n if (!skipFetch) {\n // fetch by \"latest\" and without a lane, so the remote resolves each id against the head on\n // main of its original scope. passing the ids as-is would send the versions from .bitmap,\n // which on a lane are snap hashes that live on the lane's scope, not on the component's\n // original scope. the original scope can't resolve them, drops them from the response\n // silently, and the local head on main is left stale.\n const allIds = this.workspace.listIds().toVersionLatest();\n try {\n await this.workspace.scope.legacyScope.scopeImporter.importWithoutDeps(allIds, {\n cache: false,\n ignoreMissingHead: true,\n });\n } catch (err: any) {\n this.logger.consoleWarning(\n `failed to fetch the latest from the remote, falling back to local state. ${err.message}\\nuse --skip-fetch to skip this step.`\n );\n }\n }\n return this.consumer.getIdsOfDefaultLane();\n };\n const mainIds = await getMainIds();\n if (laneId.isDefault()) {\n await this.populatePropsAccordingToDefaultLane();\n this.switchProps.ids = mainIds;\n } else {\n let laneIds: ComponentID[];\n if (skipFetch) {\n if (!localLane) {\n throw new BitError(\n `unable to switch to lane \"${laneId.toString()}\" with --skip-fetch: the lane doesn't exist in the local scope. run without --skip-fetch to fetch it from the remote.`\n );\n }\n laneIds = this.populatePropsAccordingToLocalLane(localLane);\n } else {\n try {\n laneIds = await this.populatePropsAccordingToRemoteLane(laneId);\n } catch (err: any) {\n if (!localLane) throw err;\n this.logger.consoleWarning(\n `failed to fetch lane \"${laneId.toString()}\" from the remote, falling back to local state. ${err.message}\\nuse --skip-fetch to skip this step.`\n );\n laneIds = this.populatePropsAccordingToLocalLane(localLane);\n }\n }\n const idsOnLaneOnly = laneIds.filter((id) => !mainIds.find((i) => i.isEqualWithoutVersion(id)));\n const idsOnMainOnly = mainIds.filter((id) => !laneIds.find((i) => i.isEqualWithoutVersion(id)));\n this.switchProps.ids = [...idsOnMainOnly, ...laneIds];\n this.switchProps.laneBitIds = idsOnLaneOnly;\n }\n await this.populateIdsAccordingToPattern();\n this.filterIdsNotInWorkspaceIfNeeded();\n }\n\n /**\n * `--workspace-only`: switch only the components the workspace already tracks. a lane can carry\n * components this workspace doesn't have - e.g. one that was removed from the source after it was\n * snapped onto the lane - and checking those out would write them back into .bitmap and to the\n * filesystem. this flag is how a caller says \"move the lane pointer, leave my working tree as is\"\n * (`bit ci pr` relies on it: the git checkout is the source of truth there).\n */\n private filterIdsNotInWorkspaceIfNeeded() {\n if (!this.switchProps.existingOnWorkspaceOnly) return;\n const bitMapIds = this.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n const isInWorkspace = (id: ComponentID) => Boolean(bitMapIds.searchWithoutVersion(id));\n this.switchProps.ids = (this.switchProps.ids || []).filter(isInWorkspace);\n this.switchProps.laneBitIds = (this.switchProps.laneBitIds || []).filter(isInWorkspace);\n }\n\n private async populateIdsAccordingToPattern() {\n if (!this.switchProps.pattern) {\n return;\n }\n if (this.consumer.bitMap.getAllBitIdsFromAllLanes().length) {\n // if the workspace is not empty, it's possible that it has components from lane-x, and is now switching\n // partially to lane-y, while lane-y has the same components as lane-x. in which case, the user ends up with\n // an invalid state of components from lane-x and lane-y together.\n throw new BitError('error: use --pattern only when the workspace is empty');\n }\n const allIds = this.switchProps.ids || [];\n this.switchProps.ids = await this.workspace.filterIdsFromPoolIdsByPattern(this.switchProps.pattern, allIds);\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId): Promise<ComponentID[]> {\n this.laneIdToSwitchTo = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n this.throwForSwitchingToCurrentLane();\n const remoteLane = await this.lanes.fetchLaneWithItsComponents(remoteLaneId);\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.localTrackedLane = this.consumer.scope.lanes.getAliasByLaneId(remoteLaneId) || undefined;\n this.switchProps.remoteLane = remoteLane;\n this.laneToSwitchTo = remoteLane;\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n return [...remoteLane.toComponentIds()];\n }\n\n private async populatePropsAccordingToDefaultLane() {\n this.laneIdToSwitchTo = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n this.throwForSwitchingToCurrentLane();\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane): ComponentID[] {\n this.laneIdToSwitchTo = localLane.toLaneId();\n this.laneToSwitchTo = localLane;\n this.throwForSwitchingToCurrentLane();\n return [...localLane.toComponentIds()];\n }\n\n private throwForSwitchingToCurrentLane() {\n if (this.consumer.getCurrentLaneId().isEqual(this.laneIdToSwitchTo)) {\n const laneIdStr = this.laneIdToSwitchTo.isDefault()\n ? this.laneIdToSwitchTo.name\n : this.laneIdToSwitchTo.toString();\n throw new BitError(`already checked out to \"${laneIdStr}\".\nto be up to date with the remote lane, please run \"bit checkout head\"`);\n }\n }\n\n private async saveLanesData() {\n const localLaneName = this.switchProps.alias || this.laneIdToSwitchTo.name;\n if (this.switchProps.remoteLane) {\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: localLaneName,\n remoteLane: this.laneIdToSwitchTo.name,\n remoteScope: this.laneIdToSwitchTo.scope,\n });\n }\n }\n\n this.consumer.setCurrentLane(this.laneIdToSwitchTo, !this.laneToSwitchTo?.isNew);\n this.consumer.bitMap.syncWithIds(\n ComponentIdList.fromArray(this.switchProps.ids || []),\n ComponentIdList.fromArray(this.switchProps.laneBitIds || [])\n );\n\n // If this cache isn't cleared, here's what can happen:\n // Switching from \"lane-dev\" to \"main\": while on \"lane-dev\", ModelComponent keeps in-memory props\n // `laneHeadLocal` and `laneHeadRemote`. Methods like `headIncludeRemote()` use them and may return\n // the lane-dev head instead of the head on main.\n this.consumer.scope.objects.clearObjectsFromCache();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_laneId","data","require","_componentId","_bitError","_lanesModules","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","partitionSwitchIds","laneIds","mainIds","restrictToScopes","restricted","id","includes","scope","isOnLane","Boolean","find","laneId","isEqualWithoutVersion","idsOnLaneOnly","idsOnMainOnly","ids","laneBitIds","LaneSwitcher","constructor","workspace","logger","switchProps","checkoutProps","lanes","consumer","switch","setStatusLine","isOnMain","throwForStagedComponents","populateSwitchProps","bitMapIds","bitmapIdsFromCurrentLaneIncludeRemoved","idsToSwitch","map","bitMapId","searchWithoutVersion","allowAddingComponentsFromScope","versionPerId","resolveMultipleComponentIds","lane","laneToSwitchTo","results","checkout","saveLanesData","onDestroy","parseLaneIdFromString","laneName","skipFetch","localLane","loadLane","getMainIds","allIds","listIds","toVersionLatest","legacyScope","scopeImporter","importWithoutDeps","cache","ignoreMissingHead","err","consoleWarning","message","getIdsOfDefaultLane","isDefault","populatePropsAccordingToDefaultLane","BitError","toString","populatePropsAccordingToLocalLane","populatePropsAccordingToRemoteLane","populateIdsAccordingToPattern","filterIdsNotInWorkspaceIfNeeded","existingOnWorkspaceOnly","isInWorkspace","pattern","bitMap","getAllBitIdsFromAllLanes","filterIdsFromPoolIdsByPattern","remoteLaneId","laneIdToSwitchTo","debug","throwForSwitchingToCurrentLane","remoteLane","fetchLaneWithItsComponents","name","localTrackedLane","getAliasByLaneId","undefined","toComponentIds","LaneId","from","DEFAULT_LANE","toLaneId","getCurrentLaneId","isEqual","laneIdStr","localLaneName","alias","trackLane","remoteScope","setCurrentLane","isNew","syncWithIds","ComponentIdList","fromArray","objects","clearObjectsFromCache","exports"],"sources":["switch-lanes.ts"],"sourcesContent":["import type { Consumer } from '@teambit/legacy.consumer';\nimport { LaneId, DEFAULT_LANE } from '@teambit/lane-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport { ComponentIdList } from '@teambit/component-id';\nimport type { ApplyVersionResults } from '@teambit/component.modules.merge-helper';\nimport type { Lane } from '@teambit/objects';\nimport type { CheckoutProps } from '@teambit/checkout';\nimport type { Workspace } from '@teambit/workspace';\nimport type { Logger } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport { throwForStagedComponents } from '@teambit/lanes.modules.create-lane';\nimport type { LanesMain } from './lanes.main.runtime';\n\nexport type SwitchProps = {\n laneName: string;\n ids?: ComponentID[];\n laneBitIds?: ComponentID[]; // only needed for the deprecated onLanesOnly prop. once this prop is removed, this prop can be removed as well.\n pattern?: string;\n skipFetch?: boolean;\n existingOnWorkspaceOnly?: boolean;\n /**\n * switch only the lane components from these scopes. the lane's other components are left\n * untouched: not written to the filesystem, not added to .bitmap, and not reverted to their main\n * version either if this workspace happens to track them. the lane object itself is still fetched\n * and saved whole, so a later snap/export preserves them. (`bit ci sync` mirrors only a lane's\n * own-scope slice into a git repository.)\n */\n restrictToScopes?: string[];\n remoteLane?: Lane;\n localTrackedLane?: string;\n alias?: string;\n};\n\n/**\n * Which component ids a switch operates on: the lane's own components, plus the workspace components\n * the lane does not carry (they stay at their main version, as they always have).\n *\n * `restrictToScopes` narrows the lane side to those scopes. Its components are then excluded from\n * BOTH sides - a lane component outside the restriction must not reappear as \"main-only\", which\n * would check it out at its main version and write it after all. Excluded means untouched.\n */\nexport function partitionSwitchIds(\n laneIds: ComponentID[],\n mainIds: ComponentID[],\n restrictToScopes?: string[]\n): { ids: ComponentID[]; laneBitIds: ComponentID[] } {\n const restricted = restrictToScopes?.length ? laneIds.filter((id) => restrictToScopes.includes(id.scope)) : laneIds;\n const isOnLane = (id: ComponentID) => Boolean(laneIds.find((laneId) => laneId.isEqualWithoutVersion(id)));\n const idsOnLaneOnly = restricted.filter((id) => !mainIds.find((i) => i.isEqualWithoutVersion(id)));\n // Compared against the UNRESTRICTED lane ids on purpose - see the doc comment.\n const idsOnMainOnly = mainIds.filter((id) => !isOnLane(id));\n return { ids: [...idsOnMainOnly, ...restricted], laneBitIds: idsOnLaneOnly };\n}\n\nexport class LaneSwitcher {\n private consumer: Consumer;\n private laneIdToSwitchTo: LaneId; // populated by `this.populateSwitchProps()`\n private laneToSwitchTo: Lane | undefined; // populated by `this.populateSwitchProps()`, if default-lane, it's undefined\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private switchProps: SwitchProps,\n private checkoutProps: CheckoutProps,\n private lanes: LanesMain\n ) {\n this.consumer = this.workspace.consumer;\n }\n\n async switch(): Promise<ApplyVersionResults> {\n this.logger.setStatusLine(`switching lanes`);\n if (this.workspace.isOnMain()) {\n await throwForStagedComponents(this.workspace);\n }\n await this.populateSwitchProps();\n const bitMapIds = this.workspace.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n const idsToSwitch = this.switchProps.ids || [];\n const ids = idsToSwitch.map((id) => {\n const bitMapId = bitMapIds.searchWithoutVersion(id);\n return bitMapId || id;\n });\n\n const checkoutProps: CheckoutProps = {\n ...this.checkoutProps,\n ids,\n allowAddingComponentsFromScope: true,\n versionPerId: await this.workspace.resolveMultipleComponentIds(idsToSwitch),\n lane: this.laneToSwitchTo,\n };\n\n const results = await this.lanes.checkout.checkout(checkoutProps);\n\n await this.saveLanesData();\n await this.consumer.onDestroy('lane-switch');\n\n return results;\n }\n\n private async populateSwitchProps() {\n const laneId = await this.consumer.scope.lanes.parseLaneIdFromString(this.switchProps.laneName);\n const skipFetch = this.switchProps.skipFetch;\n\n const localLane = await this.consumer.scope.loadLane(laneId);\n const getMainIds = async () => {\n if (!skipFetch) {\n // fetch by \"latest\" and without a lane, so the remote resolves each id against the head on\n // main of its original scope. passing the ids as-is would send the versions from .bitmap,\n // which on a lane are snap hashes that live on the lane's scope, not on the component's\n // original scope. the original scope can't resolve them, drops them from the response\n // silently, and the local head on main is left stale.\n const allIds = this.workspace.listIds().toVersionLatest();\n try {\n await this.workspace.scope.legacyScope.scopeImporter.importWithoutDeps(allIds, {\n cache: false,\n ignoreMissingHead: true,\n });\n } catch (err: any) {\n this.logger.consoleWarning(\n `failed to fetch the latest from the remote, falling back to local state. ${err.message}\\nuse --skip-fetch to skip this step.`\n );\n }\n }\n return this.consumer.getIdsOfDefaultLane();\n };\n const mainIds = await getMainIds();\n if (laneId.isDefault()) {\n await this.populatePropsAccordingToDefaultLane();\n this.switchProps.ids = mainIds;\n } else {\n let laneIds: ComponentID[];\n if (skipFetch) {\n if (!localLane) {\n throw new BitError(\n `unable to switch to lane \"${laneId.toString()}\" with --skip-fetch: the lane doesn't exist in the local scope. run without --skip-fetch to fetch it from the remote.`\n );\n }\n laneIds = this.populatePropsAccordingToLocalLane(localLane);\n } else {\n try {\n laneIds = await this.populatePropsAccordingToRemoteLane(laneId);\n } catch (err: any) {\n if (!localLane) throw err;\n this.logger.consoleWarning(\n `failed to fetch lane \"${laneId.toString()}\" from the remote, falling back to local state. ${err.message}\\nuse --skip-fetch to skip this step.`\n );\n laneIds = this.populatePropsAccordingToLocalLane(localLane);\n }\n }\n const { ids, laneBitIds } = partitionSwitchIds(laneIds, mainIds, this.switchProps.restrictToScopes);\n this.switchProps.ids = ids;\n this.switchProps.laneBitIds = laneBitIds;\n }\n await this.populateIdsAccordingToPattern();\n this.filterIdsNotInWorkspaceIfNeeded();\n }\n\n /**\n * `--workspace-only`: switch only the components the workspace already tracks. a lane can carry\n * components this workspace doesn't have - e.g. one that was removed from the source after it was\n * snapped onto the lane - and checking those out would write them back into .bitmap and to the\n * filesystem. this flag is how a caller says \"move the lane pointer, leave my working tree as is\"\n * (`bit ci pr` relies on it: the git checkout is the source of truth there).\n */\n private filterIdsNotInWorkspaceIfNeeded() {\n if (!this.switchProps.existingOnWorkspaceOnly) return;\n const bitMapIds = this.consumer.bitmapIdsFromCurrentLaneIncludeRemoved;\n const isInWorkspace = (id: ComponentID) => Boolean(bitMapIds.searchWithoutVersion(id));\n this.switchProps.ids = (this.switchProps.ids || []).filter(isInWorkspace);\n this.switchProps.laneBitIds = (this.switchProps.laneBitIds || []).filter(isInWorkspace);\n }\n\n private async populateIdsAccordingToPattern() {\n if (!this.switchProps.pattern) {\n return;\n }\n if (this.consumer.bitMap.getAllBitIdsFromAllLanes().length) {\n // if the workspace is not empty, it's possible that it has components from lane-x, and is now switching\n // partially to lane-y, while lane-y has the same components as lane-x. in which case, the user ends up with\n // an invalid state of components from lane-x and lane-y together.\n throw new BitError('error: use --pattern only when the workspace is empty');\n }\n const allIds = this.switchProps.ids || [];\n this.switchProps.ids = await this.workspace.filterIdsFromPoolIdsByPattern(this.switchProps.pattern, allIds);\n }\n\n private async populatePropsAccordingToRemoteLane(remoteLaneId: LaneId): Promise<ComponentID[]> {\n this.laneIdToSwitchTo = remoteLaneId;\n this.logger.debug(`populatePropsAccordingToRemoteLane, remoteLaneId: ${remoteLaneId.toString()}`);\n this.throwForSwitchingToCurrentLane();\n const remoteLane = await this.lanes.fetchLaneWithItsComponents(remoteLaneId);\n this.switchProps.laneName = remoteLaneId.name;\n this.switchProps.localTrackedLane = this.consumer.scope.lanes.getAliasByLaneId(remoteLaneId) || undefined;\n this.switchProps.remoteLane = remoteLane;\n this.laneToSwitchTo = remoteLane;\n this.logger.debug(`populatePropsAccordingToRemoteLane, completed`);\n return [...remoteLane.toComponentIds()];\n }\n\n private async populatePropsAccordingToDefaultLane() {\n this.laneIdToSwitchTo = LaneId.from(DEFAULT_LANE, this.consumer.scope.name);\n this.throwForSwitchingToCurrentLane();\n }\n\n private populatePropsAccordingToLocalLane(localLane: Lane): ComponentID[] {\n this.laneIdToSwitchTo = localLane.toLaneId();\n this.laneToSwitchTo = localLane;\n this.throwForSwitchingToCurrentLane();\n return [...localLane.toComponentIds()];\n }\n\n private throwForSwitchingToCurrentLane() {\n if (this.consumer.getCurrentLaneId().isEqual(this.laneIdToSwitchTo)) {\n const laneIdStr = this.laneIdToSwitchTo.isDefault()\n ? this.laneIdToSwitchTo.name\n : this.laneIdToSwitchTo.toString();\n throw new BitError(`already checked out to \"${laneIdStr}\".\nto be up to date with the remote lane, please run \"bit checkout head\"`);\n }\n }\n\n private async saveLanesData() {\n const localLaneName = this.switchProps.alias || this.laneIdToSwitchTo.name;\n if (this.switchProps.remoteLane) {\n if (!this.switchProps.localTrackedLane) {\n this.consumer.scope.lanes.trackLane({\n localLane: localLaneName,\n remoteLane: this.laneIdToSwitchTo.name,\n remoteScope: this.laneIdToSwitchTo.scope,\n });\n }\n }\n\n this.consumer.setCurrentLane(this.laneIdToSwitchTo, !this.laneToSwitchTo?.isNew);\n this.consumer.bitMap.syncWithIds(\n ComponentIdList.fromArray(this.switchProps.ids || []),\n ComponentIdList.fromArray(this.switchProps.laneBitIds || [])\n );\n\n // If this cache isn't cleared, here's what can happen:\n // Switching from \"lane-dev\" to \"main\": while on \"lane-dev\", ModelComponent keeps in-memory props\n // `laneHeadLocal` and `laneHeadRemote`. Methods like `headIncludeRemote()` use them and may return\n // the lane-dev head instead of the head on main.\n this.consumer.scope.objects.clearObjectsFromCache();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/lanes",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1150",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/lanes/lanes",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.lanes",
|
|
8
8
|
"name": "lanes",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.1150"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "4.1.2",
|
|
@@ -23,23 +23,35 @@
|
|
|
23
23
|
"@teambit/bit-error": "0.0.404",
|
|
24
24
|
"@teambit/cli": "0.0.1375",
|
|
25
25
|
"@teambit/component.modules.merge-helper": "0.0.91",
|
|
26
|
+
"@teambit/importer": "1.0.1128",
|
|
26
27
|
"@teambit/lane-id": "0.0.312",
|
|
27
28
|
"@teambit/legacy.constants": "0.0.41",
|
|
28
29
|
"@teambit/legacy.scope": "0.0.148",
|
|
30
|
+
"@teambit/scope": "1.0.1128",
|
|
31
|
+
"@teambit/workspace": "1.0.1128",
|
|
29
32
|
"@teambit/harmony": "0.4.12",
|
|
30
33
|
"@teambit/express": "0.0.1474",
|
|
31
34
|
"@teambit/logger": "0.0.1468",
|
|
32
35
|
"@teambit/component-id": "1.2.4",
|
|
36
|
+
"@teambit/graphql": "1.0.1128",
|
|
37
|
+
"@teambit/component-compare": "1.0.1128",
|
|
38
|
+
"@teambit/component-writer": "1.0.1128",
|
|
33
39
|
"@teambit/component.snap-distance": "0.0.149",
|
|
40
|
+
"@teambit/component": "1.0.1128",
|
|
41
|
+
"@teambit/export": "1.0.1128",
|
|
34
42
|
"@teambit/git.modules.git-executable": "0.0.42",
|
|
35
43
|
"@teambit/harmony.modules.concurrency": "0.0.42",
|
|
44
|
+
"@teambit/install": "1.0.1128",
|
|
36
45
|
"@teambit/lanes.entities.lane-diff": "0.0.199",
|
|
37
46
|
"@teambit/lanes.modules.create-lane": "0.0.183",
|
|
38
47
|
"@teambit/lanes.modules.diff": "0.0.653",
|
|
39
48
|
"@teambit/legacy-bit-id": "1.1.3",
|
|
40
49
|
"@teambit/legacy.component-diff": "0.0.204",
|
|
41
50
|
"@teambit/legacy.component-list": "0.0.202",
|
|
51
|
+
"@teambit/objects": "0.0.635",
|
|
52
|
+
"@teambit/remove": "1.0.1128",
|
|
42
53
|
"@teambit/scope.remotes": "0.0.148",
|
|
54
|
+
"@teambit/command-bar": "1.0.1128",
|
|
43
55
|
"@teambit/component.ui.component-compare.models.component-compare-props": "0.0.134",
|
|
44
56
|
"@teambit/design.ui.pages.not-found": "0.0.371",
|
|
45
57
|
"@teambit/lanes.hooks.use-lanes": "0.0.294",
|
|
@@ -54,23 +66,11 @@
|
|
|
54
66
|
"@teambit/ui-foundation.ui.menu": "0.0.503",
|
|
55
67
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.527",
|
|
56
68
|
"@teambit/ui-foundation.ui.react-router.use-query": "0.0.505",
|
|
69
|
+
"@teambit/ui": "1.0.1128",
|
|
57
70
|
"@teambit/legacy.consumer": "0.0.148",
|
|
58
71
|
"@teambit/scope.network": "0.0.148",
|
|
59
|
-
"@teambit/checkout": "1.0.
|
|
60
|
-
"@teambit/
|
|
61
|
-
"@teambit/scope": "1.0.1128",
|
|
62
|
-
"@teambit/workspace": "1.0.1128",
|
|
63
|
-
"@teambit/graphql": "1.0.1128",
|
|
64
|
-
"@teambit/component-compare": "1.0.1128",
|
|
65
|
-
"@teambit/component-writer": "1.0.1128",
|
|
66
|
-
"@teambit/component": "1.0.1128",
|
|
67
|
-
"@teambit/export": "1.0.1128",
|
|
68
|
-
"@teambit/install": "1.0.1128",
|
|
69
|
-
"@teambit/merging": "1.0.1131",
|
|
70
|
-
"@teambit/objects": "0.0.635",
|
|
71
|
-
"@teambit/remove": "1.0.1128",
|
|
72
|
-
"@teambit/command-bar": "1.0.1128",
|
|
73
|
-
"@teambit/ui": "1.0.1128"
|
|
72
|
+
"@teambit/checkout": "1.0.1130",
|
|
73
|
+
"@teambit/merging": "1.0.1132"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/lodash": "4.14.165",
|
|
@@ -78,10 +78,10 @@
|
|
|
78
78
|
"@types/mocha": "9.1.0",
|
|
79
79
|
"@teambit/component.testing.mock-components": "0.0.420",
|
|
80
80
|
"@teambit/harmony.testing.load-aspect": "0.0.415",
|
|
81
|
+
"@teambit/snapping": "1.0.1128",
|
|
81
82
|
"@teambit/workspace.testing.mock-workspace": "0.0.228",
|
|
82
83
|
"@teambit/harmony.envs.core-aspect-env": "2.0.6",
|
|
83
|
-
"@teambit/merge-lanes": "1.0.
|
|
84
|
-
"@teambit/snapping": "1.0.1128"
|
|
84
|
+
"@teambit/merge-lanes": "1.0.1150"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
87
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|