@teambit/workspace.modules.node-modules-linker 0.0.273 → 0.0.275

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.
@@ -116,7 +116,7 @@ function getNameWithoutInternalPath(workspace: Workspace, relativeEntry: Relativ
116
116
  if (!componentMap) return importSource;
117
117
  const rootDir = componentMap.rootDir;
118
118
  if (!rootDir) return importSource;
119
- const mainFile = componentMap.trackDir ? componentMap.mainFile : pathJoinLinux(rootDir, componentMap.mainFile);
119
+ const mainFile = pathJoinLinux(rootDir, componentMap.mainFile);
120
120
  const filePathRelativeToWorkspace = relativeEntry.relativePath.sourceRelativePath;
121
121
  if (filePathRelativeToWorkspace === mainFile) {
122
122
  return importSource;
@@ -141,7 +141,7 @@ function getNameWithoutInternalPath(workspace, relativeEntry) {
141
141
  if (!componentMap) return importSource;
142
142
  const rootDir = componentMap.rootDir;
143
143
  if (!rootDir) return importSource;
144
- const mainFile = componentMap.trackDir ? componentMap.mainFile : (0, _legacy().pathJoinLinux)(rootDir, componentMap.mainFile);
144
+ const mainFile = (0, _legacy().pathJoinLinux)(rootDir, componentMap.mainFile);
145
145
  const filePathRelativeToWorkspace = relativeEntry.relativePath.sourceRelativePath;
146
146
  if (filePathRelativeToWorkspace === mainFile) {
147
147
  return importSource;
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentIssues","_componentId","_legacy","_pkgModules","_component","e","__esModule","default","changeCodeFromRelativeToModulePaths","workspace","bitIds","components","loadComponents","componentsWithRelativeIssues","filter","c","state","issues","getIssue","IssuesClasses","RelativeComponentsAuthored","dataToPersist","DataToPersist","codemodResults","Promise","all","map","component","files","warnings","codemodComponent","addManyFiles","id","changedFiles","f","relative","persistAllToFS","idsToReload","length","reloadComponents","compIds","clearAllComponentsCache","failedComps","toString","join","Error","componentsIds","ComponentIdList","fromArray","listIds","getMany","filesystem","file","relativeInstances","pathNormalizeToLinux","fileBefore","contents","newFileString","relativeEntry","componentId","requiredComponent","get","consumerComp","_consumer","packageName","componentIdToPackageName","cssFamily","isCss","includes","extname","packageNameSupportCss","stringToReplace","getNameWithoutInternalPath","replacePackageName","Buffer","from","push","importSource","componentMap","consumer","bitMap","getComponentIfExist","rootDir","mainFile","trackDir","pathJoinLinux","filePathRelativeToWorkspace","relativePath","sourceRelativePath","internalPath","pathRelativeLinux","removeLastOccurrence","str","toRemove","replace","RegExp","endsWith","internalPathNoExt","path","internalPathNoIndex"],"sources":["codemod-components.ts"],"sourcesContent":["import path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport { IssuesClasses, RelativeComponentsAuthoredEntry } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { pathJoinLinux, pathNormalizeToLinux, pathRelativeLinux, replacePackageName } from '@teambit/legacy.utils';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { DataToPersist, SourceFile } from '@teambit/component.sources';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\n\nexport type CodemodResult = {\n id: ComponentID;\n changedFiles: string[];\n warnings?: string[];\n};\n\nexport async function changeCodeFromRelativeToModulePaths(\n workspace: Workspace,\n bitIds: ComponentID[]\n): Promise<CodemodResult[]> {\n const components = await loadComponents(workspace, bitIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n const dataToPersist = new DataToPersist();\n const codemodResults = await Promise.all(\n componentsWithRelativeIssues.map(async (component) => {\n const { files, warnings } = await codemodComponent(workspace, component);\n dataToPersist.addManyFiles(files);\n return { id: component.id, changedFiles: files.map((f) => f.relative), warnings };\n })\n );\n await dataToPersist.persistAllToFS();\n const idsToReload = codemodResults.filter((c) => !c.warnings || c.warnings.length === 0).map((c) => c.id);\n await reloadComponents(workspace, idsToReload);\n\n return codemodResults.filter((c) => c.changedFiles.length || c.warnings);\n}\n\nasync function reloadComponents(workspace: Workspace, compIds: ComponentID[]) {\n workspace.clearAllComponentsCache();\n if (!compIds.length) return;\n const components = await loadComponents(workspace, compIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n if (componentsWithRelativeIssues.length) {\n const failedComps = componentsWithRelativeIssues.map((c) => c.id.toString()).join(', ');\n throw new Error(`failed rewiring the following components: ${failedComps}`);\n }\n}\n\nasync function loadComponents(workspace: Workspace, bitIds: ComponentID[]): Promise<Component[]> {\n const componentsIds = bitIds.length ? ComponentIdList.fromArray(bitIds) : await workspace.listIds();\n const components = await workspace.getMany(componentsIds);\n\n return components;\n}\n\nasync function codemodComponent(\n workspace: Workspace,\n component: Component\n): Promise<{ files: SourceFile[]; warnings?: string[] }> {\n const issues = component.state.issues;\n const files: SourceFile[] = [];\n if (!issues || !issues.getIssue(IssuesClasses.RelativeComponentsAuthored)) return { files };\n const warnings: string[] = [];\n await Promise.all(\n component.filesystem.files.map(async (file: SourceFile) => {\n const relativeInstances = issues.getIssue(IssuesClasses.RelativeComponentsAuthored)?.data[\n pathNormalizeToLinux(file.relative)\n ];\n if (!relativeInstances) return;\n // @ts-ignore\n const fileBefore = file.contents.toString() as string;\n let newFileString = fileBefore;\n await Promise.all(\n relativeInstances.map(async (relativeEntry: RelativeComponentsAuthoredEntry) => {\n const id = relativeEntry.componentId;\n const requiredComponent = await workspace.get(id);\n const consumerComp = requiredComponent.state._consumer as ConsumerComponent;\n const packageName = componentIdToPackageName({ ...consumerComp, id });\n const cssFamily = ['.css', '.scss', '.less', '.sass'];\n const isCss = cssFamily.includes(file.extname);\n const packageNameSupportCss = isCss ? `~${packageName}` : packageName;\n const stringToReplace = getNameWithoutInternalPath(workspace, relativeEntry);\n // @todo: the \"dist\" should be replaced by the compiler dist-dir.\n // newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss, 'dist');\n newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss);\n })\n );\n if (fileBefore !== newFileString) {\n // @ts-ignore\n file.contents = Buffer.from(newFileString);\n files.push(file);\n }\n })\n );\n return { files, warnings };\n}\n\n/**\n * e.g.\n * importSource: '../workspace/workspace.ui'\n * sourceRelativePath: 'extensions/workspace/workspace.ui.tsx'\n * rootDir in .bitmap: 'extensions/workspace'.\n *\n * expected to return \"../workspace\", as this is the path to the package root without the internal path.\n *\n * eventually, only this string is replaced by the new package-name and the internal-path part\n * remains intact. ('../workspace/workspace.ui' => '@bit/workspace/workspace.ui').\n */\nfunction getNameWithoutInternalPath(workspace: Workspace, relativeEntry: RelativeComponentsAuthoredEntry): string {\n const importSource = relativeEntry.importSource;\n const componentMap = workspace.consumer.bitMap.getComponentIfExist(relativeEntry.componentId);\n if (!componentMap) return importSource;\n const rootDir = componentMap.rootDir;\n if (!rootDir) return importSource;\n const mainFile = componentMap.trackDir ? componentMap.mainFile : pathJoinLinux(rootDir, componentMap.mainFile);\n const filePathRelativeToWorkspace = relativeEntry.relativePath.sourceRelativePath;\n if (filePathRelativeToWorkspace === mainFile) {\n return importSource;\n }\n // the importSource is not the main-file but an internal file, remove the internal part.\n const internalPath = pathRelativeLinux(rootDir, filePathRelativeToWorkspace);\n const removeLastOccurrence = (str, toRemove) => str.replace(new RegExp(`/${toRemove}$`), '');\n if (importSource.endsWith(internalPath)) {\n return removeLastOccurrence(importSource, internalPath);\n }\n const internalPathNoExt = internalPath.replace(path.extname(internalPath), '');\n if (importSource.endsWith(internalPathNoExt)) {\n return removeLastOccurrence(importSource, internalPathNoExt);\n }\n const internalPathNoIndex = removeLastOccurrence(internalPathNoExt, 'index');\n if (importSource.endsWith(internalPathNoIndex)) {\n return removeLastOccurrence(importSource, internalPathNoIndex);\n }\n\n // unable to find anything useful. just return the importSource.\n return importSource;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,iBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,gBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,aAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,YAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,WAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,WAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,UAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuE,SAAAC,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAShE,eAAeG,mCAAmCA,CACvDC,SAAoB,EACpBC,MAAqB,EACK;EAC1B,MAAMC,UAAU,GAAG,MAAMC,cAAc,CAACH,SAAS,EAAEC,MAAM,CAAC;EAC1D,MAAMG,4BAA4B,GAAGF,UAAU,CAACG,MAAM,CACnDC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,MAAM,IAAIF,CAAC,CAACC,KAAK,CAACC,MAAM,CAACC,QAAQ,CAACC,gCAAa,CAACC,0BAA0B,CAC3F,CAAC;EACD,MAAMC,aAAa,GAAG,KAAIC,0BAAa,EAAC,CAAC;EACzC,MAAMC,cAAc,GAAG,MAAMC,OAAO,CAACC,GAAG,CACtCZ,4BAA4B,CAACa,GAAG,CAAC,MAAOC,SAAS,IAAK;IACpD,MAAM;MAAEC,KAAK;MAAEC;IAAS,CAAC,GAAG,MAAMC,gBAAgB,CAACrB,SAAS,EAAEkB,SAAS,CAAC;IACxEN,aAAa,CAACU,YAAY,CAACH,KAAK,CAAC;IACjC,OAAO;MAAEI,EAAE,EAAEL,SAAS,CAACK,EAAE;MAAEC,YAAY,EAAEL,KAAK,CAACF,GAAG,CAAEQ,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC;MAAEN;IAAS,CAAC;EACnF,CAAC,CACH,CAAC;EACD,MAAMR,aAAa,CAACe,cAAc,CAAC,CAAC;EACpC,MAAMC,WAAW,GAAGd,cAAc,CAACT,MAAM,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACc,QAAQ,IAAId,CAAC,CAACc,QAAQ,CAACS,MAAM,KAAK,CAAC,CAAC,CAACZ,GAAG,CAAEX,CAAC,IAAKA,CAAC,CAACiB,EAAE,CAAC;EACzG,MAAMO,gBAAgB,CAAC9B,SAAS,EAAE4B,WAAW,CAAC;EAE9C,OAAOd,cAAc,CAACT,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACkB,YAAY,CAACK,MAAM,IAAIvB,CAAC,CAACc,QAAQ,CAAC;AAC1E;AAEA,eAAeU,gBAAgBA,CAAC9B,SAAoB,EAAE+B,OAAsB,EAAE;EAC5E/B,SAAS,CAACgC,uBAAuB,CAAC,CAAC;EACnC,IAAI,CAACD,OAAO,CAACF,MAAM,EAAE;EACrB,MAAM3B,UAAU,GAAG,MAAMC,cAAc,CAACH,SAAS,EAAE+B,OAAO,CAAC;EAC3D,MAAM3B,4BAA4B,GAAGF,UAAU,CAACG,MAAM,CACnDC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,MAAM,IAAIF,CAAC,CAACC,KAAK,CAACC,MAAM,CAACC,QAAQ,CAACC,gCAAa,CAACC,0BAA0B,CAC3F,CAAC;EACD,IAAIP,4BAA4B,CAACyB,MAAM,EAAE;IACvC,MAAMI,WAAW,GAAG7B,4BAA4B,CAACa,GAAG,CAAEX,CAAC,IAAKA,CAAC,CAACiB,EAAE,CAACW,QAAQ,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACvF,MAAM,IAAIC,KAAK,CAAC,6CAA6CH,WAAW,EAAE,CAAC;EAC7E;AACF;AAEA,eAAe9B,cAAcA,CAACH,SAAoB,EAAEC,MAAqB,EAAwB;EAC/F,MAAMoC,aAAa,GAAGpC,MAAM,CAAC4B,MAAM,GAAGS,8BAAe,CAACC,SAAS,CAACtC,MAAM,CAAC,GAAG,MAAMD,SAAS,CAACwC,OAAO,CAAC,CAAC;EACnG,MAAMtC,UAAU,GAAG,MAAMF,SAAS,CAACyC,OAAO,CAACJ,aAAa,CAAC;EAEzD,OAAOnC,UAAU;AACnB;AAEA,eAAemB,gBAAgBA,CAC7BrB,SAAoB,EACpBkB,SAAoB,EACmC;EACvD,MAAMV,MAAM,GAAGU,SAAS,CAACX,KAAK,CAACC,MAAM;EACrC,MAAMW,KAAmB,GAAG,EAAE;EAC9B,IAAI,CAACX,MAAM,IAAI,CAACA,MAAM,CAACC,QAAQ,CAACC,gCAAa,CAACC,0BAA0B,CAAC,EAAE,OAAO;IAAEQ;EAAM,CAAC;EAC3F,MAAMC,QAAkB,GAAG,EAAE;EAC7B,MAAML,OAAO,CAACC,GAAG,CACfE,SAAS,CAACwB,UAAU,CAACvB,KAAK,CAACF,GAAG,CAAC,MAAO0B,IAAgB,IAAK;IACzD,MAAMC,iBAAiB,GAAGpC,MAAM,CAACC,QAAQ,CAACC,gCAAa,CAACC,0BAA0B,CAAC,EAAEvB,IAAI,CACvF,IAAAyD,8BAAoB,EAACF,IAAI,CAACjB,QAAQ,CAAC,CACpC;IACD,IAAI,CAACkB,iBAAiB,EAAE;IACxB;IACA,MAAME,UAAU,GAAGH,IAAI,CAACI,QAAQ,CAACb,QAAQ,CAAC,CAAW;IACrD,IAAIc,aAAa,GAAGF,UAAU;IAC9B,MAAM/B,OAAO,CAACC,GAAG,CACf4B,iBAAiB,CAAC3B,GAAG,CAAC,MAAOgC,aAA8C,IAAK;MAC9E,MAAM1B,EAAE,GAAG0B,aAAa,CAACC,WAAW;MACpC,MAAMC,iBAAiB,GAAG,MAAMnD,SAAS,CAACoD,GAAG,CAAC7B,EAAE,CAAC;MACjD,MAAM8B,YAAY,GAAGF,iBAAiB,CAAC5C,KAAK,CAAC+C,SAA8B;MAC3E,MAAMC,WAAW,GAAG,IAAAC,sCAAwB,EAAC;QAAE,GAAGH,YAAY;QAAE9B;MAAG,CAAC,CAAC;MACrE,MAAMkC,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;MACrD,MAAMC,KAAK,GAAGD,SAAS,CAACE,QAAQ,CAAChB,IAAI,CAACiB,OAAO,CAAC;MAC9C,MAAMC,qBAAqB,GAAGH,KAAK,GAAG,IAAIH,WAAW,EAAE,GAAGA,WAAW;MACrE,MAAMO,eAAe,GAAGC,0BAA0B,CAAC/D,SAAS,EAAEiD,aAAa,CAAC;MAC5E;MACA;MACAD,aAAa,GAAG,IAAAgB,4BAAkB,EAAChB,aAAa,EAAEc,eAAe,EAAED,qBAAqB,CAAC;IAC3F,CAAC,CACH,CAAC;IACD,IAAIf,UAAU,KAAKE,aAAa,EAAE;MAChC;MACAL,IAAI,CAACI,QAAQ,GAAGkB,MAAM,CAACC,IAAI,CAAClB,aAAa,CAAC;MAC1C7B,KAAK,CAACgD,IAAI,CAACxB,IAAI,CAAC;IAClB;EACF,CAAC,CACH,CAAC;EACD,OAAO;IAAExB,KAAK;IAAEC;EAAS,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2C,0BAA0BA,CAAC/D,SAAoB,EAAEiD,aAA8C,EAAU;EAChH,MAAMmB,YAAY,GAAGnB,aAAa,CAACmB,YAAY;EAC/C,MAAMC,YAAY,GAAGrE,SAAS,CAACsE,QAAQ,CAACC,MAAM,CAACC,mBAAmB,CAACvB,aAAa,CAACC,WAAW,CAAC;EAC7F,IAAI,CAACmB,YAAY,EAAE,OAAOD,YAAY;EACtC,MAAMK,OAAO,GAAGJ,YAAY,CAACI,OAAO;EACpC,IAAI,CAACA,OAAO,EAAE,OAAOL,YAAY;EACjC,MAAMM,QAAQ,GAAGL,YAAY,CAACM,QAAQ,GAAGN,YAAY,CAACK,QAAQ,GAAG,IAAAE,uBAAa,EAACH,OAAO,EAAEJ,YAAY,CAACK,QAAQ,CAAC;EAC9G,MAAMG,2BAA2B,GAAG5B,aAAa,CAAC6B,YAAY,CAACC,kBAAkB;EACjF,IAAIF,2BAA2B,KAAKH,QAAQ,EAAE;IAC5C,OAAON,YAAY;EACrB;EACA;EACA,MAAMY,YAAY,GAAG,IAAAC,2BAAiB,EAACR,OAAO,EAAEI,2BAA2B,CAAC;EAC5E,MAAMK,oBAAoB,GAAGA,CAACC,GAAG,EAAEC,QAAQ,KAAKD,GAAG,CAACE,OAAO,CAAC,IAAIC,MAAM,CAAC,IAAIF,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC;EAC5F,IAAIhB,YAAY,CAACmB,QAAQ,CAACP,YAAY,CAAC,EAAE;IACvC,OAAOE,oBAAoB,CAACd,YAAY,EAAEY,YAAY,CAAC;EACzD;EACA,MAAMQ,iBAAiB,GAAGR,YAAY,CAACK,OAAO,CAACI,eAAI,CAAC7B,OAAO,CAACoB,YAAY,CAAC,EAAE,EAAE,CAAC;EAC9E,IAAIZ,YAAY,CAACmB,QAAQ,CAACC,iBAAiB,CAAC,EAAE;IAC5C,OAAON,oBAAoB,CAACd,YAAY,EAAEoB,iBAAiB,CAAC;EAC9D;EACA,MAAME,mBAAmB,GAAGR,oBAAoB,CAACM,iBAAiB,EAAE,OAAO,CAAC;EAC5E,IAAIpB,YAAY,CAACmB,QAAQ,CAACG,mBAAmB,CAAC,EAAE;IAC9C,OAAOR,oBAAoB,CAACd,YAAY,EAAEsB,mBAAmB,CAAC;EAChE;;EAEA;EACA,OAAOtB,YAAY;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","_interopRequireDefault","require","_componentIssues","_componentId","_legacy","_pkgModules","_component","e","__esModule","default","changeCodeFromRelativeToModulePaths","workspace","bitIds","components","loadComponents","componentsWithRelativeIssues","filter","c","state","issues","getIssue","IssuesClasses","RelativeComponentsAuthored","dataToPersist","DataToPersist","codemodResults","Promise","all","map","component","files","warnings","codemodComponent","addManyFiles","id","changedFiles","f","relative","persistAllToFS","idsToReload","length","reloadComponents","compIds","clearAllComponentsCache","failedComps","toString","join","Error","componentsIds","ComponentIdList","fromArray","listIds","getMany","filesystem","file","relativeInstances","pathNormalizeToLinux","fileBefore","contents","newFileString","relativeEntry","componentId","requiredComponent","get","consumerComp","_consumer","packageName","componentIdToPackageName","cssFamily","isCss","includes","extname","packageNameSupportCss","stringToReplace","getNameWithoutInternalPath","replacePackageName","Buffer","from","push","importSource","componentMap","consumer","bitMap","getComponentIfExist","rootDir","mainFile","pathJoinLinux","filePathRelativeToWorkspace","relativePath","sourceRelativePath","internalPath","pathRelativeLinux","removeLastOccurrence","str","toRemove","replace","RegExp","endsWith","internalPathNoExt","path","internalPathNoIndex"],"sources":["codemod-components.ts"],"sourcesContent":["import path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport { IssuesClasses, RelativeComponentsAuthoredEntry } from '@teambit/component-issues';\nimport { Component } from '@teambit/component';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { pathJoinLinux, pathNormalizeToLinux, pathRelativeLinux, replacePackageName } from '@teambit/legacy.utils';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { DataToPersist, SourceFile } from '@teambit/component.sources';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\n\nexport type CodemodResult = {\n id: ComponentID;\n changedFiles: string[];\n warnings?: string[];\n};\n\nexport async function changeCodeFromRelativeToModulePaths(\n workspace: Workspace,\n bitIds: ComponentID[]\n): Promise<CodemodResult[]> {\n const components = await loadComponents(workspace, bitIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n const dataToPersist = new DataToPersist();\n const codemodResults = await Promise.all(\n componentsWithRelativeIssues.map(async (component) => {\n const { files, warnings } = await codemodComponent(workspace, component);\n dataToPersist.addManyFiles(files);\n return { id: component.id, changedFiles: files.map((f) => f.relative), warnings };\n })\n );\n await dataToPersist.persistAllToFS();\n const idsToReload = codemodResults.filter((c) => !c.warnings || c.warnings.length === 0).map((c) => c.id);\n await reloadComponents(workspace, idsToReload);\n\n return codemodResults.filter((c) => c.changedFiles.length || c.warnings);\n}\n\nasync function reloadComponents(workspace: Workspace, compIds: ComponentID[]) {\n workspace.clearAllComponentsCache();\n if (!compIds.length) return;\n const components = await loadComponents(workspace, compIds);\n const componentsWithRelativeIssues = components.filter(\n (c) => c.state.issues && c.state.issues.getIssue(IssuesClasses.RelativeComponentsAuthored)\n );\n if (componentsWithRelativeIssues.length) {\n const failedComps = componentsWithRelativeIssues.map((c) => c.id.toString()).join(', ');\n throw new Error(`failed rewiring the following components: ${failedComps}`);\n }\n}\n\nasync function loadComponents(workspace: Workspace, bitIds: ComponentID[]): Promise<Component[]> {\n const componentsIds = bitIds.length ? ComponentIdList.fromArray(bitIds) : await workspace.listIds();\n const components = await workspace.getMany(componentsIds);\n\n return components;\n}\n\nasync function codemodComponent(\n workspace: Workspace,\n component: Component\n): Promise<{ files: SourceFile[]; warnings?: string[] }> {\n const issues = component.state.issues;\n const files: SourceFile[] = [];\n if (!issues || !issues.getIssue(IssuesClasses.RelativeComponentsAuthored)) return { files };\n const warnings: string[] = [];\n await Promise.all(\n component.filesystem.files.map(async (file: SourceFile) => {\n const relativeInstances = issues.getIssue(IssuesClasses.RelativeComponentsAuthored)?.data[\n pathNormalizeToLinux(file.relative)\n ];\n if (!relativeInstances) return;\n // @ts-ignore\n const fileBefore = file.contents.toString() as string;\n let newFileString = fileBefore;\n await Promise.all(\n relativeInstances.map(async (relativeEntry: RelativeComponentsAuthoredEntry) => {\n const id = relativeEntry.componentId;\n const requiredComponent = await workspace.get(id);\n const consumerComp = requiredComponent.state._consumer as ConsumerComponent;\n const packageName = componentIdToPackageName({ ...consumerComp, id });\n const cssFamily = ['.css', '.scss', '.less', '.sass'];\n const isCss = cssFamily.includes(file.extname);\n const packageNameSupportCss = isCss ? `~${packageName}` : packageName;\n const stringToReplace = getNameWithoutInternalPath(workspace, relativeEntry);\n // @todo: the \"dist\" should be replaced by the compiler dist-dir.\n // newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss, 'dist');\n newFileString = replacePackageName(newFileString, stringToReplace, packageNameSupportCss);\n })\n );\n if (fileBefore !== newFileString) {\n // @ts-ignore\n file.contents = Buffer.from(newFileString);\n files.push(file);\n }\n })\n );\n return { files, warnings };\n}\n\n/**\n * e.g.\n * importSource: '../workspace/workspace.ui'\n * sourceRelativePath: 'extensions/workspace/workspace.ui.tsx'\n * rootDir in .bitmap: 'extensions/workspace'.\n *\n * expected to return \"../workspace\", as this is the path to the package root without the internal path.\n *\n * eventually, only this string is replaced by the new package-name and the internal-path part\n * remains intact. ('../workspace/workspace.ui' => '@bit/workspace/workspace.ui').\n */\nfunction getNameWithoutInternalPath(workspace: Workspace, relativeEntry: RelativeComponentsAuthoredEntry): string {\n const importSource = relativeEntry.importSource;\n const componentMap = workspace.consumer.bitMap.getComponentIfExist(relativeEntry.componentId);\n if (!componentMap) return importSource;\n const rootDir = componentMap.rootDir;\n if (!rootDir) return importSource;\n const mainFile = pathJoinLinux(rootDir, componentMap.mainFile);\n const filePathRelativeToWorkspace = relativeEntry.relativePath.sourceRelativePath;\n if (filePathRelativeToWorkspace === mainFile) {\n return importSource;\n }\n // the importSource is not the main-file but an internal file, remove the internal part.\n const internalPath = pathRelativeLinux(rootDir, filePathRelativeToWorkspace);\n const removeLastOccurrence = (str, toRemove) => str.replace(new RegExp(`/${toRemove}$`), '');\n if (importSource.endsWith(internalPath)) {\n return removeLastOccurrence(importSource, internalPath);\n }\n const internalPathNoExt = internalPath.replace(path.extname(internalPath), '');\n if (importSource.endsWith(internalPathNoExt)) {\n return removeLastOccurrence(importSource, internalPathNoExt);\n }\n const internalPathNoIndex = removeLastOccurrence(internalPathNoExt, 'index');\n if (importSource.endsWith(internalPathNoIndex)) {\n return removeLastOccurrence(importSource, internalPathNoIndex);\n }\n\n // unable to find anything useful. just return the importSource.\n return importSource;\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace.modules.node-modules-linker",
3
- "version": "0.0.273",
3
+ "version": "0.0.275",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/modules/node-modules-linker",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "modules/node-modules-linker",
9
- "version": "0.0.273"
9
+ "version": "0.0.275"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -15,14 +15,14 @@
15
15
  "@teambit/component-id": "1.2.3",
16
16
  "@teambit/workspace.root-components": "1.0.0",
17
17
  "@teambit/component-issues": "0.0.157",
18
- "@teambit/component.sources": "0.0.97",
19
- "@teambit/legacy.consumer-component": "0.0.46",
18
+ "@teambit/component.sources": "0.0.99",
19
+ "@teambit/legacy.consumer-component": "0.0.48",
20
20
  "@teambit/legacy.utils": "0.0.19",
21
- "@teambit/pkg.modules.component-package-name": "0.0.52",
21
+ "@teambit/pkg.modules.component-package-name": "0.0.54",
22
22
  "@teambit/component-package-version": "0.0.438",
23
- "@teambit/legacy.bit-map": "0.0.102",
23
+ "@teambit/legacy.bit-map": "0.0.104",
24
24
  "@teambit/legacy.constants": "0.0.11",
25
- "@teambit/legacy.consumer": "0.0.45",
25
+ "@teambit/legacy.consumer": "0.0.47",
26
26
  "@teambit/legacy.logger": "0.0.17",
27
27
  "@teambit/toolbox.path.path": "0.0.8"
28
28
  },