@teambit/workspace 1.0.345 → 1.0.347
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/artifacts/__bit_junit.xml +1 -1
- package/artifacts/preview/teambit_workspace_workspace-preview.js +1 -1
- package/artifacts/schema.json +2124 -1826
- package/commands/local-only-cmd.ts +85 -0
- package/dist/bit-map.d.ts +3 -0
- package/dist/bit-map.js +22 -0
- package/dist/bit-map.js.map +1 -1
- package/dist/commands/local-only-cmd.d.ts +46 -0
- package/dist/commands/local-only-cmd.js +101 -0
- package/dist/commands/local-only-cmd.js.map +1 -0
- package/dist/filter.d.ts +3 -2
- package/dist/filter.js +9 -2
- package/dist/filter.js.map +1 -1
- package/dist/{preview-1721531998553.js → preview-1721704844483.js} +2 -2
- package/dist/ui/workspace/use-workspace.d.ts +1 -0
- package/dist/workspace.d.ts +4 -0
- package/dist/workspace.js +14 -1
- package/dist/workspace.js.map +1 -1
- package/dist/workspace.main.runtime.js +10 -0
- package/dist/workspace.main.runtime.js.map +1 -1
- package/dist/workspace.ui.runtime.d.ts +1 -1
- package/package.json +28 -28
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* eslint max-classes-per-file: 0 */
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';
|
|
4
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
|
5
|
+
import { Workspace } from '../workspace';
|
|
6
|
+
|
|
7
|
+
export class LocalOnlySetCmd implements Command {
|
|
8
|
+
name = 'set <component-pattern>';
|
|
9
|
+
description = 'set a component as local-only';
|
|
10
|
+
arguments = [
|
|
11
|
+
{
|
|
12
|
+
name: 'component-pattern',
|
|
13
|
+
description: COMPONENT_PATTERN_HELP,
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
alias = '';
|
|
17
|
+
options = [] as CommandOptions;
|
|
18
|
+
|
|
19
|
+
constructor(private workspace: Workspace) {}
|
|
20
|
+
|
|
21
|
+
async report([pattern]: [string]) {
|
|
22
|
+
const ids = await this.workspace.idsByPattern(pattern);
|
|
23
|
+
await this.workspace.setLocalOnly(ids);
|
|
24
|
+
const title = chalk.bold(`successfully set the following components as local-only`);
|
|
25
|
+
return `${title}:\n${ids.map((id) => id.toString()).join('\n')}`;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export class LocalOnlyUnsetCmd implements Command {
|
|
30
|
+
name = 'unset <component-pattern>';
|
|
31
|
+
description = 'remove a component from local-only';
|
|
32
|
+
arguments = [
|
|
33
|
+
{
|
|
34
|
+
name: 'component-pattern',
|
|
35
|
+
description: COMPONENT_PATTERN_HELP,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
alias = '';
|
|
39
|
+
options = [] as CommandOptions;
|
|
40
|
+
|
|
41
|
+
constructor(private workspace: Workspace) {}
|
|
42
|
+
|
|
43
|
+
async report([pattern]: [string]) {
|
|
44
|
+
const ids = await this.workspace.idsByPattern(pattern);
|
|
45
|
+
const successfullyUnset = await this.workspace.unsetLocalOnly(ids);
|
|
46
|
+
if (successfullyUnset.length === 0) {
|
|
47
|
+
return chalk.yellow('no local-only components were found');
|
|
48
|
+
}
|
|
49
|
+
const title = chalk.bold(`successfully unset the following component(s)`);
|
|
50
|
+
return `${title}:\n${successfullyUnset.map((id) => id.toString()).join('\n')}`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export class LocalOnlyListCmd implements Command {
|
|
55
|
+
name = 'list';
|
|
56
|
+
description = 'list all local-only components';
|
|
57
|
+
alias = '';
|
|
58
|
+
options = [] as CommandOptions;
|
|
59
|
+
|
|
60
|
+
constructor(private workspace: Workspace) {}
|
|
61
|
+
|
|
62
|
+
async report() {
|
|
63
|
+
const ids = this.workspace.listLocalOnly();
|
|
64
|
+
if (ids.length === 0) {
|
|
65
|
+
return chalk.yellow('no local-only components were found');
|
|
66
|
+
}
|
|
67
|
+
const title = chalk.bold(`the following component(s) are local-only`);
|
|
68
|
+
return `${title}:\n${ids.map((id) => id.toString()).join('\n')}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export class LocalOnlyCmd implements Command {
|
|
73
|
+
name = 'local-only <sub-command>';
|
|
74
|
+
description = 'manage local-only components, which reside only in the workspace and are not snapped/tagged';
|
|
75
|
+
group = 'development';
|
|
76
|
+
alias = '';
|
|
77
|
+
commands: Command[] = [];
|
|
78
|
+
options = [] as CommandOptions;
|
|
79
|
+
|
|
80
|
+
async report([unrecognizedSubcommand]: [string]) {
|
|
81
|
+
return chalk.red(
|
|
82
|
+
`"${unrecognizedSubcommand}" is not a subcommand of "local-only", please run "bit local-only --help" to list the subcommands`
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
}
|
package/dist/bit-map.d.ts
CHANGED
|
@@ -30,6 +30,9 @@ export declare class BitMap {
|
|
|
30
30
|
setEntireConfig(id: ComponentID, config: Record<string, any>): void;
|
|
31
31
|
removeDefaultScope(id: ComponentID): void;
|
|
32
32
|
setDefaultScope(id: ComponentID, defaultScope: string): void;
|
|
33
|
+
setLocalOnly(ids: ComponentID[]): void;
|
|
34
|
+
unsetLocalOnly(ids: ComponentID[]): ComponentID[];
|
|
35
|
+
listLocalOnly(): ComponentID[];
|
|
33
36
|
/**
|
|
34
37
|
* write .bitmap object to the filesystem
|
|
35
38
|
* optionally pass a reason for the change to be saved in the local scope `bitmap-history-metadata.txt` file.
|
package/dist/bit-map.js
CHANGED
|
@@ -165,6 +165,28 @@ class BitMap {
|
|
|
165
165
|
bitMapEntry.id = bitMapEntry.id.changeDefaultScope(defaultScope);
|
|
166
166
|
this.legacyBitMap.markAsChanged();
|
|
167
167
|
}
|
|
168
|
+
setLocalOnly(ids) {
|
|
169
|
+
ids.forEach(id => {
|
|
170
|
+
const bitMapEntry = this.getBitmapEntry(id);
|
|
171
|
+
bitMapEntry.localOnly = true;
|
|
172
|
+
});
|
|
173
|
+
this.legacyBitMap.markAsChanged();
|
|
174
|
+
}
|
|
175
|
+
unsetLocalOnly(ids) {
|
|
176
|
+
const successfullyUnset = [];
|
|
177
|
+
ids.forEach(id => {
|
|
178
|
+
const bitMapEntry = this.getBitmapEntry(id);
|
|
179
|
+
if (!bitMapEntry.localOnly) return;
|
|
180
|
+
bitMapEntry.localOnly = false;
|
|
181
|
+
successfullyUnset.push(id);
|
|
182
|
+
});
|
|
183
|
+
this.legacyBitMap.markAsChanged();
|
|
184
|
+
return successfullyUnset;
|
|
185
|
+
}
|
|
186
|
+
listLocalOnly() {
|
|
187
|
+
const allIds = this.legacyBitMap.getAllBitIds();
|
|
188
|
+
return allIds.filter(id => this.getBitmapEntry(id).localOnly);
|
|
189
|
+
}
|
|
168
190
|
|
|
169
191
|
/**
|
|
170
192
|
* write .bitmap object to the filesystem
|
package/dist/bit-map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_legacy","_config","_bitError","_envs","_toolboxFs","BitMap","constructor","legacyBitMap","consumer","mergeBitmaps","bitmapContent","otherBitmapContent","opts","LegacyBitMap","mergeContent","getPath","mapPath","getAllRootDirs","Object","keys","getAllTrackDirs","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","updateDefaultScope","oldScope","newScope","changedId","components","forEach","componentMap","defaultScope","hasVersion","changeDefaultScope","push","length","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","setDefaultScope","write","reasonForChange","writeBitMap","getComponent","getBitmapEntryIfExist","getComponentIfExist","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","filter","startsWith","toStringWithoutVersion","BitError","join","renameNewComponent","sourceId","targetId","fullName","removeComponent","scope","setComponent","renameAspectInConfig","EnvsAspect","envConfig","env","getExportedLaneId","isLaneExported","laneId","makeComponentsAvailableOnMain","ids","isAvailableOnCurrentLane","onLanesOnly","hasChanged","takeSnapshot","map","comp","clone","restoreFromSnapshot","componentMaps","_invalidateCache","getLastModifiedBitmapThroughBit","bitmapHistoryDir","getBitmapHistoryDir","stat","getPathStatIfExist","mtimeMs","exports"],"sources":["bit-map.ts"],"sourcesContent":["import { isEqual, merge } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitMap as LegacyBitMap, ComponentMap, GetBitMapComponentOptions } from '@teambit/legacy.bit-map';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport { EnvsAspect } from '@teambit/envs';\nimport { PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { getPathStatIfExist } from '@teambit/toolbox.fs.last-modified';\n\nexport type MergeOptions = {\n mergeStrategy?: 'theirs' | 'ours' | 'manual';\n};\n/**\n * consider extracting to a new component.\n * (pro: making Workspace aspect smaller. con: it's an implementation details of the workspace)\n */\nexport class BitMap {\n constructor(private legacyBitMap: LegacyBitMap, private consumer: Consumer) {}\n\n mergeBitmaps(bitmapContent: string, otherBitmapContent: string, opts: MergeOptions = {}): string {\n return LegacyBitMap.mergeContent(bitmapContent, otherBitmapContent, opts);\n }\n\n getPath(): PathOsBasedAbsolute {\n return this.legacyBitMap.mapPath;\n }\n\n getAllRootDirs(): string[] {\n return Object.keys(this.legacyBitMap.getAllTrackDirs());\n }\n\n /**\n * adds component config to the .bitmap file.\n * later, upon `bit tag`, the data is saved in the scope.\n * returns a boolean indicating whether a change has been made.\n */\n addComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeConfig = false\n ): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (isEqual(currentConfig, config)) {\n return false; // no changes\n }\n const getNewConfig = () => {\n if (!config) return null;\n if (!shouldMergeConfig) return config;\n // should merge\n if (!currentConfig) return config;\n if (currentConfig === '-') return config;\n // lodash merge performs a deep merge. (the native concatenation don't)\n return merge(currentConfig, config);\n };\n const newConfig = getNewConfig();\n if (newConfig) {\n bitMapEntry.config[aspectId] = newConfig;\n } else {\n delete bitMapEntry.config[aspectId];\n }\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n updateDefaultScope(oldScope: string, newScope: string) {\n const changedId: ComponentID[] = [];\n this.legacyBitMap.components.forEach((componentMap) => {\n // only new components (not snapped/tagged) can be changed\n if (componentMap.defaultScope === oldScope && !componentMap.id.hasVersion()) {\n componentMap.defaultScope = newScope;\n componentMap.id = componentMap.id.changeDefaultScope(newScope);\n changedId.push(componentMap.id);\n }\n });\n if (changedId.length) {\n this.legacyBitMap.markAsChanged();\n }\n return changedId;\n }\n\n markAsChanged() {\n this.legacyBitMap.markAsChanged();\n }\n\n removeComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (currentConfig) {\n delete bitMapEntry.config[aspectId];\n } else {\n if (!markWithMinusIfNotExist) {\n return false; // no changes\n }\n bitMapEntry.config[aspectId] = REMOVE_EXTENSION_SPECIAL_SIGN;\n }\n\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeEntireConfig(id: ComponentID): boolean {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (!bitMapEntry.config) return false;\n delete bitMapEntry.config;\n this.legacyBitMap.markAsChanged();\n return true;\n }\n\n setEntireConfig(id: ComponentID, config: Record<string, any>) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (bitMapEntry.defaultScope) {\n delete bitMapEntry.defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n }\n\n setDefaultScope(id: ComponentID, defaultScope: string) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n bitMapEntry.id = bitMapEntry.id.changeDefaultScope(defaultScope);\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n * optionally pass a reason for the change to be saved in the local scope `bitmap-history-metadata.txt` file.\n */\n async write(reasonForChange?: string) {\n await this.consumer.writeBitMap(reasonForChange);\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n * throws if not found\n * @see this.getBitmapEntryIfExist\n */\n getBitmapEntry(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap {\n return this.legacyBitMap.getComponent(id, { ignoreVersion });\n }\n\n getBitmapEntryIfExist(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap | undefined {\n return this.legacyBitMap.getComponentIfExist(id, { ignoreVersion });\n }\n\n getAspectIdFromConfig(\n componentId: ComponentID,\n aspectId: ComponentID,\n ignoreAspectVersion = false\n ): string | undefined {\n const bitMapEntry = this.getBitmapEntry(componentId);\n const config = bitMapEntry.config;\n if (!config) {\n return undefined;\n }\n if (config[aspectId.toString()]) {\n return aspectId.toString();\n }\n if (!ignoreAspectVersion) {\n return undefined;\n }\n const allVersions = Object.keys(config).filter((id) => id.startsWith(`${aspectId.toStringWithoutVersion()}@`));\n if (allVersions.length > 1) {\n throw new BitError(\n `error: the same aspect ${\n aspectId.toStringWithoutVersion\n } configured multiple times for \"${componentId.toString()}\"\\n${allVersions.join('\\n')}`\n );\n }\n return allVersions.length === 1 ? allVersions[0] : undefined;\n }\n\n /**\n * components that were not tagged yet are safe to rename them from the .bitmap file.\n */\n renameNewComponent(sourceId: ComponentID, targetId: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(sourceId);\n if (bitMapEntry.id.hasVersion()) {\n throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);\n }\n if (sourceId.isEqual(targetId)) {\n throw new Error(`source-id and target-id are equal: \"${sourceId.toString()}\"`);\n }\n if (sourceId.fullName !== targetId.fullName) {\n this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId;\n if (sourceId.scope !== targetId.scope) bitMapEntry.defaultScope = targetId.scope;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n } else if (sourceId.scope !== targetId.scope) {\n this.setDefaultScope(sourceId, targetId.scope);\n }\n }\n\n /**\n * helpful when reaming an aspect and this aspect is used in the config of other components.\n */\n renameAspectInConfig(sourceId: ComponentID, targetId: ComponentID) {\n this.legacyBitMap.components.forEach((componentMap) => {\n const config = componentMap.config;\n if (!config) return;\n Object.keys(config).forEach((aspectId) => {\n if (aspectId === sourceId.toString()) {\n config[targetId.toString()] = config[aspectId];\n delete config[aspectId];\n this.markAsChanged();\n }\n if (aspectId === EnvsAspect.id) {\n const envConfig = config[aspectId];\n if (envConfig !== '-' && envConfig.env === sourceId.toString()) {\n envConfig.env = targetId.toString();\n this.markAsChanged();\n }\n }\n });\n componentMap.config = config;\n });\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id);\n }\n\n /**\n * this is the lane-id of the recently exported lane. in case of a new lane, which was not exported yet, this will be\n * empty.\n */\n getExportedLaneId(): LaneId | undefined {\n return this.legacyBitMap.isLaneExported ? this.legacyBitMap.laneId : undefined;\n }\n\n makeComponentsAvailableOnMain(ids: ComponentID[]) {\n ids.forEach((id) => {\n const componentMap = this.getBitmapEntry(id);\n componentMap.isAvailableOnCurrentLane = true;\n delete componentMap.onLanesOnly;\n });\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n\n takeSnapshot(): ComponentMap[] {\n return this.legacyBitMap.components.map((comp) => comp.clone());\n }\n\n restoreFromSnapshot(componentMaps: ComponentMap[]) {\n this.legacyBitMap.components = componentMaps;\n this.legacyBitMap._invalidateCache();\n }\n\n /**\n * .bitmap file could be changed by other sources (e.g. manually or by \"git pull\") not only by bit.\n * this method returns the timestamp when the .bitmap has changed through bit. (e.g. as part of snap/tag/export/merge\n * process)\n */\n async getLastModifiedBitmapThroughBit(): Promise<number | undefined> {\n const bitmapHistoryDir = this.consumer.getBitmapHistoryDir();\n const stat = await getPathStatIfExist(bitmapHistoryDir);\n if (!stat) return undefined;\n return stat.mtimeMs;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","_legacy","_config","_bitError","_envs","_toolboxFs","BitMap","constructor","legacyBitMap","consumer","mergeBitmaps","bitmapContent","otherBitmapContent","opts","LegacyBitMap","mergeContent","getPath","mapPath","getAllRootDirs","Object","keys","getAllTrackDirs","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","updateDefaultScope","oldScope","newScope","changedId","components","forEach","componentMap","defaultScope","hasVersion","changeDefaultScope","push","length","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","setDefaultScope","setLocalOnly","ids","localOnly","unsetLocalOnly","successfullyUnset","listLocalOnly","allIds","getAllBitIds","filter","write","reasonForChange","writeBitMap","getComponent","getBitmapEntryIfExist","getComponentIfExist","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","startsWith","toStringWithoutVersion","BitError","join","renameNewComponent","sourceId","targetId","fullName","removeComponent","scope","setComponent","renameAspectInConfig","EnvsAspect","envConfig","env","getExportedLaneId","isLaneExported","laneId","makeComponentsAvailableOnMain","isAvailableOnCurrentLane","onLanesOnly","hasChanged","takeSnapshot","map","comp","clone","restoreFromSnapshot","componentMaps","_invalidateCache","getLastModifiedBitmapThroughBit","bitmapHistoryDir","getBitmapHistoryDir","stat","getPathStatIfExist","mtimeMs","exports"],"sources":["bit-map.ts"],"sourcesContent":["import { isEqual, merge } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitMap as LegacyBitMap, ComponentMap, GetBitMapComponentOptions } from '@teambit/legacy.bit-map';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport { EnvsAspect } from '@teambit/envs';\nimport { PathOsBasedAbsolute } from '@teambit/toolbox.path.path';\nimport { getPathStatIfExist } from '@teambit/toolbox.fs.last-modified';\n\nexport type MergeOptions = {\n mergeStrategy?: 'theirs' | 'ours' | 'manual';\n};\n/**\n * consider extracting to a new component.\n * (pro: making Workspace aspect smaller. con: it's an implementation details of the workspace)\n */\nexport class BitMap {\n constructor(private legacyBitMap: LegacyBitMap, private consumer: Consumer) {}\n\n mergeBitmaps(bitmapContent: string, otherBitmapContent: string, opts: MergeOptions = {}): string {\n return LegacyBitMap.mergeContent(bitmapContent, otherBitmapContent, opts);\n }\n\n getPath(): PathOsBasedAbsolute {\n return this.legacyBitMap.mapPath;\n }\n\n getAllRootDirs(): string[] {\n return Object.keys(this.legacyBitMap.getAllTrackDirs());\n }\n\n /**\n * adds component config to the .bitmap file.\n * later, upon `bit tag`, the data is saved in the scope.\n * returns a boolean indicating whether a change has been made.\n */\n addComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeConfig = false\n ): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (isEqual(currentConfig, config)) {\n return false; // no changes\n }\n const getNewConfig = () => {\n if (!config) return null;\n if (!shouldMergeConfig) return config;\n // should merge\n if (!currentConfig) return config;\n if (currentConfig === '-') return config;\n // lodash merge performs a deep merge. (the native concatenation don't)\n return merge(currentConfig, config);\n };\n const newConfig = getNewConfig();\n if (newConfig) {\n bitMapEntry.config[aspectId] = newConfig;\n } else {\n delete bitMapEntry.config[aspectId];\n }\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n updateDefaultScope(oldScope: string, newScope: string) {\n const changedId: ComponentID[] = [];\n this.legacyBitMap.components.forEach((componentMap) => {\n // only new components (not snapped/tagged) can be changed\n if (componentMap.defaultScope === oldScope && !componentMap.id.hasVersion()) {\n componentMap.defaultScope = newScope;\n componentMap.id = componentMap.id.changeDefaultScope(newScope);\n changedId.push(componentMap.id);\n }\n });\n if (changedId.length) {\n this.legacyBitMap.markAsChanged();\n }\n return changedId;\n }\n\n markAsChanged() {\n this.legacyBitMap.markAsChanged();\n }\n\n removeComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (currentConfig) {\n delete bitMapEntry.config[aspectId];\n } else {\n if (!markWithMinusIfNotExist) {\n return false; // no changes\n }\n bitMapEntry.config[aspectId] = REMOVE_EXTENSION_SPECIAL_SIGN;\n }\n\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeEntireConfig(id: ComponentID): boolean {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (!bitMapEntry.config) return false;\n delete bitMapEntry.config;\n this.legacyBitMap.markAsChanged();\n return true;\n }\n\n setEntireConfig(id: ComponentID, config: Record<string, any>) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (bitMapEntry.defaultScope) {\n delete bitMapEntry.defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n }\n\n setDefaultScope(id: ComponentID, defaultScope: string) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n bitMapEntry.id = bitMapEntry.id.changeDefaultScope(defaultScope);\n this.legacyBitMap.markAsChanged();\n }\n\n setLocalOnly(ids: ComponentID[]) {\n ids.forEach((id) => {\n const bitMapEntry = this.getBitmapEntry(id);\n bitMapEntry.localOnly = true;\n });\n this.legacyBitMap.markAsChanged();\n }\n unsetLocalOnly(ids: ComponentID[]): ComponentID[] {\n const successfullyUnset: ComponentID[] = [];\n ids.forEach((id) => {\n const bitMapEntry = this.getBitmapEntry(id);\n if (!bitMapEntry.localOnly) return;\n bitMapEntry.localOnly = false;\n successfullyUnset.push(id);\n });\n this.legacyBitMap.markAsChanged();\n return successfullyUnset;\n }\n listLocalOnly() {\n const allIds = this.legacyBitMap.getAllBitIds();\n return allIds.filter((id) => this.getBitmapEntry(id).localOnly);\n }\n\n /**\n * write .bitmap object to the filesystem\n * optionally pass a reason for the change to be saved in the local scope `bitmap-history-metadata.txt` file.\n */\n async write(reasonForChange?: string) {\n await this.consumer.writeBitMap(reasonForChange);\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n * throws if not found\n * @see this.getBitmapEntryIfExist\n */\n getBitmapEntry(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap {\n return this.legacyBitMap.getComponent(id, { ignoreVersion });\n }\n\n getBitmapEntryIfExist(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap | undefined {\n return this.legacyBitMap.getComponentIfExist(id, { ignoreVersion });\n }\n\n getAspectIdFromConfig(\n componentId: ComponentID,\n aspectId: ComponentID,\n ignoreAspectVersion = false\n ): string | undefined {\n const bitMapEntry = this.getBitmapEntry(componentId);\n const config = bitMapEntry.config;\n if (!config) {\n return undefined;\n }\n if (config[aspectId.toString()]) {\n return aspectId.toString();\n }\n if (!ignoreAspectVersion) {\n return undefined;\n }\n const allVersions = Object.keys(config).filter((id) => id.startsWith(`${aspectId.toStringWithoutVersion()}@`));\n if (allVersions.length > 1) {\n throw new BitError(\n `error: the same aspect ${\n aspectId.toStringWithoutVersion\n } configured multiple times for \"${componentId.toString()}\"\\n${allVersions.join('\\n')}`\n );\n }\n return allVersions.length === 1 ? allVersions[0] : undefined;\n }\n\n /**\n * components that were not tagged yet are safe to rename them from the .bitmap file.\n */\n renameNewComponent(sourceId: ComponentID, targetId: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(sourceId);\n if (bitMapEntry.id.hasVersion()) {\n throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);\n }\n if (sourceId.isEqual(targetId)) {\n throw new Error(`source-id and target-id are equal: \"${sourceId.toString()}\"`);\n }\n if (sourceId.fullName !== targetId.fullName) {\n this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId;\n if (sourceId.scope !== targetId.scope) bitMapEntry.defaultScope = targetId.scope;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n } else if (sourceId.scope !== targetId.scope) {\n this.setDefaultScope(sourceId, targetId.scope);\n }\n }\n\n /**\n * helpful when reaming an aspect and this aspect is used in the config of other components.\n */\n renameAspectInConfig(sourceId: ComponentID, targetId: ComponentID) {\n this.legacyBitMap.components.forEach((componentMap) => {\n const config = componentMap.config;\n if (!config) return;\n Object.keys(config).forEach((aspectId) => {\n if (aspectId === sourceId.toString()) {\n config[targetId.toString()] = config[aspectId];\n delete config[aspectId];\n this.markAsChanged();\n }\n if (aspectId === EnvsAspect.id) {\n const envConfig = config[aspectId];\n if (envConfig !== '-' && envConfig.env === sourceId.toString()) {\n envConfig.env = targetId.toString();\n this.markAsChanged();\n }\n }\n });\n componentMap.config = config;\n });\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id);\n }\n\n /**\n * this is the lane-id of the recently exported lane. in case of a new lane, which was not exported yet, this will be\n * empty.\n */\n getExportedLaneId(): LaneId | undefined {\n return this.legacyBitMap.isLaneExported ? this.legacyBitMap.laneId : undefined;\n }\n\n makeComponentsAvailableOnMain(ids: ComponentID[]) {\n ids.forEach((id) => {\n const componentMap = this.getBitmapEntry(id);\n componentMap.isAvailableOnCurrentLane = true;\n delete componentMap.onLanesOnly;\n });\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n\n takeSnapshot(): ComponentMap[] {\n return this.legacyBitMap.components.map((comp) => comp.clone());\n }\n\n restoreFromSnapshot(componentMaps: ComponentMap[]) {\n this.legacyBitMap.components = componentMaps;\n this.legacyBitMap._invalidateCache();\n }\n\n /**\n * .bitmap file could be changed by other sources (e.g. manually or by \"git pull\") not only by bit.\n * this method returns the timestamp when the .bitmap has changed through bit. (e.g. as part of snap/tag/export/merge\n * process)\n */\n async getLastModifiedBitmapThroughBit(): Promise<number | undefined> {\n const bitmapHistoryDir = this.consumer.getBitmapHistoryDir();\n const stat = await getPathStatIfExist(bitmapHistoryDir);\n if (!stat) return undefined;\n return stat.mtimeMs;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
+
import { Workspace } from '../workspace';
|
|
3
|
+
export declare class LocalOnlySetCmd implements Command {
|
|
4
|
+
private workspace;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
arguments: {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
}[];
|
|
11
|
+
alias: string;
|
|
12
|
+
options: CommandOptions;
|
|
13
|
+
constructor(workspace: Workspace);
|
|
14
|
+
report([pattern]: [string]): Promise<string>;
|
|
15
|
+
}
|
|
16
|
+
export declare class LocalOnlyUnsetCmd implements Command {
|
|
17
|
+
private workspace;
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
arguments: {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
}[];
|
|
24
|
+
alias: string;
|
|
25
|
+
options: CommandOptions;
|
|
26
|
+
constructor(workspace: Workspace);
|
|
27
|
+
report([pattern]: [string]): Promise<string>;
|
|
28
|
+
}
|
|
29
|
+
export declare class LocalOnlyListCmd implements Command {
|
|
30
|
+
private workspace;
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
alias: string;
|
|
34
|
+
options: CommandOptions;
|
|
35
|
+
constructor(workspace: Workspace);
|
|
36
|
+
report(): Promise<string>;
|
|
37
|
+
}
|
|
38
|
+
export declare class LocalOnlyCmd implements Command {
|
|
39
|
+
name: string;
|
|
40
|
+
description: string;
|
|
41
|
+
group: string;
|
|
42
|
+
alias: string;
|
|
43
|
+
commands: Command[];
|
|
44
|
+
options: CommandOptions;
|
|
45
|
+
report([unrecognizedSubcommand]: [string]): Promise<string>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LocalOnlyUnsetCmd = exports.LocalOnlySetCmd = exports.LocalOnlyListCmd = exports.LocalOnlyCmd = void 0;
|
|
7
|
+
function _chalk() {
|
|
8
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
9
|
+
_chalk = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _constants() {
|
|
15
|
+
const data = require("@teambit/legacy/dist/constants");
|
|
16
|
+
_constants = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
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; }
|
|
23
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
|
+
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); } /* eslint max-classes-per-file: 0 */
|
|
25
|
+
class LocalOnlySetCmd {
|
|
26
|
+
constructor(workspace) {
|
|
27
|
+
this.workspace = workspace;
|
|
28
|
+
_defineProperty(this, "name", 'set <component-pattern>');
|
|
29
|
+
_defineProperty(this, "description", 'set a component as local-only');
|
|
30
|
+
_defineProperty(this, "arguments", [{
|
|
31
|
+
name: 'component-pattern',
|
|
32
|
+
description: _constants().COMPONENT_PATTERN_HELP
|
|
33
|
+
}]);
|
|
34
|
+
_defineProperty(this, "alias", '');
|
|
35
|
+
_defineProperty(this, "options", []);
|
|
36
|
+
}
|
|
37
|
+
async report([pattern]) {
|
|
38
|
+
const ids = await this.workspace.idsByPattern(pattern);
|
|
39
|
+
await this.workspace.setLocalOnly(ids);
|
|
40
|
+
const title = _chalk().default.bold(`successfully set the following components as local-only`);
|
|
41
|
+
return `${title}:\n${ids.map(id => id.toString()).join('\n')}`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.LocalOnlySetCmd = LocalOnlySetCmd;
|
|
45
|
+
class LocalOnlyUnsetCmd {
|
|
46
|
+
constructor(workspace) {
|
|
47
|
+
this.workspace = workspace;
|
|
48
|
+
_defineProperty(this, "name", 'unset <component-pattern>');
|
|
49
|
+
_defineProperty(this, "description", 'remove a component from local-only');
|
|
50
|
+
_defineProperty(this, "arguments", [{
|
|
51
|
+
name: 'component-pattern',
|
|
52
|
+
description: _constants().COMPONENT_PATTERN_HELP
|
|
53
|
+
}]);
|
|
54
|
+
_defineProperty(this, "alias", '');
|
|
55
|
+
_defineProperty(this, "options", []);
|
|
56
|
+
}
|
|
57
|
+
async report([pattern]) {
|
|
58
|
+
const ids = await this.workspace.idsByPattern(pattern);
|
|
59
|
+
const successfullyUnset = await this.workspace.unsetLocalOnly(ids);
|
|
60
|
+
if (successfullyUnset.length === 0) {
|
|
61
|
+
return _chalk().default.yellow('no local-only components were found');
|
|
62
|
+
}
|
|
63
|
+
const title = _chalk().default.bold(`successfully unset the following component(s)`);
|
|
64
|
+
return `${title}:\n${successfullyUnset.map(id => id.toString()).join('\n')}`;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.LocalOnlyUnsetCmd = LocalOnlyUnsetCmd;
|
|
68
|
+
class LocalOnlyListCmd {
|
|
69
|
+
constructor(workspace) {
|
|
70
|
+
this.workspace = workspace;
|
|
71
|
+
_defineProperty(this, "name", 'list');
|
|
72
|
+
_defineProperty(this, "description", 'list all local-only components');
|
|
73
|
+
_defineProperty(this, "alias", '');
|
|
74
|
+
_defineProperty(this, "options", []);
|
|
75
|
+
}
|
|
76
|
+
async report() {
|
|
77
|
+
const ids = this.workspace.listLocalOnly();
|
|
78
|
+
if (ids.length === 0) {
|
|
79
|
+
return _chalk().default.yellow('no local-only components were found');
|
|
80
|
+
}
|
|
81
|
+
const title = _chalk().default.bold(`the following component(s) are local-only`);
|
|
82
|
+
return `${title}:\n${ids.map(id => id.toString()).join('\n')}`;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.LocalOnlyListCmd = LocalOnlyListCmd;
|
|
86
|
+
class LocalOnlyCmd {
|
|
87
|
+
constructor() {
|
|
88
|
+
_defineProperty(this, "name", 'local-only <sub-command>');
|
|
89
|
+
_defineProperty(this, "description", 'manage local-only components, which reside only in the workspace and are not snapped/tagged');
|
|
90
|
+
_defineProperty(this, "group", 'development');
|
|
91
|
+
_defineProperty(this, "alias", '');
|
|
92
|
+
_defineProperty(this, "commands", []);
|
|
93
|
+
_defineProperty(this, "options", []);
|
|
94
|
+
}
|
|
95
|
+
async report([unrecognizedSubcommand]) {
|
|
96
|
+
return _chalk().default.red(`"${unrecognizedSubcommand}" is not a subcommand of "local-only", please run "bit local-only --help" to list the subcommands`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.LocalOnlyCmd = LocalOnlyCmd;
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=local-only-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_constants","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LocalOnlySetCmd","constructor","workspace","name","description","COMPONENT_PATTERN_HELP","report","pattern","ids","idsByPattern","setLocalOnly","title","chalk","bold","map","id","toString","join","exports","LocalOnlyUnsetCmd","successfullyUnset","unsetLocalOnly","length","yellow","LocalOnlyListCmd","listLocalOnly","LocalOnlyCmd","unrecognizedSubcommand","red"],"sources":["local-only-cmd.ts"],"sourcesContent":["/* eslint max-classes-per-file: 0 */\nimport chalk from 'chalk';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { Workspace } from '../workspace';\n\nexport class LocalOnlySetCmd implements Command {\n name = 'set <component-pattern>';\n description = 'set a component as local-only';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report([pattern]: [string]) {\n const ids = await this.workspace.idsByPattern(pattern);\n await this.workspace.setLocalOnly(ids);\n const title = chalk.bold(`successfully set the following components as local-only`);\n return `${title}:\\n${ids.map((id) => id.toString()).join('\\n')}`;\n }\n}\n\nexport class LocalOnlyUnsetCmd implements Command {\n name = 'unset <component-pattern>';\n description = 'remove a component from local-only';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report([pattern]: [string]) {\n const ids = await this.workspace.idsByPattern(pattern);\n const successfullyUnset = await this.workspace.unsetLocalOnly(ids);\n if (successfullyUnset.length === 0) {\n return chalk.yellow('no local-only components were found');\n }\n const title = chalk.bold(`successfully unset the following component(s)`);\n return `${title}:\\n${successfullyUnset.map((id) => id.toString()).join('\\n')}`;\n }\n}\n\nexport class LocalOnlyListCmd implements Command {\n name = 'list';\n description = 'list all local-only components';\n alias = '';\n options = [] as CommandOptions;\n\n constructor(private workspace: Workspace) {}\n\n async report() {\n const ids = this.workspace.listLocalOnly();\n if (ids.length === 0) {\n return chalk.yellow('no local-only components were found');\n }\n const title = chalk.bold(`the following component(s) are local-only`);\n return `${title}:\\n${ids.map((id) => id.toString()).join('\\n')}`;\n }\n}\n\nexport class LocalOnlyCmd implements Command {\n name = 'local-only <sub-command>';\n description = 'manage local-only components, which reside only in the workspace and are not snapped/tagged';\n group = 'development';\n alias = '';\n commands: Command[] = [];\n options = [] as CommandOptions;\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"local-only\", please run \"bit local-only --help\" to list the subcommands`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/filter.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentID, ComponentIdList } from '@teambit/component-id';
|
|
2
2
|
import { Workspace } from './workspace';
|
|
3
|
-
export declare const statesFilter: readonly ["new", "modified", "deprecated", "deleted", "snappedOnMain", "softTagged", "codeModified"];
|
|
4
|
-
export type StatesFilter = typeof statesFilter[number];
|
|
3
|
+
export declare const statesFilter: readonly ["new", "modified", "deprecated", "deleted", "snappedOnMain", "softTagged", "codeModified", "localOnly"];
|
|
4
|
+
export type StatesFilter = (typeof statesFilter)[number];
|
|
5
5
|
export declare class Filter {
|
|
6
6
|
private workspace;
|
|
7
7
|
constructor(workspace: Workspace);
|
|
@@ -11,6 +11,7 @@ export declare class Filter {
|
|
|
11
11
|
byEnv(env: string, withinIds?: ComponentID[]): Promise<ComponentID[]>;
|
|
12
12
|
byModified(withinIds?: ComponentID[]): Promise<ComponentID[]>;
|
|
13
13
|
byCodeModified(withinIds?: ComponentID[]): Promise<ComponentID[]>;
|
|
14
|
+
byLocalOnly(withinIds?: ComponentID[]): ComponentID[];
|
|
14
15
|
byNew(withinIds?: ComponentID[]): Promise<ComponentID[]>;
|
|
15
16
|
byDeprecated(withinIds?: ComponentID[]): Promise<ComponentID[]>;
|
|
16
17
|
byDeleted(withinIds?: ComponentID[]): Promise<ComponentID[]>;
|
package/dist/filter.js
CHANGED
|
@@ -26,7 +26,7 @@ function _lodash() {
|
|
|
26
26
|
return data;
|
|
27
27
|
}
|
|
28
28
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
-
const statesFilter = exports.statesFilter = ['new', 'modified', 'deprecated', 'deleted', 'snappedOnMain', 'softTagged', 'codeModified'];
|
|
29
|
+
const statesFilter = exports.statesFilter = ['new', 'modified', 'deprecated', 'deleted', 'snappedOnMain', 'softTagged', 'codeModified', 'localOnly'];
|
|
30
30
|
class Filter {
|
|
31
31
|
constructor(workspace) {
|
|
32
32
|
this.workspace = workspace;
|
|
@@ -42,7 +42,8 @@ class Filter {
|
|
|
42
42
|
deleted: this.byDeleted,
|
|
43
43
|
snappedOnMain: this.bySnappedOnMain,
|
|
44
44
|
softTagged: this.bySoftTagged,
|
|
45
|
-
codeModified: this.byCodeModified
|
|
45
|
+
codeModified: this.byCodeModified,
|
|
46
|
+
localOnly: this.byLocalOnly
|
|
46
47
|
};
|
|
47
48
|
if (!statePerMethod[state]) {
|
|
48
49
|
throw new Error(`state ${state} is not recognized, possible values: ${statesFilter.join(', ')}`);
|
|
@@ -82,6 +83,12 @@ class Filter {
|
|
|
82
83
|
const modifiedIds = compFiles.filter(c => c.isModified()).map(c => c.id);
|
|
83
84
|
return (0, _lodash().compact)(modifiedIds);
|
|
84
85
|
}
|
|
86
|
+
byLocalOnly(withinIds) {
|
|
87
|
+
const ids = withinIds || this.workspace.listIds();
|
|
88
|
+
return ids.filter(id => this.workspace.bitMap.getBitmapEntry(id, {
|
|
89
|
+
ignoreVersion: true
|
|
90
|
+
}).localOnly);
|
|
91
|
+
}
|
|
85
92
|
async byNew(withinIds) {
|
|
86
93
|
const ids = withinIds || (await this.workspace.listIds());
|
|
87
94
|
return ids.filter(id => !id.hasVersion());
|
package/dist/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentId","data","require","_pMapSeries","_interopRequireDefault","_lodash","e","__esModule","default","statesFilter","exports","Filter","constructor","workspace","by","criteria","ids","includes","byMultiParamState","byState","state","statePerMethod","new","byNew","modified","byModified","deprecated","byDeprecated","deleted","byDeleted","snappedOnMain","bySnappedOnMain","softTagged","bySoftTagged","codeModified","byCodeModified","Error","join","bind","stateSplit","split","length","stateName","stateParams","byEnv","env","withinIds","listIds","comps","getMany","compsUsingEnv","filter","c","envId","envs","getEnvId","envIdWithoutVer","ComponentID","getStringWithoutVersion","map","id","modifiedIds","Promise","all","comp","isModified","undefined","compact","compFiles","pMapSeries","getFilesModification","hasVersion","results","modelComponent","consumer","scope","getModelComponentIfExist","isDeprecated","objects","deletedIds","isDeleted","byDuringMergeState","unmergedComponents","legacyScope","getComponents","ComponentIdList","fromArray","u","fromObject","isOnMain","compIds","componentsFromModel","getModelComps","compsDuringMerge","hasWithoutVersion","toComponentId","isHeadSnap","toComponentIdWithHead","withCompIds","bitMap","components","nextVersion","getBitObjectModelComponent"],"sources":["filter.ts"],"sourcesContent":["import { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport pMapSeries from 'p-map-series';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { compact } from 'lodash';\nimport { Workspace } from './workspace';\n\nexport const statesFilter = [\n 'new',\n 'modified',\n 'deprecated',\n 'deleted',\n 'snappedOnMain',\n 'softTagged',\n 'codeModified',\n] as const;\nexport type StatesFilter = typeof statesFilter[number];\n\nexport class Filter {\n constructor(private workspace: Workspace) {}\n\n async by(criteria: StatesFilter | string, ids: ComponentID[]): Promise<ComponentID[]> {\n return criteria.includes(':') ? this.byMultiParamState(criteria, ids) : this.byState(criteria as StatesFilter, ids);\n }\n\n async byState(state: StatesFilter, ids: ComponentID[]): Promise<ComponentID[]> {\n const statePerMethod = {\n new: this.byNew,\n modified: this.byModified,\n deprecated: this.byDeprecated,\n deleted: this.byDeleted,\n snappedOnMain: this.bySnappedOnMain,\n softTagged: this.bySoftTagged,\n codeModified: this.byCodeModified,\n };\n if (!statePerMethod[state]) {\n throw new Error(`state ${state} is not recognized, possible values: ${statesFilter.join(', ')}`);\n }\n return statePerMethod[state].bind(this)(ids);\n }\n\n async byMultiParamState(state: string, ids: ComponentID[]): Promise<ComponentID[]> {\n const stateSplit = state.split(':');\n if (stateSplit.length < 2) {\n throw new Error(`byMultiParamState expect the state to have at least one param after the colon, got ${state}`);\n }\n const [stateName, ...stateParams] = stateSplit;\n if (stateName === 'env') {\n return this.byEnv(stateParams[0], ids);\n }\n throw new Error(`byMultiParamState expect the state to be one of the following: ['env'], got ${stateName}`);\n }\n\n async byEnv(env: string, withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const compsUsingEnv = comps.filter((c) => {\n const envId = this.workspace.envs.getEnvId(c);\n const envIdWithoutVer = ComponentID.getStringWithoutVersion(envId);\n return envIdWithoutVer === env;\n });\n return compsUsingEnv.map((c) => c.id);\n }\n\n async byModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const modifiedIds = await Promise.all(comps.map(async (comp) => ((await comp.isModified()) ? comp.id : undefined)));\n return compact(modifiedIds);\n }\n\n async byCodeModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const compFiles = await pMapSeries(ids, (id) => this.workspace.getFilesModification(id));\n const modifiedIds = compFiles.filter((c) => c.isModified()).map((c) => c.id);\n return compact(modifiedIds);\n }\n\n async byNew(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n return ids.filter((id) => !id.hasVersion());\n }\n\n async byDeprecated(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const results = await Promise.all(\n comps.map(async (c) => {\n const modelComponent = await this.workspace.consumer.scope.getModelComponentIfExist(c.id);\n const deprecated = await modelComponent?.isDeprecated(this.workspace.consumer.scope.objects);\n return deprecated ? c.id : null;\n })\n );\n return compact(results);\n }\n\n async byDeleted(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const deletedIds = comps.filter((c) => c.isDeleted()).map((c) => c.id);\n return compact(deletedIds);\n }\n\n byDuringMergeState(): ComponentIdList {\n const unmergedComponents = this.workspace.scope.legacyScope.objects.unmergedComponents.getComponents();\n return ComponentIdList.fromArray(unmergedComponents.map((u) => ComponentID.fromObject(u.id)));\n }\n\n /**\n * list components that their head is a snap, not a tag.\n * this is relevant only when the lane is the default (main), otherwise, the head is always a snap.\n * components that are during-merge are filtered out, we don't want them during tag and don't want\n * to show them in the \"snapped\" section in bit-status.\n */\n async bySnappedOnMain(withinIds?: ComponentID[]) {\n if (!this.workspace.isOnMain()) {\n return [];\n }\n const ids = withinIds || (await this.workspace.listIds());\n const compIds = ComponentIdList.fromArray(ids);\n const componentsFromModel = await this.getModelComps(ids);\n const compsDuringMerge = this.byDuringMergeState();\n const comps = componentsFromModel\n .filter((c) => compIds.hasWithoutVersion(c.toComponentId()))\n .filter((c) => !compsDuringMerge.hasWithoutVersion(c.toComponentId()))\n .filter((c) => c.isHeadSnap());\n return comps.map((c) => c.toComponentIdWithHead());\n }\n\n bySoftTagged(withinIds?: ComponentID[]): ComponentID[] {\n const withCompIds = ComponentIdList.fromArray(withinIds || []);\n const all = this.workspace.consumer.bitMap.components.filter((c) => c.nextVersion).map((c) => c.id);\n return withinIds ? all.filter((id) => withCompIds.hasWithoutVersion(id)) : all;\n }\n\n private async getModelComps(ids: ComponentID[]): Promise<ModelComponent[]> {\n const comps = await Promise.all(ids.map((id) => this.workspace.scope.getBitObjectModelComponent(id, false)));\n return compact(comps);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_componentId","data","require","_pMapSeries","_interopRequireDefault","_lodash","e","__esModule","default","statesFilter","exports","Filter","constructor","workspace","by","criteria","ids","includes","byMultiParamState","byState","state","statePerMethod","new","byNew","modified","byModified","deprecated","byDeprecated","deleted","byDeleted","snappedOnMain","bySnappedOnMain","softTagged","bySoftTagged","codeModified","byCodeModified","localOnly","byLocalOnly","Error","join","bind","stateSplit","split","length","stateName","stateParams","byEnv","env","withinIds","listIds","comps","getMany","compsUsingEnv","filter","c","envId","envs","getEnvId","envIdWithoutVer","ComponentID","getStringWithoutVersion","map","id","modifiedIds","Promise","all","comp","isModified","undefined","compact","compFiles","pMapSeries","getFilesModification","bitMap","getBitmapEntry","ignoreVersion","hasVersion","results","modelComponent","consumer","scope","getModelComponentIfExist","isDeprecated","objects","deletedIds","isDeleted","byDuringMergeState","unmergedComponents","legacyScope","getComponents","ComponentIdList","fromArray","u","fromObject","isOnMain","compIds","componentsFromModel","getModelComps","compsDuringMerge","hasWithoutVersion","toComponentId","isHeadSnap","toComponentIdWithHead","withCompIds","components","nextVersion","getBitObjectModelComponent"],"sources":["filter.ts"],"sourcesContent":["import { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport pMapSeries from 'p-map-series';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { compact } from 'lodash';\nimport { Workspace } from './workspace';\n\nexport const statesFilter = [\n 'new',\n 'modified',\n 'deprecated',\n 'deleted',\n 'snappedOnMain',\n 'softTagged',\n 'codeModified',\n 'localOnly',\n] as const;\nexport type StatesFilter = (typeof statesFilter)[number];\n\nexport class Filter {\n constructor(private workspace: Workspace) {}\n\n async by(criteria: StatesFilter | string, ids: ComponentID[]): Promise<ComponentID[]> {\n return criteria.includes(':') ? this.byMultiParamState(criteria, ids) : this.byState(criteria as StatesFilter, ids);\n }\n\n async byState(state: StatesFilter, ids: ComponentID[]): Promise<ComponentID[]> {\n const statePerMethod = {\n new: this.byNew,\n modified: this.byModified,\n deprecated: this.byDeprecated,\n deleted: this.byDeleted,\n snappedOnMain: this.bySnappedOnMain,\n softTagged: this.bySoftTagged,\n codeModified: this.byCodeModified,\n localOnly: this.byLocalOnly,\n };\n if (!statePerMethod[state]) {\n throw new Error(`state ${state} is not recognized, possible values: ${statesFilter.join(', ')}`);\n }\n return statePerMethod[state].bind(this)(ids);\n }\n\n async byMultiParamState(state: string, ids: ComponentID[]): Promise<ComponentID[]> {\n const stateSplit = state.split(':');\n if (stateSplit.length < 2) {\n throw new Error(`byMultiParamState expect the state to have at least one param after the colon, got ${state}`);\n }\n const [stateName, ...stateParams] = stateSplit;\n if (stateName === 'env') {\n return this.byEnv(stateParams[0], ids);\n }\n throw new Error(`byMultiParamState expect the state to be one of the following: ['env'], got ${stateName}`);\n }\n\n async byEnv(env: string, withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const compsUsingEnv = comps.filter((c) => {\n const envId = this.workspace.envs.getEnvId(c);\n const envIdWithoutVer = ComponentID.getStringWithoutVersion(envId);\n return envIdWithoutVer === env;\n });\n return compsUsingEnv.map((c) => c.id);\n }\n\n async byModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const modifiedIds = await Promise.all(comps.map(async (comp) => ((await comp.isModified()) ? comp.id : undefined)));\n return compact(modifiedIds);\n }\n\n async byCodeModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const compFiles = await pMapSeries(ids, (id) => this.workspace.getFilesModification(id));\n const modifiedIds = compFiles.filter((c) => c.isModified()).map((c) => c.id);\n return compact(modifiedIds);\n }\n\n byLocalOnly(withinIds?: ComponentID[]): ComponentID[] {\n const ids = withinIds || this.workspace.listIds();\n return ids.filter((id) => this.workspace.bitMap.getBitmapEntry(id, { ignoreVersion: true }).localOnly);\n }\n\n async byNew(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n return ids.filter((id) => !id.hasVersion());\n }\n\n async byDeprecated(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const results = await Promise.all(\n comps.map(async (c) => {\n const modelComponent = await this.workspace.consumer.scope.getModelComponentIfExist(c.id);\n const deprecated = await modelComponent?.isDeprecated(this.workspace.consumer.scope.objects);\n return deprecated ? c.id : null;\n })\n );\n return compact(results);\n }\n\n async byDeleted(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const deletedIds = comps.filter((c) => c.isDeleted()).map((c) => c.id);\n return compact(deletedIds);\n }\n\n byDuringMergeState(): ComponentIdList {\n const unmergedComponents = this.workspace.scope.legacyScope.objects.unmergedComponents.getComponents();\n return ComponentIdList.fromArray(unmergedComponents.map((u) => ComponentID.fromObject(u.id)));\n }\n\n /**\n * list components that their head is a snap, not a tag.\n * this is relevant only when the lane is the default (main), otherwise, the head is always a snap.\n * components that are during-merge are filtered out, we don't want them during tag and don't want\n * to show them in the \"snapped\" section in bit-status.\n */\n async bySnappedOnMain(withinIds?: ComponentID[]) {\n if (!this.workspace.isOnMain()) {\n return [];\n }\n const ids = withinIds || (await this.workspace.listIds());\n const compIds = ComponentIdList.fromArray(ids);\n const componentsFromModel = await this.getModelComps(ids);\n const compsDuringMerge = this.byDuringMergeState();\n const comps = componentsFromModel\n .filter((c) => compIds.hasWithoutVersion(c.toComponentId()))\n .filter((c) => !compsDuringMerge.hasWithoutVersion(c.toComponentId()))\n .filter((c) => c.isHeadSnap());\n return comps.map((c) => c.toComponentIdWithHead());\n }\n\n bySoftTagged(withinIds?: ComponentID[]): ComponentID[] {\n const withCompIds = ComponentIdList.fromArray(withinIds || []);\n const all = this.workspace.consumer.bitMap.components.filter((c) => c.nextVersion).map((c) => c.id);\n return withinIds ? all.filter((id) => withCompIds.hasWithoutVersion(id)) : all;\n }\n\n private async getModelComps(ids: ComponentID[]): Promise<ModelComponent[]> {\n const comps = await Promise.all(ids.map((id) => this.workspace.scope.getBitObjectModelComponent(id, false)));\n return compact(comps);\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.workspace_workspace@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.347/dist/workspace.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.347/dist/workspace.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -11,6 +11,7 @@ export declare function useWorkspace(options?: UseWorkspaceOptions): {
|
|
|
11
11
|
observable: import("@apollo/client").ObservableQuery<any, import("@apollo/client").OperationVariables>;
|
|
12
12
|
previousData?: any;
|
|
13
13
|
error?: import("@apollo/client").ApolloError;
|
|
14
|
+
errors?: ReadonlyArray<import("graphql").GraphQLFormattedError>;
|
|
14
15
|
loading: boolean;
|
|
15
16
|
networkStatus: import("@apollo/client").NetworkStatus;
|
|
16
17
|
called: boolean;
|
package/dist/workspace.d.ts
CHANGED
|
@@ -223,6 +223,7 @@ export declare class Workspace implements ComponentFactory {
|
|
|
223
223
|
listInvalid(): Promise<InvalidComponent[]>;
|
|
224
224
|
/**
|
|
225
225
|
* get ids of all workspace components.
|
|
226
|
+
* deleted components are filtered out. (use this.listIdsIncludeRemoved() if you need them)
|
|
226
227
|
*/
|
|
227
228
|
listIds(): ComponentIdList;
|
|
228
229
|
listIdsIncludeRemoved(): ComponentIdList;
|
|
@@ -553,5 +554,8 @@ export declare class Workspace implements ComponentFactory {
|
|
|
553
554
|
getAutoDetectConfigMerge(id: ComponentID): import("@teambit/legacy/dist/consumer/config/component-overrides").DependenciesOverridesData | undefined;
|
|
554
555
|
getManyComponentsStatuses(ids: ComponentID[]): Promise<ComponentStatusResult[]>;
|
|
555
556
|
getComponentStatusById(id: ComponentID): Promise<ComponentStatusLegacy>;
|
|
557
|
+
setLocalOnly(ids: ComponentID[]): Promise<void>;
|
|
558
|
+
unsetLocalOnly(ids: ComponentID[]): Promise<ComponentID[]>;
|
|
559
|
+
listLocalOnly(): ComponentIdList;
|
|
556
560
|
}
|
|
557
561
|
export default Workspace;
|
package/dist/workspace.js
CHANGED
|
@@ -547,6 +547,7 @@ class Workspace {
|
|
|
547
547
|
|
|
548
548
|
/**
|
|
549
549
|
* get ids of all workspace components.
|
|
550
|
+
* deleted components are filtered out. (use this.listIdsIncludeRemoved() if you need them)
|
|
550
551
|
*/
|
|
551
552
|
listIds() {
|
|
552
553
|
return this.consumer.bitmapIdsFromCurrentLane;
|
|
@@ -651,7 +652,7 @@ class Workspace {
|
|
|
651
652
|
*/
|
|
652
653
|
async listPotentialTagIds() {
|
|
653
654
|
const deletedIds = await this.locallyDeletedIds();
|
|
654
|
-
const allIdsWithoutDeleted =
|
|
655
|
+
const allIdsWithoutDeleted = this.listIds();
|
|
655
656
|
return [...deletedIds, ...allIdsWithoutDeleted];
|
|
656
657
|
}
|
|
657
658
|
async getNewAndModifiedIds() {
|
|
@@ -2092,6 +2093,18 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
|
|
|
2092
2093
|
async getComponentStatusById(id) {
|
|
2093
2094
|
return this.componentStatusLoader.getComponentStatusById(id);
|
|
2094
2095
|
}
|
|
2096
|
+
async setLocalOnly(ids) {
|
|
2097
|
+
this.bitMap.setLocalOnly(ids);
|
|
2098
|
+
await this.bitMap.write('setLocalOnly');
|
|
2099
|
+
}
|
|
2100
|
+
async unsetLocalOnly(ids) {
|
|
2101
|
+
const successfullyUnset = this.bitMap.unsetLocalOnly(ids);
|
|
2102
|
+
await this.bitMap.write('unsetLocalOnly');
|
|
2103
|
+
return successfullyUnset;
|
|
2104
|
+
}
|
|
2105
|
+
listLocalOnly() {
|
|
2106
|
+
return _componentId().ComponentIdList.fromArray(this.bitMap.listLocalOnly());
|
|
2107
|
+
}
|
|
2095
2108
|
}
|
|
2096
2109
|
|
|
2097
2110
|
/**
|