@teambit/tracker 0.0.0-13b071fa75182bc0a7c6a9bcfbab3c04a1823ba1
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/add-cmd.d.ts +34 -0
- package/dist/add-cmd.js +110 -0
- package/dist/add-cmd.js.map +1 -0
- package/dist/add-components.d.ts +143 -0
- package/dist/add-components.js +850 -0
- package/dist/add-components.js.map +1 -0
- package/dist/determine-main-file.d.ts +4 -0
- package/dist/determine-main-file.js +141 -0
- package/dist/determine-main-file.js.map +1 -0
- package/dist/esm.mjs +7 -0
- package/dist/exceptions/adding-individual-files.d.ts +5 -0
- package/dist/exceptions/adding-individual-files.js +26 -0
- package/dist/exceptions/adding-individual-files.js.map +1 -0
- package/dist/exceptions/duplicate-ids.d.ts +5 -0
- package/dist/exceptions/duplicate-ids.js +49 -0
- package/dist/exceptions/duplicate-ids.js.map +1 -0
- package/dist/exceptions/empty-directory.d.ts +4 -0
- package/dist/exceptions/empty-directory.js +29 -0
- package/dist/exceptions/empty-directory.js.map +1 -0
- package/dist/exceptions/excluded-main-file.d.ts +5 -0
- package/dist/exceptions/excluded-main-file.js +34 -0
- package/dist/exceptions/excluded-main-file.js.map +1 -0
- package/dist/exceptions/index.d.ts +10 -0
- package/dist/exceptions/index.js +125 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/exceptions/main-file-is-dir.d.ts +5 -0
- package/dist/exceptions/main-file-is-dir.js +34 -0
- package/dist/exceptions/main-file-is-dir.js.map +1 -0
- package/dist/exceptions/missing-main-file-multiple-components.d.ts +5 -0
- package/dist/exceptions/missing-main-file-multiple-components.js +41 -0
- package/dist/exceptions/missing-main-file-multiple-components.js.map +1 -0
- package/dist/exceptions/no-files.d.ts +5 -0
- package/dist/exceptions/no-files.js +34 -0
- package/dist/exceptions/no-files.js.map +1 -0
- package/dist/exceptions/parent-dir-tracked.d.ts +4 -0
- package/dist/exceptions/parent-dir-tracked.js +23 -0
- package/dist/exceptions/parent-dir-tracked.js.map +1 -0
- package/dist/exceptions/path-outside-consumer.d.ts +5 -0
- package/dist/exceptions/path-outside-consumer.js +34 -0
- package/dist/exceptions/path-outside-consumer.js.map +1 -0
- package/dist/exceptions/paths-not-exist.d.ts +6 -0
- package/dist/exceptions/paths-not-exist.js +36 -0
- package/dist/exceptions/paths-not-exist.js.map +1 -0
- package/dist/exceptions/version-should-be-removed.d.ts +5 -0
- package/dist/exceptions/version-should-be-removed.js +34 -0
- package/dist/exceptions/version-should-be-removed.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1752249630271.js +7 -0
- package/dist/tracker.aspect.d.ts +2 -0
- package/dist/tracker.aspect.js +18 -0
- package/dist/tracker.aspect.js.map +1 -0
- package/dist/tracker.main.runtime.d.ts +71 -0
- package/dist/tracker.main.runtime.js +186 -0
- package/dist/tracker.main.runtime.js.map +1 -0
- package/esm.mjs +7 -0
- package/exceptions/adding-individual-files.ts +9 -0
- package/exceptions/duplicate-ids.ts +25 -0
- package/exceptions/empty-directory.ts +8 -0
- package/exceptions/excluded-main-file.ts +10 -0
- package/exceptions/index.ts +21 -0
- package/exceptions/main-file-is-dir.ts +12 -0
- package/exceptions/missing-main-file-multiple-components.ts +16 -0
- package/exceptions/no-files.ts +14 -0
- package/exceptions/parent-dir-tracked.ts +9 -0
- package/exceptions/path-outside-consumer.ts +10 -0
- package/exceptions/paths-not-exist.ts +13 -0
- package/exceptions/version-should-be-removed.ts +10 -0
- package/package.json +73 -0
- package/types/asset.d.ts +41 -0
- package/types/style.d.ts +42 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
+
import { PathLinux } from '@teambit/legacy.utils';
|
|
3
|
+
import { Warnings } from './add-components';
|
|
4
|
+
import { TrackerMain } from './tracker.main.runtime';
|
|
5
|
+
type AddFlags = {
|
|
6
|
+
id: string | null | undefined;
|
|
7
|
+
main: string | null | undefined;
|
|
8
|
+
namespace: string | null | undefined;
|
|
9
|
+
scope?: string;
|
|
10
|
+
env?: string;
|
|
11
|
+
override: boolean;
|
|
12
|
+
};
|
|
13
|
+
type AddResults = {
|
|
14
|
+
addedComponents: Array<{
|
|
15
|
+
id: string;
|
|
16
|
+
files: PathLinux[];
|
|
17
|
+
}>;
|
|
18
|
+
warnings: Warnings;
|
|
19
|
+
};
|
|
20
|
+
export declare class AddCmd implements Command {
|
|
21
|
+
private tracker;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
group: string;
|
|
25
|
+
extendedDescription: string;
|
|
26
|
+
helpUrl: string;
|
|
27
|
+
alias: string;
|
|
28
|
+
options: CommandOptions;
|
|
29
|
+
loader: boolean;
|
|
30
|
+
constructor(tracker: TrackerMain);
|
|
31
|
+
report([paths]: [string[]], addFlags: AddFlags): Promise<string>;
|
|
32
|
+
json([paths]: [string[]], { id, main, namespace, scope, env, override }: AddFlags): Promise<AddResults>;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
package/dist/add-cmd.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AddCmd = void 0;
|
|
7
|
+
function _chalk() {
|
|
8
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
9
|
+
_chalk = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function path() {
|
|
15
|
+
const data = _interopRequireWildcard(require("path"));
|
|
16
|
+
path = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _bitError() {
|
|
22
|
+
const data = require("@teambit/bit-error");
|
|
23
|
+
_bitError = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
29
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
30
|
+
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; }
|
|
31
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
32
|
+
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); }
|
|
33
|
+
class AddCmd {
|
|
34
|
+
constructor(tracker) {
|
|
35
|
+
this.tracker = tracker;
|
|
36
|
+
_defineProperty(this, "name", 'add [path...]');
|
|
37
|
+
_defineProperty(this, "description", 'track one or more directories as new components');
|
|
38
|
+
_defineProperty(this, "group", 'component-development');
|
|
39
|
+
_defineProperty(this, "extendedDescription", 'Learn the recommended workflow for tracking directories as components, in the link below.');
|
|
40
|
+
_defineProperty(this, "helpUrl", 'reference/workspace/component-directory');
|
|
41
|
+
_defineProperty(this, "alias", 'a');
|
|
42
|
+
_defineProperty(this, "options", [['i', 'id <name>', 'manually set component id'], ['m', 'main <file>', 'define component entry point'], ['n', 'namespace <namespace>', 'organize component in a namespace'], ['o', 'override <boolean>', 'override existing component if exists (default = false)'], ['s', 'scope <string>', `sets the component's scope. if not entered, the default-scope from workspace.jsonc will be used`], ['e', 'env <string>', "set the component's environment. (overrides the env from variants if exists)"], ['j', 'json', 'output as json format']]);
|
|
43
|
+
_defineProperty(this, "loader", true);
|
|
44
|
+
}
|
|
45
|
+
async report([paths = []], addFlags) {
|
|
46
|
+
const {
|
|
47
|
+
addedComponents,
|
|
48
|
+
warnings
|
|
49
|
+
} = await this.json([paths], addFlags);
|
|
50
|
+
const paintWarning = () => {
|
|
51
|
+
const alreadyUsedOutput = () => {
|
|
52
|
+
const alreadyUsedWarning = Object.keys(warnings.alreadyUsed).map(key => _chalk().default.yellow(`warning: files ${_chalk().default.bold(warnings.alreadyUsed[key].join(', '))} already used by component: ${key}`)).filter(x => x).join('\n');
|
|
53
|
+
return alreadyUsedWarning ? `${alreadyUsedWarning}\n` : '';
|
|
54
|
+
};
|
|
55
|
+
const emptyDirectoryOutput = () => {
|
|
56
|
+
if (!warnings.emptyDirectory.length) return '';
|
|
57
|
+
return _chalk().default.yellow(`warning: the following directories are empty or all their files were excluded\n${_chalk().default.bold(warnings.emptyDirectory.join('\n'))}\n`);
|
|
58
|
+
};
|
|
59
|
+
return alreadyUsedOutput() + emptyDirectoryOutput();
|
|
60
|
+
};
|
|
61
|
+
if (addedComponents.length > 1) {
|
|
62
|
+
return paintWarning() + _chalk().default.green(`tracking ${addedComponents.length} new components`);
|
|
63
|
+
}
|
|
64
|
+
return paintWarning() + addedComponents.map(result => {
|
|
65
|
+
if (result.files.length === 0) {
|
|
66
|
+
return _chalk().default.underline.red(`could not track component ${_chalk().default.bold(result.id)}: no files to track`);
|
|
67
|
+
}
|
|
68
|
+
const title = _chalk().default.underline(`tracking component ${_chalk().default.bold(result.id)}:\n`);
|
|
69
|
+
const files = result.files.map(file => _chalk().default.green(`added ${file}`));
|
|
70
|
+
return title + files.join('\n');
|
|
71
|
+
}).flat().join('\n\n');
|
|
72
|
+
}
|
|
73
|
+
async json([paths = []], {
|
|
74
|
+
id,
|
|
75
|
+
main,
|
|
76
|
+
namespace,
|
|
77
|
+
scope,
|
|
78
|
+
env,
|
|
79
|
+
override = false
|
|
80
|
+
}) {
|
|
81
|
+
if (namespace && id) {
|
|
82
|
+
throw new (_bitError().BitError)('please use either [id] or [namespace] to add a particular component - they cannot be used together');
|
|
83
|
+
}
|
|
84
|
+
const normalizedPaths = paths.map(p => path().normalize(p));
|
|
85
|
+
const {
|
|
86
|
+
addedComponents,
|
|
87
|
+
warnings
|
|
88
|
+
} = await this.tracker.addForCLI({
|
|
89
|
+
componentPaths: normalizedPaths,
|
|
90
|
+
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
91
|
+
id,
|
|
92
|
+
main: main ? path().normalize(main) : undefined,
|
|
93
|
+
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
94
|
+
namespace,
|
|
95
|
+
defaultScope: scope,
|
|
96
|
+
override,
|
|
97
|
+
env
|
|
98
|
+
});
|
|
99
|
+
return {
|
|
100
|
+
addedComponents: addedComponents.map(added => ({
|
|
101
|
+
id: added.id.toString(),
|
|
102
|
+
files: added.files.map(f => f.relativePath)
|
|
103
|
+
})),
|
|
104
|
+
warnings
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.AddCmd = AddCmd;
|
|
109
|
+
|
|
110
|
+
//# sourceMappingURL=add-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","path","_interopRequireWildcard","_bitError","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","AddCmd","constructor","tracker","report","paths","addFlags","addedComponents","warnings","json","paintWarning","alreadyUsedOutput","alreadyUsedWarning","keys","alreadyUsed","map","key","chalk","yellow","bold","join","filter","x","emptyDirectoryOutput","emptyDirectory","length","green","result","files","underline","red","id","title","file","flat","main","namespace","scope","env","override","BitError","normalizedPaths","p","normalize","addForCLI","componentPaths","undefined","defaultScope","added","toString","relativePath","exports"],"sources":["add-cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport * as path from 'path';\nimport { BitError } from '@teambit/bit-error';\nimport { PathLinux, PathOsBased } from '@teambit/legacy.utils';\nimport { AddActionResults, Warnings } from './add-components';\nimport { TrackerMain } from './tracker.main.runtime';\n\ntype AddFlags = {\n id: string | null | undefined;\n main: string | null | undefined;\n namespace: string | null | undefined;\n scope?: string;\n env?: string;\n override: boolean;\n};\n\ntype AddResults = {\n addedComponents: Array<{ id: string; files: PathLinux[] }>;\n warnings: Warnings;\n};\n\nexport class AddCmd implements Command {\n name = 'add [path...]';\n description = 'track one or more directories as new components';\n group = 'component-development';\n extendedDescription = 'Learn the recommended workflow for tracking directories as components, in the link below.';\n helpUrl = 'reference/workspace/component-directory';\n alias = 'a';\n options = [\n ['i', 'id <name>', 'manually set component id'],\n ['m', 'main <file>', 'define component entry point'],\n ['n', 'namespace <namespace>', 'organize component in a namespace'],\n ['o', 'override <boolean>', 'override existing component if exists (default = false)'],\n [\n 's',\n 'scope <string>',\n `sets the component's scope. if not entered, the default-scope from workspace.jsonc will be used`,\n ],\n ['e', 'env <string>', \"set the component's environment. (overrides the env from variants if exists)\"],\n ['j', 'json', 'output as json format'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private tracker: TrackerMain) {}\n\n async report([paths = []]: [string[]], addFlags: AddFlags) {\n const { addedComponents, warnings }: AddResults = await this.json([paths], addFlags);\n\n const paintWarning = () => {\n const alreadyUsedOutput = () => {\n const alreadyUsedWarning = Object.keys(warnings.alreadyUsed)\n .map((key) =>\n chalk.yellow(\n `warning: files ${chalk.bold(warnings.alreadyUsed[key].join(', '))} already used by component: ${key}`\n )\n )\n .filter((x) => x)\n .join('\\n');\n return alreadyUsedWarning ? `${alreadyUsedWarning}\\n` : '';\n };\n const emptyDirectoryOutput = () => {\n if (!warnings.emptyDirectory.length) return '';\n return chalk.yellow(\n `warning: the following directories are empty or all their files were excluded\\n${chalk.bold(\n warnings.emptyDirectory.join('\\n')\n )}\\n`\n );\n };\n return alreadyUsedOutput() + emptyDirectoryOutput();\n };\n\n if (addedComponents.length > 1) {\n return paintWarning() + chalk.green(`tracking ${addedComponents.length} new components`);\n }\n\n return (\n paintWarning() +\n addedComponents\n .map((result) => {\n if (result.files.length === 0) {\n return chalk.underline.red(`could not track component ${chalk.bold(result.id)}: no files to track`);\n }\n const title = chalk.underline(`tracking component ${chalk.bold(result.id)}:\\n`);\n const files = result.files.map((file) => chalk.green(`added ${file}`));\n return title + files.join('\\n');\n })\n .flat()\n .join('\\n\\n')\n );\n }\n\n async json(\n [paths = []]: [string[]],\n { id, main, namespace, scope, env, override = false }: AddFlags\n ): Promise<AddResults> {\n if (namespace && id) {\n throw new BitError(\n 'please use either [id] or [namespace] to add a particular component - they cannot be used together'\n );\n }\n\n const normalizedPaths: PathOsBased[] = paths.map((p) => path.normalize(p));\n const { addedComponents, warnings }: AddActionResults = await this.tracker.addForCLI({\n componentPaths: normalizedPaths,\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n id,\n main: main ? path.normalize(main) : undefined,\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n namespace,\n defaultScope: scope,\n override,\n env,\n });\n return {\n addedComponents: addedComponents.map((added) => ({\n id: added.id.toString(),\n files: added.files.map((f) => f.relativePath),\n })),\n warnings,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ComponentID } from '@teambit/component-id';
|
|
2
|
+
import { BitMap, ComponentMap, ComponentMapFile, Config } from '@teambit/legacy.bit-map';
|
|
3
|
+
import { Consumer } from '@teambit/legacy.consumer';
|
|
4
|
+
import { PathLinux, PathOsBased } from '@teambit/legacy.utils';
|
|
5
|
+
import { Workspace } from '@teambit/workspace';
|
|
6
|
+
import { ResolvedTrackData } from './tracker.main.runtime';
|
|
7
|
+
export type AddResult = {
|
|
8
|
+
id: ComponentID;
|
|
9
|
+
files: ComponentMapFile[];
|
|
10
|
+
};
|
|
11
|
+
export type Warnings = {
|
|
12
|
+
alreadyUsed: Record<string, any>;
|
|
13
|
+
emptyDirectory: string[];
|
|
14
|
+
existInScope: ComponentID[];
|
|
15
|
+
};
|
|
16
|
+
export type AddActionResults = {
|
|
17
|
+
addedComponents: AddResult[];
|
|
18
|
+
warnings: Warnings;
|
|
19
|
+
};
|
|
20
|
+
export type PathOrDSL = PathOsBased | string;
|
|
21
|
+
type PathsStats = {};
|
|
22
|
+
export type AddedComponent = {
|
|
23
|
+
componentId: ComponentID;
|
|
24
|
+
files: ComponentMapFile[];
|
|
25
|
+
mainFile?: PathOsBased | null | undefined;
|
|
26
|
+
trackDir: PathOsBased;
|
|
27
|
+
idFromPath: {
|
|
28
|
+
name: string;
|
|
29
|
+
namespace: string;
|
|
30
|
+
} | null | undefined;
|
|
31
|
+
immediateDir?: string;
|
|
32
|
+
};
|
|
33
|
+
export type AddProps = {
|
|
34
|
+
componentPaths: PathOsBased[];
|
|
35
|
+
id?: string;
|
|
36
|
+
main?: PathOsBased;
|
|
37
|
+
namespace?: string;
|
|
38
|
+
override: boolean;
|
|
39
|
+
trackDirFeature?: boolean;
|
|
40
|
+
defaultScope?: string;
|
|
41
|
+
config?: Config;
|
|
42
|
+
shouldHandleOutOfSync?: boolean;
|
|
43
|
+
env?: string;
|
|
44
|
+
};
|
|
45
|
+
export type AddContext = {
|
|
46
|
+
workspace: Workspace;
|
|
47
|
+
};
|
|
48
|
+
export default class AddComponents {
|
|
49
|
+
workspace: Workspace;
|
|
50
|
+
consumer: Consumer;
|
|
51
|
+
bitMap: BitMap;
|
|
52
|
+
componentPaths: PathOsBased[];
|
|
53
|
+
id: string | null | undefined;
|
|
54
|
+
main: PathOsBased | null | undefined;
|
|
55
|
+
namespace: string | null | undefined;
|
|
56
|
+
override: boolean;
|
|
57
|
+
trackDirFeature: boolean | null | undefined;
|
|
58
|
+
warnings: Warnings;
|
|
59
|
+
ignoreList: string[];
|
|
60
|
+
gitIgnore: any;
|
|
61
|
+
addedComponents: AddResult[];
|
|
62
|
+
defaultScope?: string;
|
|
63
|
+
config?: Config;
|
|
64
|
+
shouldHandleOutOfSync?: boolean;
|
|
65
|
+
constructor(context: AddContext, addProps: AddProps);
|
|
66
|
+
add(): Promise<AddActionResults>;
|
|
67
|
+
/**
|
|
68
|
+
* @param {string[]} files - array of file-paths from which it should search for the dsl patterns.
|
|
69
|
+
* @param {*} filesWithPotentialDsl - array of file-path which may have DSL patterns
|
|
70
|
+
*
|
|
71
|
+
* @returns array of file-paths from 'files' parameter that match the patterns from 'filesWithPotentialDsl' parameter
|
|
72
|
+
*/
|
|
73
|
+
getFilesAccordingToDsl(files: PathLinux[], filesWithPotentialDsl: PathOrDSL[]): Promise<PathLinux[]>;
|
|
74
|
+
/**
|
|
75
|
+
* for imported component, the package.json in the root directory is a bit-generated file and as
|
|
76
|
+
* such, it should be ignored
|
|
77
|
+
*/
|
|
78
|
+
_isPackageJsonOnRootDir(pathRelativeToConsumerRoot: PathLinux, componentMap: ComponentMap): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* imported components might have wrapDir, when they do, files should not be added outside of
|
|
81
|
+
* that wrapDir
|
|
82
|
+
*/
|
|
83
|
+
_isOutsideOfWrapDir(pathRelativeToConsumerRoot: PathLinux, componentMap: ComponentMap): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Add or update existing (imported and new) component according to bitmap
|
|
86
|
+
* there are 3 options:
|
|
87
|
+
* 1. a user is adding a new component. there is no record for this component in bit.map
|
|
88
|
+
* 2. a user is updating an existing component. there is a record for this component in bit.map
|
|
89
|
+
* 3. some or all the files of this component were previously added as another component-id.
|
|
90
|
+
*/
|
|
91
|
+
addOrUpdateComponentInBitMap(component: AddedComponent): Promise<AddResult | null | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* current componentFiles are relative to the workspace. we want them relative to the rootDir.
|
|
94
|
+
*/
|
|
95
|
+
_updateFilesAccordingToExistingRootDir(foundComponentFromBitMap: ComponentMap, componentFiles: ComponentMapFile[], component: AddedComponent): void;
|
|
96
|
+
/**
|
|
97
|
+
* the risk with merging the currently added files with the existing bitMap files is overriding
|
|
98
|
+
* the `test` property. e.g. the component directory is re-added without adding the tests flag to
|
|
99
|
+
* track new files in that directory. in this case, we want to preserve the `test` property.
|
|
100
|
+
*/
|
|
101
|
+
_mergeFilesWithExistingComponentMapFiles(componentFiles: ComponentMapFile[], existingComponentMapFile: ComponentMapFile[]): ComponentMapFile[];
|
|
102
|
+
/**
|
|
103
|
+
* if an existing file is for example uppercase and the new file is lowercase it has different
|
|
104
|
+
* behavior according to the OS. some OS are case sensitive, some are not.
|
|
105
|
+
* it's safer to avoid saving both files and instead, replacing the old file with the new one.
|
|
106
|
+
* in case a file has replaced and it is also a mainFile, replace the mainFile as well
|
|
107
|
+
*/
|
|
108
|
+
_updateFilesWithCurrentLetterCases(currentComponentMap: ComponentMap, newFiles: ComponentMapFile[]): void;
|
|
109
|
+
/**
|
|
110
|
+
* if the id is already saved in bitmap file, it might have more data (such as scope, version)
|
|
111
|
+
* use that id instead.
|
|
112
|
+
*/
|
|
113
|
+
private _getIdAccordingToExistingComponent;
|
|
114
|
+
_getIdAccordingToTrackDir(dir: PathOsBased): ComponentID | null | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* used for updating main file if exists or doesn't exists
|
|
117
|
+
*/
|
|
118
|
+
_addMainFileToFiles(files: ComponentMapFile[]): PathOsBased | null | undefined;
|
|
119
|
+
_findMainFileInFiles(mainFile: string, files: ComponentMapFile[]): ComponentMapFile | undefined;
|
|
120
|
+
private getDefaultScope;
|
|
121
|
+
/**
|
|
122
|
+
* given the component paths, prepare the id, mainFile and files to be added later on to bitmap
|
|
123
|
+
* the id of the component is either entered by the user or, if not entered, concluded by the path.
|
|
124
|
+
* e.g. bar/foo.js, the id would be bar/foo.
|
|
125
|
+
* in case bitmap has already the same id, the complete id is taken from bitmap (see _getIdAccordingToExistingComponent)
|
|
126
|
+
*/
|
|
127
|
+
addOneComponent(componentPath: PathOsBased): Promise<AddedComponent>;
|
|
128
|
+
getIgnoreList(): Promise<string[]>;
|
|
129
|
+
linkComponents(ids: ComponentID[]): Promise<void>;
|
|
130
|
+
addMultipleComponents(componentPathsStats: PathsStats): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* some uses of wildcards might add directories and their files at the same time, in such cases
|
|
133
|
+
* only the files are needed and the directories can be ignored.
|
|
134
|
+
* @see https://github.com/teambit/bit/issues/1406 for more details
|
|
135
|
+
*/
|
|
136
|
+
_removeDirectoriesWhenTheirFilesAreAdded(componentPathsStats: PathsStats): void;
|
|
137
|
+
_addMultipleToBitMap(added: AddedComponent[]): Promise<void>;
|
|
138
|
+
_removeNamespaceIfNotNeeded(addedComponents: AddedComponent[]): Promise<void>;
|
|
139
|
+
_tryAddingMultiple(componentPathsStats: PathsStats): Promise<AddedComponent[]>;
|
|
140
|
+
_throwForOutsideConsumer(relativeToConsumerPath: PathOsBased): void;
|
|
141
|
+
}
|
|
142
|
+
export declare function addMultipleFromResolvedTrackData(workspace: Workspace, trackData: ResolvedTrackData[]): Promise<ComponentID[]>;
|
|
143
|
+
export {};
|