@teambit/component-writer 1.0.1047 → 1.0.1049
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.
|
@@ -11,6 +11,7 @@ export interface ManyComponentsWriterParams {
|
|
|
11
11
|
components: ConsumerComponent[];
|
|
12
12
|
writeToPath?: string;
|
|
13
13
|
throwForExistingDir?: boolean;
|
|
14
|
+
writeToEmptyDir?: boolean;
|
|
14
15
|
writeConfig?: boolean;
|
|
15
16
|
skipDependencyInstallation?: boolean;
|
|
16
17
|
verbose?: boolean;
|
|
@@ -68,7 +69,28 @@ export declare class ComponentWriterMain {
|
|
|
68
69
|
private fixDirsIfNested;
|
|
69
70
|
private getWriteParamsOfOneComponent;
|
|
70
71
|
private moveComponentsIfNeeded;
|
|
72
|
+
/**
|
|
73
|
+
* true when the directory-conflict check can be skipped: either nothing is written to the filesystem, or the
|
|
74
|
+
* target directory already belongs to this exact component (so overriding it in place is safe).
|
|
75
|
+
*/
|
|
76
|
+
private shouldSkipDirConflictCheck;
|
|
71
77
|
private throwErrorWhenDirectoryNotEmpty;
|
|
78
|
+
/**
|
|
79
|
+
* final `writeToPath` resolution for the `--write-to-empty-dir` import flag, mainly for non-interactive clients
|
|
80
|
+
* (such as the IDE) that can't prompt for `--override`. runs after fixDirsIfEqual()/fixDirsIfNested() - which may
|
|
81
|
+
* still move dirs using string-only collision checks - so the flag's guarantee holds against the final paths:
|
|
82
|
+
* every relocated component lands in a directory that is empty (or non-existent) and unclaimed in .bitmap.
|
|
83
|
+
* when a target is occupied (by foreign files, or a dir/rootDir owned by another component), it's relocated by
|
|
84
|
+
* suffixing "_N" (e.g. "renderers/class" => "renderers/class_1"). a dir already owned by this component is left
|
|
85
|
+
* as-is (its files are overridden, same as the default import behavior).
|
|
86
|
+
*/
|
|
87
|
+
private relocateOccupiedDirs;
|
|
88
|
+
/**
|
|
89
|
+
* returns a human-readable reason why the given directory can't be used for import, or undefined when it's
|
|
90
|
+
* available. a directory is available when it doesn't exist yet, or it's an empty directory that is not already
|
|
91
|
+
* used by another component in the .bitmap file.
|
|
92
|
+
*/
|
|
93
|
+
private getDirUnavailableReason;
|
|
72
94
|
static slots: never[];
|
|
73
95
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
74
96
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
@@ -126,8 +126,6 @@ function _componentWriter2() {
|
|
|
126
126
|
}
|
|
127
127
|
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); }
|
|
128
128
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
129
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
130
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
131
129
|
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; }
|
|
132
130
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
133
131
|
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); }
|
|
@@ -235,6 +233,8 @@ class ComponentWriterMain {
|
|
|
235
233
|
const componentWriterInstances = writeComponentsParams.map(writeParams => new (_componentWriter().default)(writeParams));
|
|
236
234
|
this.fixDirsIfEqual(componentWriterInstances);
|
|
237
235
|
this.fixDirsIfNested(componentWriterInstances);
|
|
236
|
+
// must run after the fixDirs* passes above, which may still move writeToPath onto an occupied dir.
|
|
237
|
+
this.relocateOccupiedDirs(componentWriterInstances, opts);
|
|
238
238
|
// add componentMap entries into .bitmap before starting the process because steps like writing package-json
|
|
239
239
|
// rely on .bitmap to determine whether a dependency exists and what's its origin
|
|
240
240
|
await Promise.all(componentWriterInstances.map(async componentWriter => {
|
|
@@ -324,27 +324,24 @@ class ComponentWriterMain {
|
|
|
324
324
|
}
|
|
325
325
|
getWriteParamsOfOneComponent(component, opts) {
|
|
326
326
|
const componentRootDir = opts.writeToPath ? (0, _legacy().pathNormalizeToLinux)(this.consumer.getPathRelativeToConsumer(path().resolve(opts.writeToPath))) : this.consumer.composeRelativeComponentPath(component.id);
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
existingComponentMap: componentMap
|
|
338
|
-
};
|
|
339
|
-
};
|
|
340
|
-
return _objectSpread({
|
|
327
|
+
// components can't be saved with multiple versions, so we can ignore the version to find the component in bit.map
|
|
328
|
+
const existingComponentMap = this.consumer?.bitMap.getComponentIfExist(component.id, {
|
|
329
|
+
ignoreVersion: true
|
|
330
|
+
});
|
|
331
|
+
// with --write-to-empty-dir, dir-conflict resolution is deferred to relocateOccupiedDirs() so it runs after the
|
|
332
|
+
// fixDirs* passes (which may still adjust writeToPath); otherwise fail here when the target dir is occupied.
|
|
333
|
+
if (this.consumer && !opts.writeToEmptyDir) {
|
|
334
|
+
this.throwErrorWhenDirectoryNotEmpty(componentRootDir, existingComponentMap, opts);
|
|
335
|
+
}
|
|
336
|
+
return {
|
|
341
337
|
workspace: this.workspace,
|
|
342
338
|
bitMap: this.consumer.bitMap,
|
|
343
339
|
component,
|
|
344
340
|
writeToPath: componentRootDir,
|
|
345
341
|
writeConfig: opts.writeConfig,
|
|
346
|
-
skipUpdatingBitMap: opts.skipUpdatingBitMap
|
|
347
|
-
|
|
342
|
+
skipUpdatingBitMap: opts.skipUpdatingBitMap,
|
|
343
|
+
existingComponentMap: existingComponentMap ?? undefined
|
|
344
|
+
};
|
|
348
345
|
}
|
|
349
346
|
moveComponentsIfNeeded(opts) {
|
|
350
347
|
if (opts.writeToPath && this.consumer) {
|
|
@@ -366,13 +363,21 @@ to move all component files to a different directory, run bit remove and then bi
|
|
|
366
363
|
});
|
|
367
364
|
}
|
|
368
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* true when the directory-conflict check can be skipped: either nothing is written to the filesystem, or the
|
|
368
|
+
* target directory already belongs to this exact component (so overriding it in place is safe).
|
|
369
|
+
*/
|
|
370
|
+
shouldSkipDirConflictCheck(componentDirRelative, componentMap, opts) {
|
|
371
|
+
if (opts.skipWritingToFs) return true;
|
|
372
|
+
if (!componentMap) return false;
|
|
373
|
+
// no writeToPath: it goes to the default directory. an existing componentMap means the component is not new.
|
|
374
|
+
if (!opts.writeToPath) return true;
|
|
375
|
+
// writeToPath specified and that directory is already used for that component. compare against the
|
|
376
|
+
// normalized componentDirRelative (not the raw opts.writeToPath, which may be absolute/OS-specific).
|
|
377
|
+
return componentMap.rootDir === componentDirRelative;
|
|
378
|
+
}
|
|
369
379
|
throwErrorWhenDirectoryNotEmpty(componentDirRelative, componentMap, opts) {
|
|
370
|
-
if (opts
|
|
371
|
-
// if not writeToPath specified, it goes to the default directory. When componentMap exists, the
|
|
372
|
-
// component is not new, and it's ok to override the existing directory.
|
|
373
|
-
if (!opts.writeToPath && componentMap) return;
|
|
374
|
-
// if writeToPath specified and that directory is already used for that component, it's ok to override
|
|
375
|
-
if (opts.writeToPath && componentMap && componentMap.rootDir && componentMap.rootDir === opts.writeToPath) return;
|
|
380
|
+
if (this.shouldSkipDirConflictCheck(componentDirRelative, componentMap, opts)) return;
|
|
376
381
|
const componentDir = this.consumer.toAbsolutePath(componentDirRelative);
|
|
377
382
|
if (!_fsExtra().default.pathExistsSync(componentDir)) return;
|
|
378
383
|
if (!componentMap) {
|
|
@@ -389,6 +394,57 @@ either use --path to specify a different directory or modify "defaultDirectory"
|
|
|
389
394
|
throw new (_bitError().BitError)(`unable to import to ${componentDir}, the directory is not empty. use --override flag to delete the directory and then import`);
|
|
390
395
|
}
|
|
391
396
|
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* final `writeToPath` resolution for the `--write-to-empty-dir` import flag, mainly for non-interactive clients
|
|
400
|
+
* (such as the IDE) that can't prompt for `--override`. runs after fixDirsIfEqual()/fixDirsIfNested() - which may
|
|
401
|
+
* still move dirs using string-only collision checks - so the flag's guarantee holds against the final paths:
|
|
402
|
+
* every relocated component lands in a directory that is empty (or non-existent) and unclaimed in .bitmap.
|
|
403
|
+
* when a target is occupied (by foreign files, or a dir/rootDir owned by another component), it's relocated by
|
|
404
|
+
* suffixing "_N" (e.g. "renderers/class" => "renderers/class_1"). a dir already owned by this component is left
|
|
405
|
+
* as-is (its files are overridden, same as the default import behavior).
|
|
406
|
+
*/
|
|
407
|
+
relocateOccupiedDirs(componentWriterInstances, opts) {
|
|
408
|
+
if (!opts.writeToEmptyDir) return;
|
|
409
|
+
// track dirs already claimed in .bitmap and by other components in this batch, so two relocations never collide.
|
|
410
|
+
const takenDirs = new Set([...this.workspace.bitMap.getAllRootDirs(), ...componentWriterInstances.map(componentWriter => componentWriter.writeToPath)]);
|
|
411
|
+
componentWriterInstances.forEach(componentWriter => {
|
|
412
|
+
const currentDir = componentWriter.writeToPath;
|
|
413
|
+
const componentMap = componentWriter.existingComponentMap;
|
|
414
|
+
if (this.shouldSkipDirConflictCheck(currentDir, componentMap, opts)) return;
|
|
415
|
+
const unavailableReason = this.getDirUnavailableReason(currentDir, componentMap);
|
|
416
|
+
if (!unavailableReason) return;
|
|
417
|
+
let num = 1;
|
|
418
|
+
let candidate = `${currentDir}_${num}`;
|
|
419
|
+
while (takenDirs.has(candidate) || this.getDirUnavailableReason(candidate, componentMap)) {
|
|
420
|
+
num += 1;
|
|
421
|
+
candidate = `${currentDir}_${num}`;
|
|
422
|
+
}
|
|
423
|
+
this.logger.consoleWarning(`unable to import into "${currentDir}" (${unavailableReason}), importing into "${candidate}" instead`);
|
|
424
|
+
componentWriter.writeToPath = candidate;
|
|
425
|
+
takenDirs.add(candidate);
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* returns a human-readable reason why the given directory can't be used for import, or undefined when it's
|
|
431
|
+
* available. a directory is available when it doesn't exist yet, or it's an empty directory that is not already
|
|
432
|
+
* used by another component in the .bitmap file.
|
|
433
|
+
*/
|
|
434
|
+
getDirUnavailableReason(componentDirRelative, componentMap) {
|
|
435
|
+
// a rootDir may be claimed in .bitmap even when its directory was deleted from the filesystem, so check
|
|
436
|
+
// .bitmap ownership regardless of whether the directory currently exists on disk. it's only ok to reuse the
|
|
437
|
+
// rootDir when it's claimed by the same component we're importing (comparing without version).
|
|
438
|
+
const usedByComponent = this.consumer.bitMap.getComponentIdByRootPath(componentDirRelative);
|
|
439
|
+
if (usedByComponent && !(componentMap && usedByComponent.isEqualWithoutVersion(componentMap.id))) {
|
|
440
|
+
return `it is already used by ${usedByComponent.toString()}`;
|
|
441
|
+
}
|
|
442
|
+
const componentDir = this.consumer.toAbsolutePath(componentDirRelative);
|
|
443
|
+
if (!_fsExtra().default.pathExistsSync(componentDir)) return undefined;
|
|
444
|
+
if (!(0, _legacy().isDir)(componentDir)) return 'it is a file';
|
|
445
|
+
if (!(0, _legacy().isDirEmptySync)(componentDir)) return 'the directory is not empty';
|
|
446
|
+
return undefined;
|
|
447
|
+
}
|
|
392
448
|
static async provider([install, compiler, loggerMain, workspace, mover, configMerger]) {
|
|
393
449
|
const logger = loggerMain.createLogger(_componentWriter2().ComponentWriterAspect.id);
|
|
394
450
|
return new ComponentWriterMain(install, compiler, workspace, logger, mover, configMerger);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_compiler","_install","_logger","_workspace","_bitError","_fsExtra","_interopRequireDefault","_lodash","_pMapSeries","path","_interopRequireWildcard","_mover","_legacy","_legacy2","_component","_configMerger","_componentWriter","_componentWriter2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","ComponentWriterMain","constructor","installer","compiler","workspace","logger","mover","configMerge","consumer","writeMany","opts","components","debug","writeComponentsFiles","results","finalizeWrite","populateComponentsFilesToWrite","moveComponentsIfNeeded","persistComponentsData","skipUpdatingBitMap","writeBitMap","reasonForBitmapChange","installationError","compilationError","workspaceConfigUpdateResult","writeDeps","writeDependencies","shouldUpdateWorkspaceConfig","updateDepsInWorkspaceConfig","mergeStrategy","externalPackageManagerIsUsed","writeDependenciesToPackageJson","skipDependencyInstallation","installPackagesGracefully","map","id","skipWriteConfigFiles","compileGracefully","componentIds","installOpts","dedupe","updateExisting","import","writeConfigFiles","dependenciesGraph","scope","getDependenciesGraphByComponentIds","install","undefined","err","consoleFailure","message","error","compileOnWorkspace","skipWritingToFs","dataToPersist","DataToPersist","component","merge","addBasePath","getPath","persistAllToFS","writeComponentsParams","getWriteParamsOfOneComponent","componentWriterInstances","writeParams","ComponentWriter","fixDirsIfEqual","fixDirsIfNested","Promise","all","componentWriter","existingComponentMap","addComponentToBitMap","writeToPath","componentConfigPath","join","rootDir","COMPONENT_CONFIG_FILE_NAME","componentConfigExist","fs","pathExists","writeConfig","resetConfig","config","mapSeries","allDirs","c","duplicatedDirs","dir","d","uniqDuplicates","uniq","compDir","hasDuplication","compWriter","ownerName","includes","split","startsWith","incrementPathRecursively","parentsOfOthersComps","find","existingRootDirs","bitMap","getAllRootDirs","parentsOfOthersCompsDirs","allPaths","newPath","existingParent","existingChildren","replace","componentRootDir","pathNormalizeToLinux","getPathRelativeToConsumer","resolve","composeRelativeComponentPath","getParams","componentMap","getComponentIfExist","ignoreVersion","throwErrorWhenDirectoryNotEmpty","BitError","relativeWrittenPath","writtenPath","absoluteWrittenPath","toAbsolutePath","absoluteWriteToPath","moveExistingComponent","componentDirRelative","componentDir","pathExistsSync","compInTheSameDir","getComponentIdByRootPath","toString","isDir","isDirEmptySync","throwForExistingDir","provider","loggerMain","configMerger","createLogger","ComponentWriterAspect","exports","InstallAspect","CompilerAspect","LoggerAspect","WorkspaceAspect","MoverAspect","ConfigMergerAspect","MainRuntime","addRuntime","_default","p","incrementPath","str","number","num"],"sources":["component-writer.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect } from '@teambit/compiler';\nimport type { InstallMain } from '@teambit/install';\nimport { InstallAspect } from '@teambit/install';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport { BitError } from '@teambit/bit-error';\nimport fs from 'fs-extra';\nimport { uniq } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport * as path from 'path';\nimport type { MoverMain } from '@teambit/mover';\nimport { MoverAspect } from '@teambit/mover';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { PathLinuxRelative, PathOsBasedAbsolute } from '@teambit/legacy.utils';\nimport { isDir, isDirEmptySync, pathNormalizeToLinux } from '@teambit/legacy.utils';\nimport type { ComponentMap } from '@teambit/legacy.bit-map';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy.constants';\nimport { DataToPersist } from '@teambit/component.sources';\nimport type { ConfigMergerMain, WorkspaceConfigUpdateResult } from '@teambit/config-merger';\nimport { ConfigMergerAspect } from '@teambit/config-merger';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { ComponentWriterProps } from './component-writer';\nimport ComponentWriter from './component-writer';\nimport { ComponentWriterAspect } from './component-writer.aspect';\n\nexport interface ManyComponentsWriterParams {\n components: ConsumerComponent[];\n writeToPath?: string;\n throwForExistingDir?: boolean;\n writeConfig?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n resetConfig?: boolean;\n skipWritingToFs?: boolean;\n skipUpdatingBitMap?: boolean;\n skipWriteConfigFiles?: boolean;\n reasonForBitmapChange?: string; // optional. will be written in the bitmap-history-metadata\n shouldUpdateWorkspaceConfig?: boolean; // whether it should update dependencies policy (or leave conflicts) in workspace.jsonc\n mergeStrategy?: MergeStrategy; // needed for workspace.jsonc conflicts\n writeDeps?: 'package.json' | 'workspace.jsonc';\n}\n\nexport type ComponentWriterResults = {\n installationError?: Error;\n compilationError?: Error;\n workspaceConfigUpdateResult?: WorkspaceConfigUpdateResult;\n};\n\nexport class ComponentWriterMain {\n constructor(\n private installer: InstallMain,\n private compiler: CompilerMain,\n private workspace: Workspace,\n private logger: Logger,\n private mover: MoverMain,\n private configMerge: ConfigMergerMain\n ) {}\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async writeMany(opts: ManyComponentsWriterParams): Promise<ComponentWriterResults> {\n if (!opts.components.length) return {};\n this.logger.debug('writeMany, started');\n await this.writeComponentsFiles(opts);\n const results = await this.finalizeWrite(opts);\n this.logger.debug('writeMany, completed!');\n return results;\n }\n\n /**\n * Per-batch half of {@link writeMany}: populate, persist, and update .bitmap.\n * Callers batching very large imports call this per chunk, then {@link finalizeWrite} once.\n */\n async writeComponentsFiles(opts: ManyComponentsWriterParams): Promise<void> {\n if (!opts.components.length) return;\n await this.populateComponentsFilesToWrite(opts);\n this.moveComponentsIfNeeded(opts);\n await this.persistComponentsData(opts);\n if (!opts.skipUpdatingBitMap) await this.consumer.writeBitMap(opts.reasonForBitmapChange);\n }\n\n /**\n * Workspace-wide finalization pair to {@link writeComponentsFiles}: workspace.jsonc update,\n * dep install, compile. Runs once per import, not per batch.\n */\n async finalizeWrite(opts: ManyComponentsWriterParams): Promise<ComponentWriterResults> {\n if (!opts.components.length) return {};\n let installationError: Error | undefined;\n let compilationError: Error | undefined;\n let workspaceConfigUpdateResult: WorkspaceConfigUpdateResult | undefined;\n if (opts.writeDeps) {\n await this.workspace.writeDependencies(opts.writeDeps);\n }\n if (opts.shouldUpdateWorkspaceConfig) {\n workspaceConfigUpdateResult = await this.configMerge.updateDepsInWorkspaceConfig(\n opts.components,\n opts.mergeStrategy\n );\n }\n if (this.workspace.externalPackageManagerIsUsed()) {\n await this.installer.writeDependenciesToPackageJson();\n } else if (!opts.skipDependencyInstallation) {\n installationError = await this.installPackagesGracefully(\n opts.components.map(({ id }) => id),\n opts.skipWriteConfigFiles\n );\n // no point to compile if the installation is not running. the environment is not ready.\n compilationError = await this.compileGracefully();\n }\n return { installationError, compilationError, workspaceConfigUpdateResult };\n }\n\n private async installPackagesGracefully(\n componentIds: ComponentID[],\n skipWriteConfigFiles = false\n ): Promise<Error | undefined> {\n this.logger.debug('installPackagesGracefully, start installing packages');\n try {\n const installOpts = {\n dedupe: true,\n updateExisting: false,\n import: false,\n writeConfigFiles: !skipWriteConfigFiles,\n dependenciesGraph: await this.workspace.scope.getDependenciesGraphByComponentIds(componentIds),\n };\n await this.installer.install(undefined, installOpts);\n this.logger.debug('installPackagesGracefully, completed installing packages successfully');\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`installation failed with the following error: ${err.message}`);\n this.logger.error('installPackagesGracefully, package-installer found an error', err);\n return err;\n }\n }\n private async compileGracefully(): Promise<Error | undefined> {\n try {\n await this.compiler.compileOnWorkspace();\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`compilation failed with the following error: ${err.message}`);\n this.logger.error('compileGracefully, compiler found an error', err);\n return err;\n }\n }\n private async persistComponentsData(opts: ManyComponentsWriterParams) {\n if (opts.skipWritingToFs) return;\n const dataToPersist = new DataToPersist();\n opts.components.forEach((component) => dataToPersist.merge(component.dataToPersist));\n dataToPersist.addBasePath(this.consumer.getPath());\n await dataToPersist.persistAllToFS();\n }\n private async populateComponentsFilesToWrite(opts: ManyComponentsWriterParams) {\n const writeComponentsParams = opts.components.map((component) =>\n this.getWriteParamsOfOneComponent(component, opts)\n );\n const componentWriterInstances = writeComponentsParams.map((writeParams) => new ComponentWriter(writeParams));\n this.fixDirsIfEqual(componentWriterInstances);\n this.fixDirsIfNested(componentWriterInstances);\n // add componentMap entries into .bitmap before starting the process because steps like writing package-json\n // rely on .bitmap to determine whether a dependency exists and what's its origin\n await Promise.all(\n componentWriterInstances.map(async (componentWriter: ComponentWriter) => {\n componentWriter.existingComponentMap =\n componentWriter.existingComponentMap ||\n (await componentWriter.addComponentToBitMap(componentWriter.writeToPath));\n const componentConfigPath = path.join(\n this.workspace.path,\n componentWriter.existingComponentMap.rootDir,\n COMPONENT_CONFIG_FILE_NAME\n );\n const componentConfigExist = await fs.pathExists(componentConfigPath);\n componentWriter.writeConfig = componentWriter.writeConfig || componentConfigExist;\n })\n );\n if (opts.resetConfig) {\n componentWriterInstances.forEach((componentWriter: ComponentWriter) => {\n delete componentWriter.existingComponentMap?.config;\n });\n }\n await mapSeries(componentWriterInstances, (componentWriter: ComponentWriter) =>\n componentWriter.populateComponentsFilesToWrite()\n );\n }\n\n /**\n * this started to be an issue once same-name different-scope is supported.\n * by default, the component-dir consist of the scope-name part of the scope-id, without the owner part.\n * as a result, it's possible that multiple components have the same name, same scope-name but different owner.\n * e.g. org1.ui/button and org2.ui/button. the component-dir for both is \"ui/button\".\n * in this case, we try to prefix the component-dir with the owner-name and if not possible, just increment it (ui/button_1)\n */\n private fixDirsIfEqual(componentWriterInstances: ComponentWriter[]) {\n const allDirs = componentWriterInstances.map((c) => c.writeToPath);\n const duplicatedDirs = allDirs.filter((dir) => allDirs.filter((d) => d === dir).length > 1);\n if (!duplicatedDirs.length) return;\n const uniqDuplicates = uniq(duplicatedDirs);\n uniqDuplicates.forEach((compDir) => {\n const hasDuplication = componentWriterInstances.filter((compWriter) => compWriter.writeToPath === compDir);\n hasDuplication.forEach((compWriter) => {\n const ownerName = compWriter.component.id.scope?.includes('.')\n ? compWriter.component.id.scope.split('.')[0]\n : undefined;\n if (ownerName && !compDir.startsWith(ownerName) && !allDirs.includes(`${ownerName}/${compDir}`)) {\n compWriter.writeToPath = `${ownerName}/${compDir}`;\n } else {\n compWriter.writeToPath = incrementPathRecursively(compWriter.writeToPath, allDirs);\n }\n allDirs.push(compWriter.writeToPath);\n });\n });\n }\n\n /**\n * e.g. [bar, bar/foo] => [bar_1, bar/foo]\n * otherwise, the bar/foo component will be saved inside \"bar\" component.\n * in case bar_1 is taken, increment to bar_2 until the name is available.\n */\n private fixDirsIfNested(componentWriterInstances: ComponentWriter[]) {\n const allDirs = componentWriterInstances.map((c) => c.writeToPath);\n\n // get all components that their root-dir is a parent of other components root-dir.\n const parentsOfOthersComps = componentWriterInstances.filter(({ writeToPath }) =>\n allDirs.find((d) => d.startsWith(`${writeToPath}/`))\n );\n const existingRootDirs = this.workspace.bitMap.getAllRootDirs();\n const parentsOfOthersCompsDirs = parentsOfOthersComps.map((c) => c.writeToPath);\n const allPaths: PathLinuxRelative[] = [...existingRootDirs, ...parentsOfOthersCompsDirs];\n\n // this is when writing multiple components and some of them are parents of the others.\n // change the paths of all these parents root-dir to not collide with the children root-dir\n parentsOfOthersComps.forEach((componentWriter) => {\n if (existingRootDirs.includes(componentWriter.writeToPath)) return; // component already exists.\n const newPath = incrementPathRecursively(componentWriter.writeToPath, allPaths);\n componentWriter.writeToPath = newPath;\n });\n\n // this part is when a component's rootDir we about to write is a children of an existing rootDir.\n // e.g. we're now writing \"foo\", when an existing component has \"foo/bar\" as the rootDir.\n // in this case, we change \"foo\" to be \"foo_1\".\n componentWriterInstances.forEach((componentWriter) => {\n const existingParent = existingRootDirs.find((d) => d.startsWith(`${componentWriter.writeToPath}/`));\n if (!existingParent) return;\n if (existingRootDirs.includes(componentWriter.writeToPath)) return; // component already exists.\n const newPath = incrementPathRecursively(componentWriter.writeToPath, allPaths);\n componentWriter.writeToPath = newPath;\n });\n\n // this part if when for example an existing rootDir is \"comp1\" and currently written component is \"comp1/foo\".\n // obviously we don't want to change existing dirs. we change the \"comp1/foo\" to be \"comp1_1/foo\".\n componentWriterInstances.forEach((componentWriter) => {\n const existingChildren = existingRootDirs.find((d) => componentWriter.writeToPath.startsWith(`${d}/`));\n if (!existingChildren) return;\n // we increment the existing one, because it is used to replace the base-path of the current component\n const newPath = incrementPathRecursively(existingChildren, allPaths);\n componentWriter.writeToPath = componentWriter.writeToPath.replace(existingChildren, newPath);\n });\n }\n\n private getWriteParamsOfOneComponent(\n component: ConsumerComponent,\n opts: ManyComponentsWriterParams\n ): ComponentWriterProps {\n const componentRootDir: PathLinuxRelative = opts.writeToPath\n ? pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(path.resolve(opts.writeToPath)))\n : this.consumer.composeRelativeComponentPath(component.id);\n const getParams = () => {\n if (!this.consumer) {\n return {};\n }\n // components can't be saved with multiple versions, so we can ignore the version to find the component in bit.map\n const componentMap = this.consumer.bitMap.getComponentIfExist(component.id, {\n ignoreVersion: true,\n });\n this.throwErrorWhenDirectoryNotEmpty(componentRootDir, componentMap, opts);\n return {\n existingComponentMap: componentMap,\n };\n };\n return {\n workspace: this.workspace,\n bitMap: this.consumer.bitMap,\n component,\n writeToPath: componentRootDir,\n writeConfig: opts.writeConfig,\n skipUpdatingBitMap: opts.skipUpdatingBitMap,\n ...getParams(),\n };\n }\n private moveComponentsIfNeeded(opts: ManyComponentsWriterParams) {\n if (opts.writeToPath && this.consumer) {\n opts.components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new BitError(`unable to use \"--path\" flag.\nto move individual files, use bit move.\nto move all component files to a different directory, run bit remove and then bit import --path`);\n }\n const relativeWrittenPath = component.writtenPath;\n // @ts-ignore relativeWrittenPath is set at this point\n const absoluteWrittenPath = this.consumer.toAbsolutePath(relativeWrittenPath);\n // @ts-ignore this.writeToPath is set at this point\n const absoluteWriteToPath = path.resolve(opts.writeToPath); // don't use consumer.toAbsolutePath, it might be an inner dir\n if (relativeWrittenPath && absoluteWrittenPath !== absoluteWriteToPath) {\n this.mover.moveExistingComponent(component, absoluteWrittenPath, absoluteWriteToPath);\n }\n });\n }\n }\n private throwErrorWhenDirectoryNotEmpty(\n componentDirRelative: PathOsBasedAbsolute,\n componentMap: ComponentMap | null | undefined,\n opts: ManyComponentsWriterParams\n ) {\n if (opts.skipWritingToFs) return;\n // if not writeToPath specified, it goes to the default directory. When componentMap exists, the\n // component is not new, and it's ok to override the existing directory.\n if (!opts.writeToPath && componentMap) return;\n // if writeToPath specified and that directory is already used for that component, it's ok to override\n if (opts.writeToPath && componentMap && componentMap.rootDir && componentMap.rootDir === opts.writeToPath) return;\n\n const componentDir = this.consumer.toAbsolutePath(componentDirRelative);\n if (!fs.pathExistsSync(componentDir)) return;\n if (!componentMap) {\n const compInTheSameDir = this.consumer.bitMap.getComponentIdByRootPath(componentDirRelative);\n if (compInTheSameDir) {\n throw new BitError(\n `unable to import to ${componentDir}, the directory is already used by ${compInTheSameDir.toString()}.\neither use --path to specify a different directory or modify \"defaultDirectory\" prop in the workspace.jsonc file to \"{scopeId}/{name}\"`\n );\n }\n }\n if (!isDir(componentDir)) {\n throw new BitError(`unable to import to ${componentDir} because it's a file`);\n }\n if (!isDirEmptySync(componentDir) && opts.throwForExistingDir) {\n throw new BitError(\n `unable to import to ${componentDir}, the directory is not empty. use --override flag to delete the directory and then import`\n );\n }\n }\n\n static slots = [];\n static dependencies = [InstallAspect, CompilerAspect, LoggerAspect, WorkspaceAspect, MoverAspect, ConfigMergerAspect];\n static runtime = MainRuntime;\n static async provider([install, compiler, loggerMain, workspace, mover, configMerger]: [\n InstallMain,\n CompilerMain,\n LoggerMain,\n Workspace,\n MoverMain,\n ConfigMergerMain,\n ]) {\n const logger = loggerMain.createLogger(ComponentWriterAspect.id);\n return new ComponentWriterMain(install, compiler, workspace, logger, mover, configMerger);\n }\n}\n\nComponentWriterAspect.addRuntime(ComponentWriterMain);\n\nexport default ComponentWriterMain;\n\nexport function incrementPathRecursively(p: string, allPaths: string[]) {\n const incrementPath = (str: string, number: number) => `${str}_${number}`;\n let num = 1;\n let newPath = incrementPath(p, num);\n while (allPaths.includes(newPath)) {\n newPath = incrementPath(p, (num += 1));\n }\n return newPath;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cli","data","require","_compiler","_install","_logger","_workspace","_bitError","_fsExtra","_interopRequireDefault","_lodash","_pMapSeries","path","_interopRequireWildcard","_mover","_legacy","_legacy2","_component","_configMerger","_componentWriter","_componentWriter2","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","ComponentWriterMain","constructor","installer","compiler","workspace","logger","mover","configMerge","consumer","writeMany","opts","components","length","debug","writeComponentsFiles","results","finalizeWrite","populateComponentsFilesToWrite","moveComponentsIfNeeded","persistComponentsData","skipUpdatingBitMap","writeBitMap","reasonForBitmapChange","installationError","compilationError","workspaceConfigUpdateResult","writeDeps","writeDependencies","shouldUpdateWorkspaceConfig","updateDepsInWorkspaceConfig","mergeStrategy","externalPackageManagerIsUsed","writeDependenciesToPackageJson","skipDependencyInstallation","installPackagesGracefully","map","id","skipWriteConfigFiles","compileGracefully","componentIds","installOpts","dedupe","updateExisting","import","writeConfigFiles","dependenciesGraph","scope","getDependenciesGraphByComponentIds","install","undefined","err","consoleFailure","message","error","compileOnWorkspace","skipWritingToFs","dataToPersist","DataToPersist","forEach","component","merge","addBasePath","getPath","persistAllToFS","writeComponentsParams","getWriteParamsOfOneComponent","componentWriterInstances","writeParams","ComponentWriter","fixDirsIfEqual","fixDirsIfNested","relocateOccupiedDirs","Promise","all","componentWriter","existingComponentMap","addComponentToBitMap","writeToPath","componentConfigPath","join","rootDir","COMPONENT_CONFIG_FILE_NAME","componentConfigExist","fs","pathExists","writeConfig","resetConfig","config","mapSeries","allDirs","c","duplicatedDirs","filter","dir","d","uniqDuplicates","uniq","compDir","hasDuplication","compWriter","ownerName","includes","split","startsWith","incrementPathRecursively","push","parentsOfOthersComps","find","existingRootDirs","bitMap","getAllRootDirs","parentsOfOthersCompsDirs","allPaths","newPath","existingParent","existingChildren","replace","componentRootDir","pathNormalizeToLinux","getPathRelativeToConsumer","resolve","composeRelativeComponentPath","getComponentIfExist","ignoreVersion","writeToEmptyDir","throwErrorWhenDirectoryNotEmpty","componentMap","BitError","relativeWrittenPath","writtenPath","absoluteWrittenPath","toAbsolutePath","absoluteWriteToPath","moveExistingComponent","shouldSkipDirConflictCheck","componentDirRelative","componentDir","pathExistsSync","compInTheSameDir","getComponentIdByRootPath","toString","isDir","isDirEmptySync","throwForExistingDir","takenDirs","Set","currentDir","unavailableReason","getDirUnavailableReason","num","candidate","consoleWarning","add","usedByComponent","isEqualWithoutVersion","provider","loggerMain","configMerger","createLogger","ComponentWriterAspect","exports","InstallAspect","CompilerAspect","LoggerAspect","WorkspaceAspect","MoverAspect","ConfigMergerAspect","MainRuntime","addRuntime","_default","p","incrementPath","str","number"],"sources":["component-writer.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { CompilerMain } from '@teambit/compiler';\nimport { CompilerAspect } from '@teambit/compiler';\nimport type { InstallMain } from '@teambit/install';\nimport { InstallAspect } from '@teambit/install';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport { BitError } from '@teambit/bit-error';\nimport fs from 'fs-extra';\nimport { uniq } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport * as path from 'path';\nimport type { MoverMain } from '@teambit/mover';\nimport { MoverAspect } from '@teambit/mover';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { PathLinuxRelative } from '@teambit/legacy.utils';\nimport { isDir, isDirEmptySync, pathNormalizeToLinux } from '@teambit/legacy.utils';\nimport type { ComponentMap } from '@teambit/legacy.bit-map';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy.constants';\nimport { DataToPersist } from '@teambit/component.sources';\nimport type { ConfigMergerMain, WorkspaceConfigUpdateResult } from '@teambit/config-merger';\nimport { ConfigMergerAspect } from '@teambit/config-merger';\nimport type { MergeStrategy } from '@teambit/component.modules.merge-helper';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport type { ComponentWriterProps } from './component-writer';\nimport ComponentWriter from './component-writer';\nimport { ComponentWriterAspect } from './component-writer.aspect';\n\nexport interface ManyComponentsWriterParams {\n components: ConsumerComponent[];\n writeToPath?: string;\n throwForExistingDir?: boolean;\n // when the target dir is occupied, import into an available empty dir (e.g. \"foo\" => \"foo_1\") instead of failing.\n writeToEmptyDir?: boolean;\n writeConfig?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n resetConfig?: boolean;\n skipWritingToFs?: boolean;\n skipUpdatingBitMap?: boolean;\n skipWriteConfigFiles?: boolean;\n reasonForBitmapChange?: string; // optional. will be written in the bitmap-history-metadata\n shouldUpdateWorkspaceConfig?: boolean; // whether it should update dependencies policy (or leave conflicts) in workspace.jsonc\n mergeStrategy?: MergeStrategy; // needed for workspace.jsonc conflicts\n writeDeps?: 'package.json' | 'workspace.jsonc';\n}\n\nexport type ComponentWriterResults = {\n installationError?: Error;\n compilationError?: Error;\n workspaceConfigUpdateResult?: WorkspaceConfigUpdateResult;\n};\n\nexport class ComponentWriterMain {\n constructor(\n private installer: InstallMain,\n private compiler: CompilerMain,\n private workspace: Workspace,\n private logger: Logger,\n private mover: MoverMain,\n private configMerge: ConfigMergerMain\n ) {}\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async writeMany(opts: ManyComponentsWriterParams): Promise<ComponentWriterResults> {\n if (!opts.components.length) return {};\n this.logger.debug('writeMany, started');\n await this.writeComponentsFiles(opts);\n const results = await this.finalizeWrite(opts);\n this.logger.debug('writeMany, completed!');\n return results;\n }\n\n /**\n * Per-batch half of {@link writeMany}: populate, persist, and update .bitmap.\n * Callers batching very large imports call this per chunk, then {@link finalizeWrite} once.\n */\n async writeComponentsFiles(opts: ManyComponentsWriterParams): Promise<void> {\n if (!opts.components.length) return;\n await this.populateComponentsFilesToWrite(opts);\n this.moveComponentsIfNeeded(opts);\n await this.persistComponentsData(opts);\n if (!opts.skipUpdatingBitMap) await this.consumer.writeBitMap(opts.reasonForBitmapChange);\n }\n\n /**\n * Workspace-wide finalization pair to {@link writeComponentsFiles}: workspace.jsonc update,\n * dep install, compile. Runs once per import, not per batch.\n */\n async finalizeWrite(opts: ManyComponentsWriterParams): Promise<ComponentWriterResults> {\n if (!opts.components.length) return {};\n let installationError: Error | undefined;\n let compilationError: Error | undefined;\n let workspaceConfigUpdateResult: WorkspaceConfigUpdateResult | undefined;\n if (opts.writeDeps) {\n await this.workspace.writeDependencies(opts.writeDeps);\n }\n if (opts.shouldUpdateWorkspaceConfig) {\n workspaceConfigUpdateResult = await this.configMerge.updateDepsInWorkspaceConfig(\n opts.components,\n opts.mergeStrategy\n );\n }\n if (this.workspace.externalPackageManagerIsUsed()) {\n await this.installer.writeDependenciesToPackageJson();\n } else if (!opts.skipDependencyInstallation) {\n installationError = await this.installPackagesGracefully(\n opts.components.map(({ id }) => id),\n opts.skipWriteConfigFiles\n );\n // no point to compile if the installation is not running. the environment is not ready.\n compilationError = await this.compileGracefully();\n }\n return { installationError, compilationError, workspaceConfigUpdateResult };\n }\n\n private async installPackagesGracefully(\n componentIds: ComponentID[],\n skipWriteConfigFiles = false\n ): Promise<Error | undefined> {\n this.logger.debug('installPackagesGracefully, start installing packages');\n try {\n const installOpts = {\n dedupe: true,\n updateExisting: false,\n import: false,\n writeConfigFiles: !skipWriteConfigFiles,\n dependenciesGraph: await this.workspace.scope.getDependenciesGraphByComponentIds(componentIds),\n };\n await this.installer.install(undefined, installOpts);\n this.logger.debug('installPackagesGracefully, completed installing packages successfully');\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`installation failed with the following error: ${err.message}`);\n this.logger.error('installPackagesGracefully, package-installer found an error', err);\n return err;\n }\n }\n private async compileGracefully(): Promise<Error | undefined> {\n try {\n await this.compiler.compileOnWorkspace();\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`compilation failed with the following error: ${err.message}`);\n this.logger.error('compileGracefully, compiler found an error', err);\n return err;\n }\n }\n private async persistComponentsData(opts: ManyComponentsWriterParams) {\n if (opts.skipWritingToFs) return;\n const dataToPersist = new DataToPersist();\n opts.components.forEach((component) => dataToPersist.merge(component.dataToPersist));\n dataToPersist.addBasePath(this.consumer.getPath());\n await dataToPersist.persistAllToFS();\n }\n private async populateComponentsFilesToWrite(opts: ManyComponentsWriterParams) {\n const writeComponentsParams = opts.components.map((component) =>\n this.getWriteParamsOfOneComponent(component, opts)\n );\n const componentWriterInstances = writeComponentsParams.map((writeParams) => new ComponentWriter(writeParams));\n this.fixDirsIfEqual(componentWriterInstances);\n this.fixDirsIfNested(componentWriterInstances);\n // must run after the fixDirs* passes above, which may still move writeToPath onto an occupied dir.\n this.relocateOccupiedDirs(componentWriterInstances, opts);\n // add componentMap entries into .bitmap before starting the process because steps like writing package-json\n // rely on .bitmap to determine whether a dependency exists and what's its origin\n await Promise.all(\n componentWriterInstances.map(async (componentWriter: ComponentWriter) => {\n componentWriter.existingComponentMap =\n componentWriter.existingComponentMap ||\n (await componentWriter.addComponentToBitMap(componentWriter.writeToPath));\n const componentConfigPath = path.join(\n this.workspace.path,\n componentWriter.existingComponentMap.rootDir,\n COMPONENT_CONFIG_FILE_NAME\n );\n const componentConfigExist = await fs.pathExists(componentConfigPath);\n componentWriter.writeConfig = componentWriter.writeConfig || componentConfigExist;\n })\n );\n if (opts.resetConfig) {\n componentWriterInstances.forEach((componentWriter: ComponentWriter) => {\n delete componentWriter.existingComponentMap?.config;\n });\n }\n await mapSeries(componentWriterInstances, (componentWriter: ComponentWriter) =>\n componentWriter.populateComponentsFilesToWrite()\n );\n }\n\n /**\n * this started to be an issue once same-name different-scope is supported.\n * by default, the component-dir consist of the scope-name part of the scope-id, without the owner part.\n * as a result, it's possible that multiple components have the same name, same scope-name but different owner.\n * e.g. org1.ui/button and org2.ui/button. the component-dir for both is \"ui/button\".\n * in this case, we try to prefix the component-dir with the owner-name and if not possible, just increment it (ui/button_1)\n */\n private fixDirsIfEqual(componentWriterInstances: ComponentWriter[]) {\n const allDirs = componentWriterInstances.map((c) => c.writeToPath);\n const duplicatedDirs = allDirs.filter((dir) => allDirs.filter((d) => d === dir).length > 1);\n if (!duplicatedDirs.length) return;\n const uniqDuplicates = uniq(duplicatedDirs);\n uniqDuplicates.forEach((compDir) => {\n const hasDuplication = componentWriterInstances.filter((compWriter) => compWriter.writeToPath === compDir);\n hasDuplication.forEach((compWriter) => {\n const ownerName = compWriter.component.id.scope?.includes('.')\n ? compWriter.component.id.scope.split('.')[0]\n : undefined;\n if (ownerName && !compDir.startsWith(ownerName) && !allDirs.includes(`${ownerName}/${compDir}`)) {\n compWriter.writeToPath = `${ownerName}/${compDir}`;\n } else {\n compWriter.writeToPath = incrementPathRecursively(compWriter.writeToPath, allDirs);\n }\n allDirs.push(compWriter.writeToPath);\n });\n });\n }\n\n /**\n * e.g. [bar, bar/foo] => [bar_1, bar/foo]\n * otherwise, the bar/foo component will be saved inside \"bar\" component.\n * in case bar_1 is taken, increment to bar_2 until the name is available.\n */\n private fixDirsIfNested(componentWriterInstances: ComponentWriter[]) {\n const allDirs = componentWriterInstances.map((c) => c.writeToPath);\n\n // get all components that their root-dir is a parent of other components root-dir.\n const parentsOfOthersComps = componentWriterInstances.filter(({ writeToPath }) =>\n allDirs.find((d) => d.startsWith(`${writeToPath}/`))\n );\n const existingRootDirs = this.workspace.bitMap.getAllRootDirs();\n const parentsOfOthersCompsDirs = parentsOfOthersComps.map((c) => c.writeToPath);\n const allPaths: PathLinuxRelative[] = [...existingRootDirs, ...parentsOfOthersCompsDirs];\n\n // this is when writing multiple components and some of them are parents of the others.\n // change the paths of all these parents root-dir to not collide with the children root-dir\n parentsOfOthersComps.forEach((componentWriter) => {\n if (existingRootDirs.includes(componentWriter.writeToPath)) return; // component already exists.\n const newPath = incrementPathRecursively(componentWriter.writeToPath, allPaths);\n componentWriter.writeToPath = newPath;\n });\n\n // this part is when a component's rootDir we about to write is a children of an existing rootDir.\n // e.g. we're now writing \"foo\", when an existing component has \"foo/bar\" as the rootDir.\n // in this case, we change \"foo\" to be \"foo_1\".\n componentWriterInstances.forEach((componentWriter) => {\n const existingParent = existingRootDirs.find((d) => d.startsWith(`${componentWriter.writeToPath}/`));\n if (!existingParent) return;\n if (existingRootDirs.includes(componentWriter.writeToPath)) return; // component already exists.\n const newPath = incrementPathRecursively(componentWriter.writeToPath, allPaths);\n componentWriter.writeToPath = newPath;\n });\n\n // this part if when for example an existing rootDir is \"comp1\" and currently written component is \"comp1/foo\".\n // obviously we don't want to change existing dirs. we change the \"comp1/foo\" to be \"comp1_1/foo\".\n componentWriterInstances.forEach((componentWriter) => {\n const existingChildren = existingRootDirs.find((d) => componentWriter.writeToPath.startsWith(`${d}/`));\n if (!existingChildren) return;\n // we increment the existing one, because it is used to replace the base-path of the current component\n const newPath = incrementPathRecursively(existingChildren, allPaths);\n componentWriter.writeToPath = componentWriter.writeToPath.replace(existingChildren, newPath);\n });\n }\n\n private getWriteParamsOfOneComponent(\n component: ConsumerComponent,\n opts: ManyComponentsWriterParams\n ): ComponentWriterProps {\n const componentRootDir: PathLinuxRelative = opts.writeToPath\n ? pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(path.resolve(opts.writeToPath)))\n : this.consumer.composeRelativeComponentPath(component.id);\n // components can't be saved with multiple versions, so we can ignore the version to find the component in bit.map\n const existingComponentMap = this.consumer?.bitMap.getComponentIfExist(component.id, { ignoreVersion: true });\n // with --write-to-empty-dir, dir-conflict resolution is deferred to relocateOccupiedDirs() so it runs after the\n // fixDirs* passes (which may still adjust writeToPath); otherwise fail here when the target dir is occupied.\n if (this.consumer && !opts.writeToEmptyDir) {\n this.throwErrorWhenDirectoryNotEmpty(componentRootDir, existingComponentMap, opts);\n }\n return {\n workspace: this.workspace,\n bitMap: this.consumer.bitMap,\n component,\n writeToPath: componentRootDir,\n writeConfig: opts.writeConfig,\n skipUpdatingBitMap: opts.skipUpdatingBitMap,\n existingComponentMap: existingComponentMap ?? undefined,\n };\n }\n private moveComponentsIfNeeded(opts: ManyComponentsWriterParams) {\n if (opts.writeToPath && this.consumer) {\n opts.components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new BitError(`unable to use \"--path\" flag.\nto move individual files, use bit move.\nto move all component files to a different directory, run bit remove and then bit import --path`);\n }\n const relativeWrittenPath = component.writtenPath;\n // @ts-ignore relativeWrittenPath is set at this point\n const absoluteWrittenPath = this.consumer.toAbsolutePath(relativeWrittenPath);\n // @ts-ignore this.writeToPath is set at this point\n const absoluteWriteToPath = path.resolve(opts.writeToPath); // don't use consumer.toAbsolutePath, it might be an inner dir\n if (relativeWrittenPath && absoluteWrittenPath !== absoluteWriteToPath) {\n this.mover.moveExistingComponent(component, absoluteWrittenPath, absoluteWriteToPath);\n }\n });\n }\n }\n /**\n * true when the directory-conflict check can be skipped: either nothing is written to the filesystem, or the\n * target directory already belongs to this exact component (so overriding it in place is safe).\n */\n private shouldSkipDirConflictCheck(\n componentDirRelative: PathLinuxRelative,\n componentMap: ComponentMap | null | undefined,\n opts: ManyComponentsWriterParams\n ): boolean {\n if (opts.skipWritingToFs) return true;\n if (!componentMap) return false;\n // no writeToPath: it goes to the default directory. an existing componentMap means the component is not new.\n if (!opts.writeToPath) return true;\n // writeToPath specified and that directory is already used for that component. compare against the\n // normalized componentDirRelative (not the raw opts.writeToPath, which may be absolute/OS-specific).\n return componentMap.rootDir === componentDirRelative;\n }\n\n private throwErrorWhenDirectoryNotEmpty(\n componentDirRelative: PathLinuxRelative,\n componentMap: ComponentMap | null | undefined,\n opts: ManyComponentsWriterParams\n ) {\n if (this.shouldSkipDirConflictCheck(componentDirRelative, componentMap, opts)) return;\n\n const componentDir = this.consumer.toAbsolutePath(componentDirRelative);\n if (!fs.pathExistsSync(componentDir)) return;\n if (!componentMap) {\n const compInTheSameDir = this.consumer.bitMap.getComponentIdByRootPath(componentDirRelative);\n if (compInTheSameDir) {\n throw new BitError(\n `unable to import to ${componentDir}, the directory is already used by ${compInTheSameDir.toString()}.\neither use --path to specify a different directory or modify \"defaultDirectory\" prop in the workspace.jsonc file to \"{scopeId}/{name}\"`\n );\n }\n }\n if (!isDir(componentDir)) {\n throw new BitError(`unable to import to ${componentDir} because it's a file`);\n }\n if (!isDirEmptySync(componentDir) && opts.throwForExistingDir) {\n throw new BitError(\n `unable to import to ${componentDir}, the directory is not empty. use --override flag to delete the directory and then import`\n );\n }\n }\n\n /**\n * final `writeToPath` resolution for the `--write-to-empty-dir` import flag, mainly for non-interactive clients\n * (such as the IDE) that can't prompt for `--override`. runs after fixDirsIfEqual()/fixDirsIfNested() - which may\n * still move dirs using string-only collision checks - so the flag's guarantee holds against the final paths:\n * every relocated component lands in a directory that is empty (or non-existent) and unclaimed in .bitmap.\n * when a target is occupied (by foreign files, or a dir/rootDir owned by another component), it's relocated by\n * suffixing \"_N\" (e.g. \"renderers/class\" => \"renderers/class_1\"). a dir already owned by this component is left\n * as-is (its files are overridden, same as the default import behavior).\n */\n private relocateOccupiedDirs(componentWriterInstances: ComponentWriter[], opts: ManyComponentsWriterParams) {\n if (!opts.writeToEmptyDir) return;\n // track dirs already claimed in .bitmap and by other components in this batch, so two relocations never collide.\n const takenDirs = new Set<string>([\n ...this.workspace.bitMap.getAllRootDirs(),\n ...componentWriterInstances.map((componentWriter) => componentWriter.writeToPath),\n ]);\n componentWriterInstances.forEach((componentWriter) => {\n const currentDir = componentWriter.writeToPath;\n const componentMap = componentWriter.existingComponentMap;\n if (this.shouldSkipDirConflictCheck(currentDir, componentMap, opts)) return;\n const unavailableReason = this.getDirUnavailableReason(currentDir, componentMap);\n if (!unavailableReason) return;\n\n let num = 1;\n let candidate = `${currentDir}_${num}`;\n while (takenDirs.has(candidate) || this.getDirUnavailableReason(candidate, componentMap)) {\n num += 1;\n candidate = `${currentDir}_${num}`;\n }\n this.logger.consoleWarning(\n `unable to import into \"${currentDir}\" (${unavailableReason}), importing into \"${candidate}\" instead`\n );\n componentWriter.writeToPath = candidate;\n takenDirs.add(candidate);\n });\n }\n\n /**\n * returns a human-readable reason why the given directory can't be used for import, or undefined when it's\n * available. a directory is available when it doesn't exist yet, or it's an empty directory that is not already\n * used by another component in the .bitmap file.\n */\n private getDirUnavailableReason(\n componentDirRelative: PathLinuxRelative,\n componentMap: ComponentMap | null | undefined\n ): string | undefined {\n // a rootDir may be claimed in .bitmap even when its directory was deleted from the filesystem, so check\n // .bitmap ownership regardless of whether the directory currently exists on disk. it's only ok to reuse the\n // rootDir when it's claimed by the same component we're importing (comparing without version).\n const usedByComponent = this.consumer.bitMap.getComponentIdByRootPath(componentDirRelative);\n if (usedByComponent && !(componentMap && usedByComponent.isEqualWithoutVersion(componentMap.id))) {\n return `it is already used by ${usedByComponent.toString()}`;\n }\n const componentDir = this.consumer.toAbsolutePath(componentDirRelative);\n if (!fs.pathExistsSync(componentDir)) return undefined;\n if (!isDir(componentDir)) return 'it is a file';\n if (!isDirEmptySync(componentDir)) return 'the directory is not empty';\n return undefined;\n }\n\n static slots = [];\n static dependencies = [InstallAspect, CompilerAspect, LoggerAspect, WorkspaceAspect, MoverAspect, ConfigMergerAspect];\n static runtime = MainRuntime;\n static async provider([install, compiler, loggerMain, workspace, mover, configMerger]: [\n InstallMain,\n CompilerMain,\n LoggerMain,\n Workspace,\n MoverMain,\n ConfigMergerMain,\n ]) {\n const logger = loggerMain.createLogger(ComponentWriterAspect.id);\n return new ComponentWriterMain(install, compiler, workspace, logger, mover, configMerger);\n }\n}\n\nComponentWriterAspect.addRuntime(ComponentWriterMain);\n\nexport default ComponentWriterMain;\n\nexport function incrementPathRecursively(p: string, allPaths: string[]) {\n const incrementPath = (str: string, number: number) => `${str}_${number}`;\n let num = 1;\n let newPath = incrementPath(p, num);\n while (allPaths.includes(newPath)) {\n newPath = incrementPath(p, (num += 1));\n }\n return newPath;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component-writer",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1049",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/component-writer",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.component",
|
|
8
8
|
"name": "component-writer",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.1049"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fs-extra": "10.0.0",
|
|
@@ -15,29 +15,29 @@
|
|
|
15
15
|
"@teambit/harmony": "0.4.12",
|
|
16
16
|
"@teambit/bit-error": "0.0.404",
|
|
17
17
|
"@teambit/component-id": "1.2.4",
|
|
18
|
-
"@teambit/legacy.constants": "0.0.31",
|
|
19
|
-
"@teambit/legacy.utils": "0.0.39",
|
|
20
18
|
"@teambit/component-version": "1.0.4",
|
|
21
|
-
"@teambit/cli": "0.0.
|
|
22
|
-
"@teambit/compiler": "1.0.
|
|
23
|
-
"@teambit/component.modules.merge-helper": "0.0.
|
|
24
|
-
"@teambit/component.sources": "0.0.
|
|
25
|
-
"@teambit/config-merger": "0.0.
|
|
26
|
-
"@teambit/install": "1.0.
|
|
27
|
-
"@teambit/legacy.bit-map": "0.0.
|
|
28
|
-
"@teambit/legacy.
|
|
29
|
-
"@teambit/legacy.consumer": "0.0.
|
|
30
|
-
"@teambit/
|
|
31
|
-
"@teambit/
|
|
32
|
-
"@teambit/
|
|
33
|
-
"@teambit/
|
|
34
|
-
"@teambit/
|
|
19
|
+
"@teambit/cli": "0.0.1348",
|
|
20
|
+
"@teambit/compiler": "1.0.1049",
|
|
21
|
+
"@teambit/component.modules.merge-helper": "0.0.77",
|
|
22
|
+
"@teambit/component.sources": "0.0.186",
|
|
23
|
+
"@teambit/config-merger": "0.0.916",
|
|
24
|
+
"@teambit/install": "1.0.1049",
|
|
25
|
+
"@teambit/legacy.bit-map": "0.0.191",
|
|
26
|
+
"@teambit/legacy.constants": "0.0.32",
|
|
27
|
+
"@teambit/legacy.consumer-component": "0.0.135",
|
|
28
|
+
"@teambit/legacy.consumer": "0.0.134",
|
|
29
|
+
"@teambit/legacy.utils": "0.0.40",
|
|
30
|
+
"@teambit/logger": "0.0.1441",
|
|
31
|
+
"@teambit/mover": "1.0.1049",
|
|
32
|
+
"@teambit/workspace": "1.0.1049",
|
|
33
|
+
"@teambit/legacy.scope": "0.0.134",
|
|
34
|
+
"@teambit/objects": "0.0.556"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/fs-extra": "9.0.7",
|
|
38
38
|
"@types/lodash": "4.14.165",
|
|
39
39
|
"@types/mocha": "9.1.0",
|
|
40
|
-
"@teambit/harmony.envs.core-aspect-env": "0.
|
|
40
|
+
"@teambit/harmony.envs.core-aspect-env": "1.0.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {},
|
|
43
43
|
"license": "Apache-2.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"peerDependenciesMeta": {},
|
|
46
46
|
"exports": {
|
|
47
47
|
".": {
|
|
48
|
-
"types": "./index.ts",
|
|
48
|
+
"types": "./dist/index.d.ts",
|
|
49
49
|
"node": {
|
|
50
50
|
"require": "./dist/index.js",
|
|
51
51
|
"import": "./dist/esm.mjs"
|
|
@@ -53,8 +53,7 @@
|
|
|
53
53
|
"default": "./dist/index.js"
|
|
54
54
|
},
|
|
55
55
|
"./dist/*": "./dist/*",
|
|
56
|
-
"./artifacts/*": "./artifacts/*"
|
|
57
|
-
"./*": "./*.ts"
|
|
56
|
+
"./artifacts/*": "./artifacts/*"
|
|
58
57
|
},
|
|
59
58
|
"private": false,
|
|
60
59
|
"engines": {
|
package/types/style.d.ts
CHANGED
|
@@ -40,3 +40,7 @@ declare module '*.mdx' {
|
|
|
40
40
|
const component: any;
|
|
41
41
|
export default component;
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
// `reset-css` ships only `reset.css` (no `.d.ts`). TS6 refuses bare
|
|
45
|
+
// side-effect imports without declarations, so we declare the module here.
|
|
46
|
+
declare module 'reset-css';
|
|
File without changes
|