@teambit/config 0.0.396 → 0.0.400

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/config.d.ts CHANGED
@@ -15,6 +15,16 @@ export declare class Config {
15
15
  get path(): PathOsBased | undefined;
16
16
  get config(): HostConfig | undefined;
17
17
  static loadIfExist(dirPath: PathOsBased): Promise<Config | undefined | any>;
18
+ /**
19
+ * Ensure the given directory has a workspace config
20
+ * Load if existing and create new if not
21
+ *
22
+ * @static
23
+ * @param {PathOsBasedAbsolute} dirPath
24
+ * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
25
+ * @returns {Promise<WorkspaceConfig>}
26
+ * @memberof WorkspaceConfig
27
+ */
18
28
  static ensureWorkspace(dirPath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps, legacyInitProps?: LegacyInitProps): Promise<Config>;
19
29
  get extensions(): ExtensionDataList | undefined;
20
30
  extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined;
@@ -89,6 +89,8 @@ async function provideConfig() {
89
89
 
90
90
  _workspaceConfig().default.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(config));
91
91
 
92
+ _workspaceConfig().default.registerOnWorkspaceConfigReset((dirPath, resetHard) => _workspaceConfig2().WorkspaceConfig.reset(dirPath, resetHard));
93
+
92
94
  return config;
93
95
  } // This is used to handle cases where the user run bit init --reset / --reset-hard
94
96
  // during this time we don't yet know if the user ask for init reset so we catch it here
@@ -1 +1 @@
1
- {"version":3,"sources":["config.provider.ts"],"names":["provideConfig","LegacyWorkspaceConfig","registerOnWorkspaceConfigIsExist","onLegacyWorkspaceConfigIsExist","registerOnWorkspaceConfigEnsuring","onLegacyWorkspaceEnsure","consumerInfo","process","cwd","config","tryToGetConfig","path","registerOnWorkspaceConfigLoading","onLegacyWorkspaceLoad","dirPath","Config","loadIfExist","err","InvalidBitJson","InvalidConfigFile","WorkspaceConfig","isExist","workspaceConfig","normalize","dirname","toLegacy","newConfig","type","undefined","func","standAlone","legacyWorkspaceConfigProps","workspaceConfigProps","legacyInitProps","ensureWorkspace"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMe,eAAeA,aAAf,GAA+B;AAC5CC,6BAAsBC,gCAAtB,CAAuDC,8BAA8B,EAArF;;AACAF,6BAAsBG,iCAAtB,CAAwDC,uBAAuB,EAA/E;;AACA,QAAMC,YAAY,GAAG,MAAM,iCAAgBC,OAAO,CAACC,GAAR,EAAhB,CAA3B;AACA,QAAMC,MAAc,GAAG,MAAMC,cAAc,CAAC,CAAAJ,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEK,IAAd,KAAsBJ,OAAO,CAACC,GAAR,EAAvB,CAA3C;;AACAP,6BAAsBW,gCAAtB,CAAuDC,qBAAqB,CAACJ,MAAD,CAA5E;;AACA,SAAOA,MAAP;AACD,C,CAED;AACA;AACA;AACA;;;AACA,eAAeC,cAAf,CAA8BI,OAA9B,EAAsE;AACpE,MAAI;AACF,UAAML,MAAc,GAAG,MAAMM,iBAAOC,WAAP,CAAmBF,OAAnB,CAA7B;AACA,WAAOL,MAAP;AACD,GAHD,CAGE,OAAOQ,GAAP,EAAiB;AACjB,QAAI,EAAEA,GAAG,YAAYC,4BAAjB,KAAoC,EAAED,GAAG,YAAYE,4BAAjB,CAAxC,EAA6E;AAC3E,YAAMF,GAAN;AACD;;AACD,WAAO,EAAP;AACD;AACF;;AAED,SAASd,8BAAT,GAA0E;AACxE,SAAO,MAAOW,OAAP,IAA8D;AACnE,WAAOM,oCAAgBC,OAAhB,CAAwBP,OAAxB,CAAP;AACD,GAFD;AAGD;;AAED,SAASD,qBAAT,CAA+BJ,MAA/B,EAA6E;AAC3E,SAAO,MAAOK,OAAP,IAA6E;AAClF,QAAIL,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEa,eAAR,IAA2Bb,MAAM,CAACE,IAAlC,IAA0CA,gBAAKY,SAAL,CAAeT,OAAf,MAA4BH,gBAAKa,OAAL,CAAaf,MAAM,CAACE,IAApB,CAA1E,EAAqG;AACnG,aAAQF,MAAM,CAACA,MAAR,CAAmCgB,QAAnC,EAAP;AACD;;AACD,UAAMC,SAAS,GAAG,MAAMX,iBAAOC,WAAP,CAAmBF,OAAnB,CAAxB;;AACA,QAAIY,SAAS,IAAIA,SAAS,CAACC,IAAV,KAAmB,WAApC,EAAiD;AAC/C,aAAQD,SAAS,CAACjB,MAAX,CAAsCgB,QAAtC,EAAP;AACD;;AACD,WAAOG,SAAP;AACD,GATD;AAUD;;AAED,SAASvB,uBAAT,GAAkE;AAChE,QAAMwB,IAAmC,GAAG,OAC1Cf,OAD0C,EAE1CgB,UAAU,GAAG,KAF6B,EAG1CC,0BAH0C,KAIvC;AACH,QAAIC,oBAAJ;;AACA,QAAID,0BAAJ,EAAgC;AAC9BC,MAAAA,oBAAoB,GAAG,0DAAiCD,0BAAjC,CAAvB;AACD;;AACD,UAAME,eAAgC,GAAG;AACvCH,MAAAA;AADuC,KAAzC;AAGA,UAAMrB,MAAM,GAAG,MAAMM,iBAAOmB,eAAP,CAAuBpB,OAAvB,EAAgCkB,oBAAhC,EAAsDC,eAAtD,CAArB;AACA,UAAMX,eAAe,GAAGb,MAAM,CAACA,MAA/B;AACA,WAAQa,eAAD,CAAqCG,QAArC,EAAP;AACD,GAfD;;AAgBA,SAAOI,IAAP;AACD","sourcesContent":["import { getConsumerInfo } from '@teambit/legacy/dist/consumer';\nimport { ILegacyWorkspaceConfig, LegacyWorkspaceConfigProps } from '@teambit/legacy/dist/consumer/config';\nimport { InvalidBitJson } from '@teambit/legacy/dist/consumer/config/exceptions';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigEnsureFunction,\n WorkspaceConfigIsExistFunction,\n WorkspaceConfigLoadFunction,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { PathOsBased } from '@teambit/legacy/dist/utils/path';\nimport path from 'path';\n\nimport { Config } from './config';\nimport InvalidConfigFile from './exceptions/invalid-config-file';\nimport { LegacyInitProps, transformLegacyPropsToExtensions, WorkspaceConfig } from './workspace-config';\n\nexport type ConfigDeps = [];\n\nexport type ConfigConfig = {};\n\nexport default async function provideConfig() {\n LegacyWorkspaceConfig.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());\n const consumerInfo = await getConsumerInfo(process.cwd());\n const config: Config = await tryToGetConfig(consumerInfo?.path || process.cwd());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(config));\n return config;\n}\n\n// This is used to handle cases where the user run bit init --reset / --reset-hard\n// during this time we don't yet know if the user ask for init reset so we catch it here\n// other places should handle cases when there is no config\n// TODO: change the {} to some maybe type\nasync function tryToGetConfig(dirPath: string): Promise<Config | any> {\n try {\n const config: Config = await Config.loadIfExist(dirPath);\n return config;\n } catch (err: any) {\n if (!(err instanceof InvalidBitJson) && !(err instanceof InvalidConfigFile)) {\n throw err;\n }\n return {};\n }\n}\n\nfunction onLegacyWorkspaceConfigIsExist(): WorkspaceConfigIsExistFunction {\n return async (dirPath: PathOsBased): Promise<boolean | undefined> => {\n return WorkspaceConfig.isExist(dirPath);\n };\n}\n\nfunction onLegacyWorkspaceLoad(config?: Config): WorkspaceConfigLoadFunction {\n return async (dirPath: PathOsBased): Promise<ILegacyWorkspaceConfig | undefined> => {\n if (config?.workspaceConfig && config.path && path.normalize(dirPath) === path.dirname(config.path)) {\n return (config.config as WorkspaceConfig).toLegacy();\n }\n const newConfig = await Config.loadIfExist(dirPath);\n if (newConfig && newConfig.type === 'workspace') {\n return (newConfig.config as WorkspaceConfig).toLegacy();\n }\n return undefined;\n };\n}\n\nfunction onLegacyWorkspaceEnsure(): WorkspaceConfigEnsureFunction {\n const func: WorkspaceConfigEnsureFunction = async (\n dirPath: string,\n standAlone = false,\n legacyWorkspaceConfigProps?: LegacyWorkspaceConfigProps\n ) => {\n let workspaceConfigProps;\n if (legacyWorkspaceConfigProps) {\n workspaceConfigProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);\n }\n const legacyInitProps: LegacyInitProps = {\n standAlone,\n };\n const config = await Config.ensureWorkspace(dirPath, workspaceConfigProps, legacyInitProps);\n const workspaceConfig = config.config;\n return (workspaceConfig as WorkspaceConfig).toLegacy();\n };\n return func;\n}\n"]}
1
+ {"version":3,"sources":["config.provider.ts"],"names":["provideConfig","LegacyWorkspaceConfig","registerOnWorkspaceConfigIsExist","onLegacyWorkspaceConfigIsExist","registerOnWorkspaceConfigEnsuring","onLegacyWorkspaceEnsure","consumerInfo","process","cwd","config","tryToGetConfig","path","registerOnWorkspaceConfigLoading","onLegacyWorkspaceLoad","registerOnWorkspaceConfigReset","dirPath","resetHard","WorkspaceConfig","reset","Config","loadIfExist","err","InvalidBitJson","InvalidConfigFile","isExist","workspaceConfig","normalize","dirname","toLegacy","newConfig","type","undefined","func","standAlone","legacyWorkspaceConfigProps","workspaceConfigProps","legacyInitProps","ensureWorkspace"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMe,eAAeA,aAAf,GAA+B;AAC5CC,6BAAsBC,gCAAtB,CAAuDC,8BAA8B,EAArF;;AACAF,6BAAsBG,iCAAtB,CAAwDC,uBAAuB,EAA/E;;AACA,QAAMC,YAAY,GAAG,MAAM,iCAAgBC,OAAO,CAACC,GAAR,EAAhB,CAA3B;AACA,QAAMC,MAAc,GAAG,MAAMC,cAAc,CAAC,CAAAJ,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEK,IAAd,KAAsBJ,OAAO,CAACC,GAAR,EAAvB,CAA3C;;AACAP,6BAAsBW,gCAAtB,CAAuDC,qBAAqB,CAACJ,MAAD,CAA5E;;AACAR,6BAAsBa,8BAAtB,CAAqD,CAACC,OAAD,EAAUC,SAAV,KACnDC,oCAAgBC,KAAhB,CAAsBH,OAAtB,EAA+BC,SAA/B,CADF;;AAGA,SAAOP,MAAP;AACD,C,CAED;AACA;AACA;AACA;;;AACA,eAAeC,cAAf,CAA8BK,OAA9B,EAAsE;AACpE,MAAI;AACF,UAAMN,MAAc,GAAG,MAAMU,iBAAOC,WAAP,CAAmBL,OAAnB,CAA7B;AACA,WAAON,MAAP;AACD,GAHD,CAGE,OAAOY,GAAP,EAAiB;AACjB,QAAI,EAAEA,GAAG,YAAYC,4BAAjB,KAAoC,EAAED,GAAG,YAAYE,4BAAjB,CAAxC,EAA6E;AAC3E,YAAMF,GAAN;AACD;;AACD,WAAO,EAAP;AACD;AACF;;AAED,SAASlB,8BAAT,GAA0E;AACxE,SAAO,MAAOY,OAAP,IAA8D;AACnE,WAAOE,oCAAgBO,OAAhB,CAAwBT,OAAxB,CAAP;AACD,GAFD;AAGD;;AAED,SAASF,qBAAT,CAA+BJ,MAA/B,EAA6E;AAC3E,SAAO,MAAOM,OAAP,IAA6E;AAClF,QAAIN,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEgB,eAAR,IAA2BhB,MAAM,CAACE,IAAlC,IAA0CA,gBAAKe,SAAL,CAAeX,OAAf,MAA4BJ,gBAAKgB,OAAL,CAAalB,MAAM,CAACE,IAApB,CAA1E,EAAqG;AACnG,aAAQF,MAAM,CAACA,MAAR,CAAmCmB,QAAnC,EAAP;AACD;;AACD,UAAMC,SAAS,GAAG,MAAMV,iBAAOC,WAAP,CAAmBL,OAAnB,CAAxB;;AACA,QAAIc,SAAS,IAAIA,SAAS,CAACC,IAAV,KAAmB,WAApC,EAAiD;AAC/C,aAAQD,SAAS,CAACpB,MAAX,CAAsCmB,QAAtC,EAAP;AACD;;AACD,WAAOG,SAAP;AACD,GATD;AAUD;;AAED,SAAS1B,uBAAT,GAAkE;AAChE,QAAM2B,IAAmC,GAAG,OAC1CjB,OAD0C,EAE1CkB,UAAU,GAAG,KAF6B,EAG1CC,0BAH0C,KAIvC;AACH,QAAIC,oBAAJ;;AACA,QAAID,0BAAJ,EAAgC;AAC9BC,MAAAA,oBAAoB,GAAG,0DAAiCD,0BAAjC,CAAvB;AACD;;AACD,UAAME,eAAgC,GAAG;AACvCH,MAAAA;AADuC,KAAzC;AAGA,UAAMxB,MAAM,GAAG,MAAMU,iBAAOkB,eAAP,CAAuBtB,OAAvB,EAAgCoB,oBAAhC,EAAsDC,eAAtD,CAArB;AACA,UAAMX,eAAe,GAAGhB,MAAM,CAACA,MAA/B;AACA,WAAQgB,eAAD,CAAqCG,QAArC,EAAP;AACD,GAfD;;AAgBA,SAAOI,IAAP;AACD","sourcesContent":["import { getConsumerInfo } from '@teambit/legacy/dist/consumer';\nimport { ILegacyWorkspaceConfig, LegacyWorkspaceConfigProps } from '@teambit/legacy/dist/consumer/config';\nimport { InvalidBitJson } from '@teambit/legacy/dist/consumer/config/exceptions';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigEnsureFunction,\n WorkspaceConfigIsExistFunction,\n WorkspaceConfigLoadFunction,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { PathOsBased } from '@teambit/legacy/dist/utils/path';\nimport path from 'path';\n\nimport { Config } from './config';\nimport InvalidConfigFile from './exceptions/invalid-config-file';\nimport { LegacyInitProps, transformLegacyPropsToExtensions, WorkspaceConfig } from './workspace-config';\n\nexport type ConfigDeps = [];\n\nexport type ConfigConfig = {};\n\nexport default async function provideConfig() {\n LegacyWorkspaceConfig.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());\n const consumerInfo = await getConsumerInfo(process.cwd());\n const config: Config = await tryToGetConfig(consumerInfo?.path || process.cwd());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(config));\n LegacyWorkspaceConfig.registerOnWorkspaceConfigReset((dirPath, resetHard) =>\n WorkspaceConfig.reset(dirPath, resetHard)\n );\n return config;\n}\n\n// This is used to handle cases where the user run bit init --reset / --reset-hard\n// during this time we don't yet know if the user ask for init reset so we catch it here\n// other places should handle cases when there is no config\n// TODO: change the {} to some maybe type\nasync function tryToGetConfig(dirPath: string): Promise<Config | any> {\n try {\n const config: Config = await Config.loadIfExist(dirPath);\n return config;\n } catch (err: any) {\n if (!(err instanceof InvalidBitJson) && !(err instanceof InvalidConfigFile)) {\n throw err;\n }\n return {};\n }\n}\n\nfunction onLegacyWorkspaceConfigIsExist(): WorkspaceConfigIsExistFunction {\n return async (dirPath: PathOsBased): Promise<boolean | undefined> => {\n return WorkspaceConfig.isExist(dirPath);\n };\n}\n\nfunction onLegacyWorkspaceLoad(config?: Config): WorkspaceConfigLoadFunction {\n return async (dirPath: PathOsBased): Promise<ILegacyWorkspaceConfig | undefined> => {\n if (config?.workspaceConfig && config.path && path.normalize(dirPath) === path.dirname(config.path)) {\n return (config.config as WorkspaceConfig).toLegacy();\n }\n const newConfig = await Config.loadIfExist(dirPath);\n if (newConfig && newConfig.type === 'workspace') {\n return (newConfig.config as WorkspaceConfig).toLegacy();\n }\n return undefined;\n };\n}\n\nfunction onLegacyWorkspaceEnsure(): WorkspaceConfigEnsureFunction {\n const func: WorkspaceConfigEnsureFunction = async (\n dirPath: string,\n standAlone = false,\n legacyWorkspaceConfigProps?: LegacyWorkspaceConfigProps\n ) => {\n let workspaceConfigProps;\n if (legacyWorkspaceConfigProps) {\n workspaceConfigProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);\n }\n const legacyInitProps: LegacyInitProps = {\n standAlone,\n };\n const config = await Config.ensureWorkspace(dirPath, workspaceConfigProps, legacyInitProps);\n const workspaceConfig = config.config;\n return (workspaceConfig as WorkspaceConfig).toLegacy();\n };\n return func;\n}\n"]}
package/dist/types.d.ts CHANGED
@@ -4,7 +4,14 @@ import { SetExtensionOptions } from './config';
4
4
  export declare type WriteOptions = {
5
5
  dir?: PathOsBasedAbsolute;
6
6
  };
7
+ /**
8
+ * An interface implemented by component host (workspace / scope) config file
9
+ * This used to be able to abstract the workspace/scope config.
10
+ */
7
11
  export interface HostConfig {
12
+ /**
13
+ * Path to the actual file
14
+ */
8
15
  path: PathOsBased;
9
16
  extensions: ExtensionDataList;
10
17
  extension: (extensionId: string, ignoreVersion: boolean) => ExtensionDataEntry;
@@ -61,15 +61,76 @@ export declare class WorkspaceConfig implements HostConfig {
61
61
  private loadExtensions;
62
62
  extension(extensionId: string, ignoreVersion: boolean): any;
63
63
  setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): any;
64
+ /**
65
+ * Create an instance of the WorkspaceConfig by an instance of the legacy config
66
+ *
67
+ * @static
68
+ * @param {*} legacyConfig
69
+ * @returns
70
+ * @memberof WorkspaceConfig
71
+ */
64
72
  static fromLegacyConfig(legacyConfig: any): WorkspaceConfig;
73
+ /**
74
+ * Create an instance of the WorkspaceConfig by data
75
+ *
76
+ * @static
77
+ * @param {WorkspaceConfigFileProps} data
78
+ * @returns
79
+ * @memberof WorkspaceConfig
80
+ */
65
81
  static fromObject(data: WorkspaceConfigFileProps): WorkspaceConfig;
82
+ /**
83
+ * Create an instance of the WorkspaceConfig by the workspace config template and override values
84
+ *
85
+ * @static
86
+ * @param {WorkspaceConfigFileProps} data values to override in the default template
87
+ * @returns
88
+ * @memberof WorkspaceConfig
89
+ */
66
90
  static create(props: WorkspaceConfigFileProps, dirPath?: PathOsBasedAbsolute, legacyInitProps?: LegacyInitProps): Promise<WorkspaceConfig>;
91
+ /**
92
+ * Ensure the given directory has a workspace config
93
+ * Load if existing and create new if not
94
+ *
95
+ * @static
96
+ * @param {PathOsBasedAbsolute} dirPath
97
+ * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
98
+ * @returns {Promise<WorkspaceConfig>}
99
+ * @memberof WorkspaceConfig
100
+ */
67
101
  static ensure(dirPath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps, legacyInitProps?: LegacyInitProps): Promise<WorkspaceConfig>;
102
+ /**
103
+ * A function that register to the legacy ensure function in order to transform old props structure
104
+ * to the new one
105
+ * @param dirPath
106
+ * @param standAlone
107
+ * @param legacyWorkspaceConfigProps
108
+ */
68
109
  static onLegacyEnsure(dirPath: PathOsBasedAbsolute, standAlone: boolean, legacyWorkspaceConfigProps?: LegacyWorkspaceConfigProps): Promise<WorkspaceConfig>;
69
110
  static reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void>;
111
+ /**
112
+ * Get the path of the bit.jsonc file by a containing folder
113
+ *
114
+ * @static
115
+ * @param {PathOsBased} dirPath containing dir of the bit.jsonc file
116
+ * @returns {PathOsBased}
117
+ * @memberof WorkspaceConfig
118
+ */
70
119
  static composeWorkspaceJsoncPath(dirPath: PathOsBased): PathOsBased;
71
120
  static pathHasWorkspaceJsonc(dirPath: PathOsBased): Promise<boolean>;
121
+ /**
122
+ * Check if the given dir has workspace config (new or legacy)
123
+ * @param dirPath
124
+ */
72
125
  static isExist(dirPath: PathOsBased): Promise<boolean | undefined>;
126
+ /**
127
+ * Load the workspace configuration if it's exist
128
+ *
129
+ * @static
130
+ * @param {PathOsBased} dirPath
131
+ * @returns {(Promise<WorkspaceConfig | undefined>)}
132
+ * @memberof WorkspaceConfig
133
+ */
73
134
  static loadIfExist(dirPath: PathOsBased): Promise<WorkspaceConfig | undefined>;
74
135
  static _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased): Promise<WorkspaceConfig>;
75
136
  write({ dir }: {
@@ -380,15 +380,10 @@ class WorkspaceConfig {
380
380
  static async reset(dirPath, resetHard) {
381
381
  const workspaceJsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);
382
382
 
383
- if (resetHard) {
384
- // Call the legacy reset hard to make sure there is no old bit.json kept
385
- await _workspaceConfig().default.reset(dirPath, true);
383
+ if (resetHard && workspaceJsoncPath) {
384
+ _logger().default.info(`deleting the consumer workspace.jsonc file at ${workspaceJsoncPath}`);
386
385
 
387
- if (workspaceJsoncPath) {
388
- _logger().default.info(`deleting the consumer bit.jsonc file at ${workspaceJsoncPath}`);
389
-
390
- await fs().remove(workspaceJsoncPath);
391
- }
386
+ await fs().remove(workspaceJsoncPath);
392
387
  }
393
388
  }
394
389
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace-config.ts"],"names":["INTERNAL_CONFIG_PROPS","WorkspaceConfig","constructor","data","legacyConfig","isLegacy","Boolean","isHarmony","logger","debug","Analytics","setExtraData","raw","loadExtensions","_extensions","ExtensionDataList","fromConfigObject","transformLegacyPropsToExtensions","_legacyProps","dependenciesDirectory","resolveModules","saveDependenciesAsComponents","distEntry","distTarget","path","_path","configPath","extensions","withoutInternalConfig","extension","extensionId","ignoreVersion","existing","findExtension","config","setExtension","options","overrideExisting","ExtensionAlreadyConfigured","fromLegacyConfig","undefined","fromObject","create","props","dirPath","legacyInitProps","Error","legacyProps","packageManager","componentsDefaultDirectory","defaultDirectory","standAlone","LegacyWorkspaceConfig","_ensure","instance","template","getWorkspaceConfigTemplateParsed","merged","composeWorkspaceJsoncPath","ensure","workspaceConfigProps","workspaceConfig","loadIfExist","err","InvalidBitJson","InvalidConfigFile","onLegacyEnsure","legacyWorkspaceConfigProps","newProps","$schemaVersion","reset","resetHard","workspaceJsoncPath","info","fs","remove","join","WORKSPACE_JSONC","pathHasWorkspaceJsonc","isExist","pathExists","jsoncExist","_isExist","jsoncPath","_loadFromWorkspaceJsonc","_loadIfExist","contentBuffer","readFile","parsed","toString","e","write","dir","calculatedDir","ConfigDirNotDefined","files","toVinyl","dataToPersist","DataToPersist","addManyFiles","persistAllToFS","workspaceDir","jsonStr","base","fullPath","jsonFile","AbstractVinyl","contents","Buffer","from","_legacyPlainObject","toPlainObject","toLegacy","_setCompiler","compiler","setCompiler","_setTester","tester","setTester","_getEnvsByType","type","COMPILER_ENV_TYPE","includes","lang","DEFAULT_LANGUAGE","defaultScope","_useWorkspaces","useWorkspaces","dependencyResolver","_bindingPrefix","defaultOwner","_distEntry","_distTarget","_saveDependenciesAsComponents","_dependenciesDirectory","_resolveModules","_manageWorkspaces","manageWorkspaces","toConfigObject","call","bind","componentsConfig","overrides","getComponentConfig","getOverrideComponentData","_compiler","_tester","removeUndefined","obj","Object","entries","forEach","workspace","bindingPrefix","extraArgs","packageManagerArgs","packageManagerProcessOptions","variants","fileContent","__dirname","code","stringifyWorkspaceConfig"],"mappings":"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","sourcesContent":["import { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { isLegacyEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { COMPILER_ENV_TYPE, DEFAULT_LANGUAGE, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { ResolveModulesConfig } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/types/dependency-tree-type';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { ExtensionDataList, ILegacyWorkspaceConfig } from '@teambit/legacy/dist/consumer/config';\nimport { Compilers, Testers } from '@teambit/legacy/dist/consumer/config/abstract-config';\nimport { InvalidBitJson } from '@teambit/legacy/dist/consumer/config/exceptions';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigProps as LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { EnvType } from '@teambit/legacy/dist/legacy-extensions/env-extension-types';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { assign, parse, stringify, CommentJSONValue } from 'comment-json';\nimport * as fs from 'fs-extra';\nimport * as path from 'path';\nimport { isEmpty, omit } from 'lodash';\n\nimport { SetExtensionOptions } from './config';\nimport { ExtensionAlreadyConfigured } from './exceptions';\nimport { ConfigDirNotDefined } from './exceptions/config-dir-not-defined';\nimport InvalidConfigFile from './exceptions/invalid-config-file';\nimport { HostConfig } from './types';\n\nconst INTERNAL_CONFIG_PROPS = ['$schema', '$schemaVersion'];\n\nexport type LegacyInitProps = {\n standAlone?: boolean;\n};\n\nexport type WorkspaceConfigFileProps = {\n // TODO: make it no optional\n $schema?: string;\n $schemaVersion?: string;\n} & ExtensionsDefs;\n\nexport type ComponentScopeDirMapEntry = {\n defaultScope?: string;\n directory: string;\n};\n\nexport type ComponentScopeDirMap = Array<ComponentScopeDirMapEntry>;\n\nexport type WorkspaceExtensionProps = {\n defaultOwner?: string;\n defaultScope?: string;\n defaultDirectory?: string;\n components?: ComponentScopeDirMap;\n};\n\nexport type PackageManagerClients = 'npm' | 'yarn' | undefined;\n\nexport interface DependencyResolverExtensionProps {\n packageManager: PackageManagerClients;\n strictPeerDependencies?: boolean;\n extraArgs?: string[];\n packageManagerProcessOptions?: any;\n useWorkspaces?: boolean;\n manageWorkspaces?: boolean;\n}\n\nexport type WorkspaceSettingsNewProps = {\n 'teambit.workspace/workspace': WorkspaceExtensionProps;\n 'teambit.dependencies/dependency-resolver': DependencyResolverExtensionProps;\n};\n\nexport type WorkspaceLegacyProps = {\n dependenciesDirectory?: string;\n bindingPrefix?: string;\n resolveModules?: ResolveModulesConfig;\n saveDependenciesAsComponents?: boolean;\n distEntry?: string;\n distTarget?: string;\n};\n\nexport type ExtensionsDefs = WorkspaceSettingsNewProps;\n\nexport class WorkspaceConfig implements HostConfig {\n raw?: any;\n _path?: string;\n _extensions: ExtensionDataList;\n _legacyProps?: WorkspaceLegacyProps;\n isLegacy: boolean;\n\n constructor(private data?: WorkspaceConfigFileProps, private legacyConfig?: LegacyWorkspaceConfig) {\n this.isLegacy = Boolean(isLegacyEnabled() || legacyConfig);\n const isHarmony = !this.isLegacy;\n logger.debug(`workspace-config, isLegacy: ${this.isLegacy}`);\n Analytics.setExtraData('is_harmony', isHarmony);\n if (isHarmony) {\n this.raw = data;\n this.loadExtensions();\n } else {\n // We know we have either data or legacy config\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._extensions = ExtensionDataList.fromConfigObject(transformLegacyPropsToExtensions(legacyConfig!));\n if (legacyConfig) {\n this._legacyProps = {\n dependenciesDirectory: legacyConfig.dependenciesDirectory,\n resolveModules: legacyConfig.resolveModules,\n saveDependenciesAsComponents: legacyConfig.saveDependenciesAsComponents,\n distEntry: legacyConfig.distEntry,\n distTarget: legacyConfig.distTarget,\n };\n }\n }\n }\n\n get path(): PathOsBased {\n return this._path || this.legacyConfig?.path || '';\n }\n\n set path(configPath: PathOsBased) {\n this._path = configPath;\n }\n\n get extensions(): ExtensionDataList {\n return this._extensions;\n }\n\n private loadExtensions() {\n const withoutInternalConfig = omit(this.raw, INTERNAL_CONFIG_PROPS);\n this._extensions = ExtensionDataList.fromConfigObject(withoutInternalConfig);\n }\n\n extension(extensionId: string, ignoreVersion: boolean): any {\n const existing = this.extensions.findExtension(extensionId, ignoreVersion);\n return existing?.config;\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): any {\n const existing = this.extension(extensionId, options.ignoreVersion);\n if (existing && !options.overrideExisting) {\n throw new ExtensionAlreadyConfigured(extensionId);\n }\n this.raw[extensionId] = config;\n this.loadExtensions();\n }\n\n /**\n * Create an instance of the WorkspaceConfig by an instance of the legacy config\n *\n * @static\n * @param {*} legacyConfig\n * @returns\n * @memberof WorkspaceConfig\n */\n static fromLegacyConfig(legacyConfig) {\n return new WorkspaceConfig(undefined, legacyConfig);\n }\n\n /**\n * Create an instance of the WorkspaceConfig by data\n *\n * @static\n * @param {WorkspaceConfigFileProps} data\n * @returns\n * @memberof WorkspaceConfig\n */\n static fromObject(data: WorkspaceConfigFileProps) {\n return new WorkspaceConfig(data, undefined);\n }\n\n /**\n * Create an instance of the WorkspaceConfig by the workspace config template and override values\n *\n * @static\n * @param {WorkspaceConfigFileProps} data values to override in the default template\n * @returns\n * @memberof WorkspaceConfig\n */\n static async create(\n props: WorkspaceConfigFileProps,\n dirPath?: PathOsBasedAbsolute,\n legacyInitProps?: LegacyInitProps\n ) {\n if (isLegacyEnabled() && dirPath) {\n if (!dirPath) throw new Error('workspace-config, dirPath is missing');\n // Only support here what needed for e2e tests\n const legacyProps: LegacyWorkspaceConfigProps = {};\n if (props['teambit.dependencies/dependency-resolver']) {\n legacyProps.packageManager = props['teambit.dependencies/dependency-resolver'].packageManager;\n }\n if (props['teambit.workspace/workspace']) {\n legacyProps.componentsDefaultDirectory = props['teambit.workspace/workspace'].defaultDirectory;\n }\n\n const standAlone = legacyInitProps?.standAlone ?? false;\n const legacyConfig = await LegacyWorkspaceConfig._ensure(dirPath, standAlone, legacyProps);\n const instance = WorkspaceConfig.fromLegacyConfig(legacyConfig);\n return instance;\n }\n\n const template = await getWorkspaceConfigTemplateParsed();\n // TODO: replace this assign with some kind of deepAssign that keeps the comments\n // right now the comments above the internal props are overrides after the assign\n const merged = assign(template, props);\n const instance = new WorkspaceConfig(merged, undefined);\n if (dirPath) {\n instance.path = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n }\n return instance;\n }\n\n /**\n * Ensure the given directory has a workspace config\n * Load if existing and create new if not\n *\n * @static\n * @param {PathOsBasedAbsolute} dirPath\n * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]\n * @returns {Promise<WorkspaceConfig>}\n * @memberof WorkspaceConfig\n */\n static async ensure(\n dirPath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any,\n legacyInitProps?: LegacyInitProps\n ): Promise<WorkspaceConfig> {\n try {\n let workspaceConfig = await this.loadIfExist(dirPath);\n if (workspaceConfig) {\n return workspaceConfig;\n }\n workspaceConfig = await this.create(workspaceConfigProps, dirPath, legacyInitProps);\n return workspaceConfig;\n } catch (err: any) {\n if (err instanceof InvalidBitJson || err instanceof InvalidConfigFile) {\n const workspaceConfig = this.create(workspaceConfigProps, dirPath);\n return workspaceConfig;\n }\n throw err;\n }\n }\n\n /**\n * A function that register to the legacy ensure function in order to transform old props structure\n * to the new one\n * @param dirPath\n * @param standAlone\n * @param legacyWorkspaceConfigProps\n */\n static async onLegacyEnsure(\n dirPath: PathOsBasedAbsolute,\n standAlone: boolean,\n legacyWorkspaceConfigProps: LegacyWorkspaceConfigProps = {} as any\n ): Promise<WorkspaceConfig> {\n const newProps: WorkspaceConfigFileProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);\n // TODO: gilad move to constants file\n newProps.$schemaVersion = '1.0.0';\n return WorkspaceConfig.ensure(dirPath, newProps, { standAlone });\n }\n\n static async reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void> {\n const workspaceJsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n if (resetHard) {\n // Call the legacy reset hard to make sure there is no old bit.json kept\n await LegacyWorkspaceConfig.reset(dirPath, true);\n if (workspaceJsoncPath) {\n logger.info(`deleting the consumer bit.jsonc file at ${workspaceJsoncPath}`);\n await fs.remove(workspaceJsoncPath);\n }\n }\n }\n\n /**\n * Get the path of the bit.jsonc file by a containing folder\n *\n * @static\n * @param {PathOsBased} dirPath containing dir of the bit.jsonc file\n * @returns {PathOsBased}\n * @memberof WorkspaceConfig\n */\n static composeWorkspaceJsoncPath(dirPath: PathOsBased): PathOsBased {\n return path.join(dirPath, WORKSPACE_JSONC);\n }\n\n static async pathHasWorkspaceJsonc(dirPath: PathOsBased): Promise<boolean> {\n const isExist = await fs.pathExists(WorkspaceConfig.composeWorkspaceJsoncPath(dirPath));\n return isExist;\n }\n\n /**\n * Check if the given dir has workspace config (new or legacy)\n * @param dirPath\n */\n static async isExist(dirPath: PathOsBased): Promise<boolean | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n return true;\n }\n return LegacyWorkspaceConfig._isExist(dirPath);\n }\n\n /**\n * Load the workspace configuration if it's exist\n *\n * @static\n * @param {PathOsBased} dirPath\n * @returns {(Promise<WorkspaceConfig | undefined>)}\n * @memberof WorkspaceConfig\n */\n static async loadIfExist(dirPath: PathOsBased): Promise<WorkspaceConfig | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n const jsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n const instance = await WorkspaceConfig._loadFromWorkspaceJsonc(jsoncPath);\n instance.path = jsoncPath;\n return instance;\n }\n const legacyConfig = await LegacyWorkspaceConfig._loadIfExist(dirPath);\n if (legacyConfig) {\n return WorkspaceConfig.fromLegacyConfig(legacyConfig);\n }\n return undefined;\n }\n\n static async _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased): Promise<WorkspaceConfig> {\n const contentBuffer = await fs.readFile(workspaceJsoncPath);\n let parsed;\n try {\n parsed = parse(contentBuffer.toString());\n } catch (e: any) {\n throw new InvalidConfigFile(workspaceJsoncPath);\n }\n return WorkspaceConfig.fromObject(parsed);\n }\n\n async write({ dir }: { dir?: PathOsBasedAbsolute }): Promise<void> {\n const calculatedDir = dir || this._path;\n if (!calculatedDir) {\n throw new ConfigDirNotDefined();\n }\n if (this.data) {\n const files = await this.toVinyl(calculatedDir);\n const dataToPersist = new DataToPersist();\n if (files) {\n dataToPersist.addManyFiles(files);\n return dataToPersist.persistAllToFS();\n }\n }\n await this.legacyConfig?.write({ workspaceDir: calculatedDir });\n return undefined;\n }\n\n async toVinyl(workspaceDir: PathOsBasedAbsolute): Promise<AbstractVinyl[] | undefined> {\n if (this.data) {\n const jsonStr = stringify(this.data, undefined, 2);\n const base = workspaceDir;\n const fullPath = workspaceDir ? WorkspaceConfig.composeWorkspaceJsoncPath(workspaceDir) : this.path;\n const jsonFile = new AbstractVinyl({ base, path: fullPath, contents: Buffer.from(jsonStr) });\n return [jsonFile];\n }\n return this.legacyConfig?.toVinyl({ workspaceDir });\n }\n\n _legacyPlainObject(): { [prop: string]: any } | undefined {\n if (this.legacyConfig) {\n return this.legacyConfig.toPlainObject();\n }\n return undefined;\n }\n\n toLegacy(): ILegacyWorkspaceConfig {\n const _setCompiler = (compiler) => {\n if (this.legacyConfig) {\n this.legacyConfig.setCompiler(compiler);\n }\n };\n\n const _setTester = (tester) => {\n if (this.legacyConfig) {\n this.legacyConfig.setTester(tester);\n }\n };\n\n const _getEnvsByType = (type: EnvType): Compilers | Testers | undefined => {\n if (type === COMPILER_ENV_TYPE) {\n return this.legacyConfig?.compiler;\n }\n return this.legacyConfig?.tester;\n };\n\n let componentsDefaultDirectory = this.extension('teambit.workspace/workspace', true)?.defaultDirectory;\n if (componentsDefaultDirectory && !componentsDefaultDirectory.includes('{name}')) {\n componentsDefaultDirectory = `${componentsDefaultDirectory}/{name}`;\n }\n\n return {\n lang: this.legacyConfig?.lang || DEFAULT_LANGUAGE,\n defaultScope: this.extension('teambit.workspace/workspace', true)?.defaultScope,\n _useWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.useWorkspaces,\n dependencyResolver: this.extension('teambit.dependencies/dependency-resolver', true),\n packageManager: this.extension('teambit.dependencies/dependency-resolver', true)?.packageManager,\n _bindingPrefix: this.extension('teambit.workspace/workspace', true)?.defaultOwner,\n _distEntry: this._legacyProps?.distEntry,\n _distTarget: this._legacyProps?.distTarget,\n _saveDependenciesAsComponents: this._legacyProps?.saveDependenciesAsComponents,\n _dependenciesDirectory: this._legacyProps?.dependenciesDirectory,\n componentsDefaultDirectory,\n _resolveModules: this._legacyProps?.resolveModules,\n _manageWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.manageWorkspaces,\n defaultOwner: this.extension('teambit.workspace/workspace', true)?.defaultOwner,\n extensions: this.extensions.toConfigObject(),\n // @ts-ignore\n path: this.path,\n _getEnvsByType,\n isLegacy: this.isLegacy,\n write: ({ workspaceDir }) => this.write.call(this, { dir: workspaceDir }),\n toVinyl: this.toVinyl.bind(this),\n componentsConfig: this.legacyConfig ? this.legacyConfig?.overrides : undefined,\n getComponentConfig: this.legacyConfig\n ? this.legacyConfig?.overrides.getOverrideComponentData.bind(this.legacyConfig?.overrides)\n : () => undefined,\n _legacyPlainObject: this.legacyConfig\n ? this.legacyConfig?.toPlainObject.bind(this.legacyConfig)\n : () => undefined,\n _compiler: this.legacyConfig?.compiler,\n _setCompiler,\n _tester: this.legacyConfig?.tester,\n _setTester,\n };\n }\n}\n\nexport function transformLegacyPropsToExtensions(\n legacyConfig: LegacyWorkspaceConfig | LegacyWorkspaceConfigProps\n): ExtensionsDefs {\n // TODO: move to utils\n const removeUndefined = (obj) => {\n // const res = omit(mapObjIndexed((val) => val === undefined))(obj);\n // return res;\n Object.entries(obj).forEach((e) => {\n if (e[1] === undefined) delete obj[e[0]];\n });\n return obj;\n };\n\n const workspace = removeUndefined({\n defaultScope: legacyConfig.defaultScope,\n defaultDirectory: legacyConfig.componentsDefaultDirectory,\n defaultOwner: legacyConfig.bindingPrefix,\n });\n const dependencyResolver = removeUndefined({\n packageManager: legacyConfig.packageManager,\n // strictPeerDependencies: false,\n extraArgs: legacyConfig.packageManagerArgs,\n packageManagerProcessOptions: legacyConfig.packageManagerProcessOptions,\n manageWorkspaces: legacyConfig.manageWorkspaces,\n useWorkspaces: legacyConfig.useWorkspaces,\n });\n const variants = legacyConfig.overrides?.overrides;\n const data = {};\n if (workspace && !isEmpty(workspace)) {\n data['teambit.workspace/workspace'] = workspace;\n }\n if (dependencyResolver && !isEmpty(dependencyResolver)) {\n data['teambit.dependencies/dependency-resolver'] = dependencyResolver;\n }\n // TODO: add variants here once we have a way to pass the deps overrides and general key vals for package.json to\n // TODO: new extensions (via dependency-resolver extension and pkg extensions)\n // TODO: transform legacy props to new one once dependency-resolver extension and pkg extensions are ready\n if (variants && !isEmpty(variants)) {\n data['teambit.workspace/variants'] = variants;\n }\n // @ts-ignore\n return data;\n}\n\nexport async function getWorkspaceConfigTemplateParsed(): Promise<CommentJSONValue> {\n let fileContent: Buffer;\n try {\n fileContent = await fs.readFile(path.join(__dirname, 'workspace-template.jsonc'));\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n // when the extension is compiled by tsc, it doesn't copy .jsonc files into the dists, grab it from src\n fileContent = await fs.readFile(path.join(__dirname, '..', 'workspace-template.jsonc'));\n }\n return parse(fileContent.toString());\n}\n\nexport function stringifyWorkspaceConfig(workspaceConfig: CommentJSONValue): string {\n return stringify(workspaceConfig, undefined, 2);\n}\n"]}
1
+ {"version":3,"sources":["workspace-config.ts"],"names":["INTERNAL_CONFIG_PROPS","WorkspaceConfig","constructor","data","legacyConfig","isLegacy","Boolean","isHarmony","logger","debug","Analytics","setExtraData","raw","loadExtensions","_extensions","ExtensionDataList","fromConfigObject","transformLegacyPropsToExtensions","_legacyProps","dependenciesDirectory","resolveModules","saveDependenciesAsComponents","distEntry","distTarget","path","_path","configPath","extensions","withoutInternalConfig","extension","extensionId","ignoreVersion","existing","findExtension","config","setExtension","options","overrideExisting","ExtensionAlreadyConfigured","fromLegacyConfig","undefined","fromObject","create","props","dirPath","legacyInitProps","Error","legacyProps","packageManager","componentsDefaultDirectory","defaultDirectory","standAlone","LegacyWorkspaceConfig","_ensure","instance","template","getWorkspaceConfigTemplateParsed","merged","composeWorkspaceJsoncPath","ensure","workspaceConfigProps","workspaceConfig","loadIfExist","err","InvalidBitJson","InvalidConfigFile","onLegacyEnsure","legacyWorkspaceConfigProps","newProps","$schemaVersion","reset","resetHard","workspaceJsoncPath","info","fs","remove","join","WORKSPACE_JSONC","pathHasWorkspaceJsonc","isExist","pathExists","jsoncExist","_isExist","jsoncPath","_loadFromWorkspaceJsonc","_loadIfExist","contentBuffer","readFile","parsed","toString","e","write","dir","calculatedDir","ConfigDirNotDefined","files","toVinyl","dataToPersist","DataToPersist","addManyFiles","persistAllToFS","workspaceDir","jsonStr","base","fullPath","jsonFile","AbstractVinyl","contents","Buffer","from","_legacyPlainObject","toPlainObject","toLegacy","_setCompiler","compiler","setCompiler","_setTester","tester","setTester","_getEnvsByType","type","COMPILER_ENV_TYPE","includes","lang","DEFAULT_LANGUAGE","defaultScope","_useWorkspaces","useWorkspaces","dependencyResolver","_bindingPrefix","defaultOwner","_distEntry","_distTarget","_saveDependenciesAsComponents","_dependenciesDirectory","_resolveModules","_manageWorkspaces","manageWorkspaces","toConfigObject","call","bind","componentsConfig","overrides","getComponentConfig","getOverrideComponentData","_compiler","_tester","removeUndefined","obj","Object","entries","forEach","workspace","bindingPrefix","extraArgs","packageManagerArgs","packageManagerProcessOptions","variants","fileContent","__dirname","code","stringifyWorkspaceConfig"],"mappings":"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","sourcesContent":["import { Analytics } from '@teambit/legacy/dist/analytics/analytics';\nimport { isLegacyEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { COMPILER_ENV_TYPE, DEFAULT_LANGUAGE, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { ResolveModulesConfig } from '@teambit/legacy/dist/consumer/component/dependencies/files-dependency-builder/types/dependency-tree-type';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { ExtensionDataList, ILegacyWorkspaceConfig } from '@teambit/legacy/dist/consumer/config';\nimport { Compilers, Testers } from '@teambit/legacy/dist/consumer/config/abstract-config';\nimport { InvalidBitJson } from '@teambit/legacy/dist/consumer/config/exceptions';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigProps as LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { EnvType } from '@teambit/legacy/dist/legacy-extensions/env-extension-types';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { assign, parse, stringify, CommentJSONValue } from 'comment-json';\nimport * as fs from 'fs-extra';\nimport * as path from 'path';\nimport { isEmpty, omit } from 'lodash';\n\nimport { SetExtensionOptions } from './config';\nimport { ExtensionAlreadyConfigured } from './exceptions';\nimport { ConfigDirNotDefined } from './exceptions/config-dir-not-defined';\nimport InvalidConfigFile from './exceptions/invalid-config-file';\nimport { HostConfig } from './types';\n\nconst INTERNAL_CONFIG_PROPS = ['$schema', '$schemaVersion'];\n\nexport type LegacyInitProps = {\n standAlone?: boolean;\n};\n\nexport type WorkspaceConfigFileProps = {\n // TODO: make it no optional\n $schema?: string;\n $schemaVersion?: string;\n} & ExtensionsDefs;\n\nexport type ComponentScopeDirMapEntry = {\n defaultScope?: string;\n directory: string;\n};\n\nexport type ComponentScopeDirMap = Array<ComponentScopeDirMapEntry>;\n\nexport type WorkspaceExtensionProps = {\n defaultOwner?: string;\n defaultScope?: string;\n defaultDirectory?: string;\n components?: ComponentScopeDirMap;\n};\n\nexport type PackageManagerClients = 'npm' | 'yarn' | undefined;\n\nexport interface DependencyResolverExtensionProps {\n packageManager: PackageManagerClients;\n strictPeerDependencies?: boolean;\n extraArgs?: string[];\n packageManagerProcessOptions?: any;\n useWorkspaces?: boolean;\n manageWorkspaces?: boolean;\n}\n\nexport type WorkspaceSettingsNewProps = {\n 'teambit.workspace/workspace': WorkspaceExtensionProps;\n 'teambit.dependencies/dependency-resolver': DependencyResolverExtensionProps;\n};\n\nexport type WorkspaceLegacyProps = {\n dependenciesDirectory?: string;\n bindingPrefix?: string;\n resolveModules?: ResolveModulesConfig;\n saveDependenciesAsComponents?: boolean;\n distEntry?: string;\n distTarget?: string;\n};\n\nexport type ExtensionsDefs = WorkspaceSettingsNewProps;\n\nexport class WorkspaceConfig implements HostConfig {\n raw?: any;\n _path?: string;\n _extensions: ExtensionDataList;\n _legacyProps?: WorkspaceLegacyProps;\n isLegacy: boolean;\n\n constructor(private data?: WorkspaceConfigFileProps, private legacyConfig?: LegacyWorkspaceConfig) {\n this.isLegacy = Boolean(isLegacyEnabled() || legacyConfig);\n const isHarmony = !this.isLegacy;\n logger.debug(`workspace-config, isLegacy: ${this.isLegacy}`);\n Analytics.setExtraData('is_harmony', isHarmony);\n if (isHarmony) {\n this.raw = data;\n this.loadExtensions();\n } else {\n // We know we have either data or legacy config\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._extensions = ExtensionDataList.fromConfigObject(transformLegacyPropsToExtensions(legacyConfig!));\n if (legacyConfig) {\n this._legacyProps = {\n dependenciesDirectory: legacyConfig.dependenciesDirectory,\n resolveModules: legacyConfig.resolveModules,\n saveDependenciesAsComponents: legacyConfig.saveDependenciesAsComponents,\n distEntry: legacyConfig.distEntry,\n distTarget: legacyConfig.distTarget,\n };\n }\n }\n }\n\n get path(): PathOsBased {\n return this._path || this.legacyConfig?.path || '';\n }\n\n set path(configPath: PathOsBased) {\n this._path = configPath;\n }\n\n get extensions(): ExtensionDataList {\n return this._extensions;\n }\n\n private loadExtensions() {\n const withoutInternalConfig = omit(this.raw, INTERNAL_CONFIG_PROPS);\n this._extensions = ExtensionDataList.fromConfigObject(withoutInternalConfig);\n }\n\n extension(extensionId: string, ignoreVersion: boolean): any {\n const existing = this.extensions.findExtension(extensionId, ignoreVersion);\n return existing?.config;\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): any {\n const existing = this.extension(extensionId, options.ignoreVersion);\n if (existing && !options.overrideExisting) {\n throw new ExtensionAlreadyConfigured(extensionId);\n }\n this.raw[extensionId] = config;\n this.loadExtensions();\n }\n\n /**\n * Create an instance of the WorkspaceConfig by an instance of the legacy config\n *\n * @static\n * @param {*} legacyConfig\n * @returns\n * @memberof WorkspaceConfig\n */\n static fromLegacyConfig(legacyConfig) {\n return new WorkspaceConfig(undefined, legacyConfig);\n }\n\n /**\n * Create an instance of the WorkspaceConfig by data\n *\n * @static\n * @param {WorkspaceConfigFileProps} data\n * @returns\n * @memberof WorkspaceConfig\n */\n static fromObject(data: WorkspaceConfigFileProps) {\n return new WorkspaceConfig(data, undefined);\n }\n\n /**\n * Create an instance of the WorkspaceConfig by the workspace config template and override values\n *\n * @static\n * @param {WorkspaceConfigFileProps} data values to override in the default template\n * @returns\n * @memberof WorkspaceConfig\n */\n static async create(\n props: WorkspaceConfigFileProps,\n dirPath?: PathOsBasedAbsolute,\n legacyInitProps?: LegacyInitProps\n ) {\n if (isLegacyEnabled() && dirPath) {\n if (!dirPath) throw new Error('workspace-config, dirPath is missing');\n // Only support here what needed for e2e tests\n const legacyProps: LegacyWorkspaceConfigProps = {};\n if (props['teambit.dependencies/dependency-resolver']) {\n legacyProps.packageManager = props['teambit.dependencies/dependency-resolver'].packageManager;\n }\n if (props['teambit.workspace/workspace']) {\n legacyProps.componentsDefaultDirectory = props['teambit.workspace/workspace'].defaultDirectory;\n }\n\n const standAlone = legacyInitProps?.standAlone ?? false;\n const legacyConfig = await LegacyWorkspaceConfig._ensure(dirPath, standAlone, legacyProps);\n const instance = WorkspaceConfig.fromLegacyConfig(legacyConfig);\n return instance;\n }\n\n const template = await getWorkspaceConfigTemplateParsed();\n // TODO: replace this assign with some kind of deepAssign that keeps the comments\n // right now the comments above the internal props are overrides after the assign\n const merged = assign(template, props);\n const instance = new WorkspaceConfig(merged, undefined);\n if (dirPath) {\n instance.path = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n }\n return instance;\n }\n\n /**\n * Ensure the given directory has a workspace config\n * Load if existing and create new if not\n *\n * @static\n * @param {PathOsBasedAbsolute} dirPath\n * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]\n * @returns {Promise<WorkspaceConfig>}\n * @memberof WorkspaceConfig\n */\n static async ensure(\n dirPath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any,\n legacyInitProps?: LegacyInitProps\n ): Promise<WorkspaceConfig> {\n try {\n let workspaceConfig = await this.loadIfExist(dirPath);\n if (workspaceConfig) {\n return workspaceConfig;\n }\n workspaceConfig = await this.create(workspaceConfigProps, dirPath, legacyInitProps);\n return workspaceConfig;\n } catch (err: any) {\n if (err instanceof InvalidBitJson || err instanceof InvalidConfigFile) {\n const workspaceConfig = this.create(workspaceConfigProps, dirPath);\n return workspaceConfig;\n }\n throw err;\n }\n }\n\n /**\n * A function that register to the legacy ensure function in order to transform old props structure\n * to the new one\n * @param dirPath\n * @param standAlone\n * @param legacyWorkspaceConfigProps\n */\n static async onLegacyEnsure(\n dirPath: PathOsBasedAbsolute,\n standAlone: boolean,\n legacyWorkspaceConfigProps: LegacyWorkspaceConfigProps = {} as any\n ): Promise<WorkspaceConfig> {\n const newProps: WorkspaceConfigFileProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);\n // TODO: gilad move to constants file\n newProps.$schemaVersion = '1.0.0';\n return WorkspaceConfig.ensure(dirPath, newProps, { standAlone });\n }\n\n static async reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void> {\n const workspaceJsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n if (resetHard && workspaceJsoncPath) {\n logger.info(`deleting the consumer workspace.jsonc file at ${workspaceJsoncPath}`);\n await fs.remove(workspaceJsoncPath);\n }\n }\n\n /**\n * Get the path of the bit.jsonc file by a containing folder\n *\n * @static\n * @param {PathOsBased} dirPath containing dir of the bit.jsonc file\n * @returns {PathOsBased}\n * @memberof WorkspaceConfig\n */\n static composeWorkspaceJsoncPath(dirPath: PathOsBased): PathOsBased {\n return path.join(dirPath, WORKSPACE_JSONC);\n }\n\n static async pathHasWorkspaceJsonc(dirPath: PathOsBased): Promise<boolean> {\n const isExist = await fs.pathExists(WorkspaceConfig.composeWorkspaceJsoncPath(dirPath));\n return isExist;\n }\n\n /**\n * Check if the given dir has workspace config (new or legacy)\n * @param dirPath\n */\n static async isExist(dirPath: PathOsBased): Promise<boolean | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n return true;\n }\n return LegacyWorkspaceConfig._isExist(dirPath);\n }\n\n /**\n * Load the workspace configuration if it's exist\n *\n * @static\n * @param {PathOsBased} dirPath\n * @returns {(Promise<WorkspaceConfig | undefined>)}\n * @memberof WorkspaceConfig\n */\n static async loadIfExist(dirPath: PathOsBased): Promise<WorkspaceConfig | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n const jsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n const instance = await WorkspaceConfig._loadFromWorkspaceJsonc(jsoncPath);\n instance.path = jsoncPath;\n return instance;\n }\n const legacyConfig = await LegacyWorkspaceConfig._loadIfExist(dirPath);\n if (legacyConfig) {\n return WorkspaceConfig.fromLegacyConfig(legacyConfig);\n }\n return undefined;\n }\n\n static async _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased): Promise<WorkspaceConfig> {\n const contentBuffer = await fs.readFile(workspaceJsoncPath);\n let parsed;\n try {\n parsed = parse(contentBuffer.toString());\n } catch (e: any) {\n throw new InvalidConfigFile(workspaceJsoncPath);\n }\n return WorkspaceConfig.fromObject(parsed);\n }\n\n async write({ dir }: { dir?: PathOsBasedAbsolute }): Promise<void> {\n const calculatedDir = dir || this._path;\n if (!calculatedDir) {\n throw new ConfigDirNotDefined();\n }\n if (this.data) {\n const files = await this.toVinyl(calculatedDir);\n const dataToPersist = new DataToPersist();\n if (files) {\n dataToPersist.addManyFiles(files);\n return dataToPersist.persistAllToFS();\n }\n }\n await this.legacyConfig?.write({ workspaceDir: calculatedDir });\n return undefined;\n }\n\n async toVinyl(workspaceDir: PathOsBasedAbsolute): Promise<AbstractVinyl[] | undefined> {\n if (this.data) {\n const jsonStr = stringify(this.data, undefined, 2);\n const base = workspaceDir;\n const fullPath = workspaceDir ? WorkspaceConfig.composeWorkspaceJsoncPath(workspaceDir) : this.path;\n const jsonFile = new AbstractVinyl({ base, path: fullPath, contents: Buffer.from(jsonStr) });\n return [jsonFile];\n }\n return this.legacyConfig?.toVinyl({ workspaceDir });\n }\n\n _legacyPlainObject(): { [prop: string]: any } | undefined {\n if (this.legacyConfig) {\n return this.legacyConfig.toPlainObject();\n }\n return undefined;\n }\n\n toLegacy(): ILegacyWorkspaceConfig {\n const _setCompiler = (compiler) => {\n if (this.legacyConfig) {\n this.legacyConfig.setCompiler(compiler);\n }\n };\n\n const _setTester = (tester) => {\n if (this.legacyConfig) {\n this.legacyConfig.setTester(tester);\n }\n };\n\n const _getEnvsByType = (type: EnvType): Compilers | Testers | undefined => {\n if (type === COMPILER_ENV_TYPE) {\n return this.legacyConfig?.compiler;\n }\n return this.legacyConfig?.tester;\n };\n\n let componentsDefaultDirectory = this.extension('teambit.workspace/workspace', true)?.defaultDirectory;\n if (componentsDefaultDirectory && !componentsDefaultDirectory.includes('{name}')) {\n componentsDefaultDirectory = `${componentsDefaultDirectory}/{name}`;\n }\n\n return {\n lang: this.legacyConfig?.lang || DEFAULT_LANGUAGE,\n defaultScope: this.extension('teambit.workspace/workspace', true)?.defaultScope,\n _useWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.useWorkspaces,\n dependencyResolver: this.extension('teambit.dependencies/dependency-resolver', true),\n packageManager: this.extension('teambit.dependencies/dependency-resolver', true)?.packageManager,\n _bindingPrefix: this.extension('teambit.workspace/workspace', true)?.defaultOwner,\n _distEntry: this._legacyProps?.distEntry,\n _distTarget: this._legacyProps?.distTarget,\n _saveDependenciesAsComponents: this._legacyProps?.saveDependenciesAsComponents,\n _dependenciesDirectory: this._legacyProps?.dependenciesDirectory,\n componentsDefaultDirectory,\n _resolveModules: this._legacyProps?.resolveModules,\n _manageWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.manageWorkspaces,\n defaultOwner: this.extension('teambit.workspace/workspace', true)?.defaultOwner,\n extensions: this.extensions.toConfigObject(),\n // @ts-ignore\n path: this.path,\n _getEnvsByType,\n isLegacy: this.isLegacy,\n write: ({ workspaceDir }) => this.write.call(this, { dir: workspaceDir }),\n toVinyl: this.toVinyl.bind(this),\n componentsConfig: this.legacyConfig ? this.legacyConfig?.overrides : undefined,\n getComponentConfig: this.legacyConfig\n ? this.legacyConfig?.overrides.getOverrideComponentData.bind(this.legacyConfig?.overrides)\n : () => undefined,\n _legacyPlainObject: this.legacyConfig\n ? this.legacyConfig?.toPlainObject.bind(this.legacyConfig)\n : () => undefined,\n _compiler: this.legacyConfig?.compiler,\n _setCompiler,\n _tester: this.legacyConfig?.tester,\n _setTester,\n };\n }\n}\n\nexport function transformLegacyPropsToExtensions(\n legacyConfig: LegacyWorkspaceConfig | LegacyWorkspaceConfigProps\n): ExtensionsDefs {\n // TODO: move to utils\n const removeUndefined = (obj) => {\n // const res = omit(mapObjIndexed((val) => val === undefined))(obj);\n // return res;\n Object.entries(obj).forEach((e) => {\n if (e[1] === undefined) delete obj[e[0]];\n });\n return obj;\n };\n\n const workspace = removeUndefined({\n defaultScope: legacyConfig.defaultScope,\n defaultDirectory: legacyConfig.componentsDefaultDirectory,\n defaultOwner: legacyConfig.bindingPrefix,\n });\n const dependencyResolver = removeUndefined({\n packageManager: legacyConfig.packageManager,\n // strictPeerDependencies: false,\n extraArgs: legacyConfig.packageManagerArgs,\n packageManagerProcessOptions: legacyConfig.packageManagerProcessOptions,\n manageWorkspaces: legacyConfig.manageWorkspaces,\n useWorkspaces: legacyConfig.useWorkspaces,\n });\n const variants = legacyConfig.overrides?.overrides;\n const data = {};\n if (workspace && !isEmpty(workspace)) {\n data['teambit.workspace/workspace'] = workspace;\n }\n if (dependencyResolver && !isEmpty(dependencyResolver)) {\n data['teambit.dependencies/dependency-resolver'] = dependencyResolver;\n }\n // TODO: add variants here once we have a way to pass the deps overrides and general key vals for package.json to\n // TODO: new extensions (via dependency-resolver extension and pkg extensions)\n // TODO: transform legacy props to new one once dependency-resolver extension and pkg extensions are ready\n if (variants && !isEmpty(variants)) {\n data['teambit.workspace/variants'] = variants;\n }\n // @ts-ignore\n return data;\n}\n\nexport async function getWorkspaceConfigTemplateParsed(): Promise<CommentJSONValue> {\n let fileContent: Buffer;\n try {\n fileContent = await fs.readFile(path.join(__dirname, 'workspace-template.jsonc'));\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n // when the extension is compiled by tsc, it doesn't copy .jsonc files into the dists, grab it from src\n fileContent = await fs.readFile(path.join(__dirname, '..', 'workspace-template.jsonc'));\n }\n return parse(fileContent.toString());\n}\n\nexport function stringifyWorkspaceConfig(workspaceConfig: CommentJSONValue): string {\n return stringify(workspaceConfig, undefined, 2);\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/config",
3
- "version": "0.0.396",
3
+ "version": "0.0.400",
4
4
  "homepage": "https://bit.dev/teambit/harmony/config",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "config",
9
- "version": "0.0.396"
9
+ "version": "0.0.400"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -16,8 +16,8 @@
16
16
  "chalk": "2.4.2",
17
17
  "@babel/runtime": "7.12.18",
18
18
  "core-js": "^3.0.0",
19
- "@teambit/cli": "0.0.385",
20
- "@teambit/bit-error": "0.0.371"
19
+ "@teambit/cli": "0.0.389",
20
+ "@teambit/bit-error": "0.0.375"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/fs-extra": "9.0.7",
@@ -30,7 +30,7 @@
30
30
  "@types/node": "12.20.4"
31
31
  },
32
32
  "peerDependencies": {
33
- "@teambit/legacy": "1.0.171",
33
+ "@teambit/legacy": "1.0.175",
34
34
  "react-dom": "^16.8.0 || ^17.0.0",
35
35
  "react": "^16.8.0 || ^17.0.0"
36
36
  },
@@ -58,12 +58,27 @@
58
58
  "react": "-"
59
59
  },
60
60
  "peerDependencies": {
61
- "@teambit/legacy": "1.0.171",
61
+ "@teambit/legacy": "1.0.175",
62
62
  "react-dom": "^16.8.0 || ^17.0.0",
63
63
  "react": "^16.8.0 || ^17.0.0"
64
64
  }
65
65
  }
66
66
  },
67
+ "files": [
68
+ "dist",
69
+ "!dist/tsconfig.tsbuildinfo",
70
+ "**/*.md",
71
+ "**/*.mdx",
72
+ "**/*.js",
73
+ "**/*.json",
74
+ "**/*.sass",
75
+ "**/*.scss",
76
+ "**/*.less",
77
+ "**/*.css",
78
+ "**/*.css",
79
+ "**/*.jpeg",
80
+ "**/*.gif"
81
+ ],
67
82
  "private": false,
68
83
  "engines": {
69
84
  "node": ">=12.22.0"
package/tsconfig.json CHANGED
@@ -15,9 +15,9 @@
15
15
  "skipLibCheck": true,
16
16
  "moduleResolution": "node",
17
17
  "esModuleInterop": true,
18
- "outDir": "dist",
19
18
  "composite": true,
20
19
  "emitDeclarationOnly": true,
20
+ "outDir": "dist",
21
21
  "experimentalDecorators": true,
22
22
  "emitDecoratorMetadata": true,
23
23
  "allowSyntheticDefaultImports": true,
@@ -25,7 +25,6 @@
25
25
  "strict": true,
26
26
  "noImplicitAny": false,
27
27
  "rootDir": ".",
28
- "removeComments": true,
29
28
  "preserveConstEnums": true,
30
29
  "resolveJsonModule": true
31
30
  },
package/config.aspect.ts DELETED
@@ -1,9 +0,0 @@
1
- import { Aspect, RuntimeDefinition } from '@teambit/harmony';
2
-
3
- export const ConfigRuntime = new RuntimeDefinition('main');
4
-
5
- export const ConfigAspect = Aspect.create({
6
- id: 'teambit.harmony/config',
7
- dependencies: [],
8
- declareRuntime: ConfigRuntime,
9
- });
@@ -1,18 +0,0 @@
1
- import { MainRuntime } from '@teambit/cli';
2
-
3
- import { ConfigAspect } from './config.aspect';
4
- import configProvider from './config.provider';
5
-
6
- const ConfigMain = {
7
- name: 'config',
8
- runtime: MainRuntime,
9
- dependencies: [],
10
- config: {},
11
- provider: configProvider,
12
- };
13
-
14
- export { ConfigMain };
15
-
16
- export default ConfigMain;
17
-
18
- ConfigAspect.addRuntime(ConfigMain);
@@ -1,82 +0,0 @@
1
- import { getConsumerInfo } from '@teambit/legacy/dist/consumer';
2
- import { ILegacyWorkspaceConfig, LegacyWorkspaceConfigProps } from '@teambit/legacy/dist/consumer/config';
3
- import { InvalidBitJson } from '@teambit/legacy/dist/consumer/config/exceptions';
4
- import LegacyWorkspaceConfig, {
5
- WorkspaceConfigEnsureFunction,
6
- WorkspaceConfigIsExistFunction,
7
- WorkspaceConfigLoadFunction,
8
- } from '@teambit/legacy/dist/consumer/config/workspace-config';
9
- import { PathOsBased } from '@teambit/legacy/dist/utils/path';
10
- import path from 'path';
11
-
12
- import { Config } from './config';
13
- import InvalidConfigFile from './exceptions/invalid-config-file';
14
- import { LegacyInitProps, transformLegacyPropsToExtensions, WorkspaceConfig } from './workspace-config';
15
-
16
- export type ConfigDeps = [];
17
-
18
- export type ConfigConfig = {};
19
-
20
- export default async function provideConfig() {
21
- LegacyWorkspaceConfig.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());
22
- LegacyWorkspaceConfig.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());
23
- const consumerInfo = await getConsumerInfo(process.cwd());
24
- const config: Config = await tryToGetConfig(consumerInfo?.path || process.cwd());
25
- LegacyWorkspaceConfig.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(config));
26
- return config;
27
- }
28
-
29
- // This is used to handle cases where the user run bit init --reset / --reset-hard
30
- // during this time we don't yet know if the user ask for init reset so we catch it here
31
- // other places should handle cases when there is no config
32
- // TODO: change the {} to some maybe type
33
- async function tryToGetConfig(dirPath: string): Promise<Config | any> {
34
- try {
35
- const config: Config = await Config.loadIfExist(dirPath);
36
- return config;
37
- } catch (err: any) {
38
- if (!(err instanceof InvalidBitJson) && !(err instanceof InvalidConfigFile)) {
39
- throw err;
40
- }
41
- return {};
42
- }
43
- }
44
-
45
- function onLegacyWorkspaceConfigIsExist(): WorkspaceConfigIsExistFunction {
46
- return async (dirPath: PathOsBased): Promise<boolean | undefined> => {
47
- return WorkspaceConfig.isExist(dirPath);
48
- };
49
- }
50
-
51
- function onLegacyWorkspaceLoad(config?: Config): WorkspaceConfigLoadFunction {
52
- return async (dirPath: PathOsBased): Promise<ILegacyWorkspaceConfig | undefined> => {
53
- if (config?.workspaceConfig && config.path && path.normalize(dirPath) === path.dirname(config.path)) {
54
- return (config.config as WorkspaceConfig).toLegacy();
55
- }
56
- const newConfig = await Config.loadIfExist(dirPath);
57
- if (newConfig && newConfig.type === 'workspace') {
58
- return (newConfig.config as WorkspaceConfig).toLegacy();
59
- }
60
- return undefined;
61
- };
62
- }
63
-
64
- function onLegacyWorkspaceEnsure(): WorkspaceConfigEnsureFunction {
65
- const func: WorkspaceConfigEnsureFunction = async (
66
- dirPath: string,
67
- standAlone = false,
68
- legacyWorkspaceConfigProps?: LegacyWorkspaceConfigProps
69
- ) => {
70
- let workspaceConfigProps;
71
- if (legacyWorkspaceConfigProps) {
72
- workspaceConfigProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);
73
- }
74
- const legacyInitProps: LegacyInitProps = {
75
- standAlone,
76
- };
77
- const config = await Config.ensureWorkspace(dirPath, workspaceConfigProps, legacyInitProps);
78
- const workspaceConfig = config.config;
79
- return (workspaceConfig as WorkspaceConfig).toLegacy();
80
- };
81
- return func;
82
- }
package/config.ts DELETED
@@ -1,92 +0,0 @@
1
- import { GlobalConfig } from '@teambit/harmony';
2
- import { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';
3
- import { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
4
-
5
- import { ConfigType, HostConfig } from './types';
6
- import { LegacyInitProps, WorkspaceConfig, WorkspaceConfigFileProps } from './workspace-config';
7
-
8
- // export type ConfigProps = {
9
- // workspaceConfig: WorkspaceConfig;
10
- // } | {
11
- // scopeConfig: WorkspaceConfig;
12
- // };
13
-
14
- export type SetExtensionOptions = {
15
- overrideExisting: boolean;
16
- ignoreVersion: boolean;
17
- };
18
-
19
- export class Config {
20
- constructor(public workspaceConfig?: WorkspaceConfig, public scopeConfig?: WorkspaceConfig) {}
21
- // constructor(private props: ConfigProps) {}
22
-
23
- get type(): ConfigType {
24
- if (this.workspaceConfig) {
25
- return 'workspace';
26
- }
27
- return 'scope';
28
- }
29
-
30
- get path(): PathOsBased | undefined {
31
- return this.config?.path;
32
- }
33
-
34
- get config(): HostConfig | undefined {
35
- if (this.workspaceConfig) {
36
- return this.workspaceConfig;
37
- }
38
- return this.scopeConfig;
39
- }
40
-
41
- static async loadIfExist(dirPath: PathOsBased): Promise<Config | undefined | any> {
42
- const workspaceConfig = await WorkspaceConfig.loadIfExist(dirPath);
43
- if (workspaceConfig) {
44
- return new Config(workspaceConfig);
45
- }
46
- // TODO: try load scope config here
47
- // return undefined;
48
- // TODO: change to return a maybe type
49
- return {};
50
- // return new Config(workspaceConfig, 'workspace');
51
- }
52
-
53
- /**
54
- * Ensure the given directory has a workspace config
55
- * Load if existing and create new if not
56
- *
57
- * @static
58
- * @param {PathOsBasedAbsolute} dirPath
59
- * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
60
- * @returns {Promise<WorkspaceConfig>}
61
- * @memberof WorkspaceConfig
62
- */
63
- static async ensureWorkspace(
64
- dirPath: PathOsBasedAbsolute,
65
- workspaceConfigProps: WorkspaceConfigFileProps = {} as any,
66
- legacyInitProps?: LegacyInitProps
67
- ): Promise<Config> {
68
- const workspaceConfig = await WorkspaceConfig.ensure(dirPath, workspaceConfigProps, legacyInitProps);
69
- return new Config(workspaceConfig);
70
- }
71
-
72
- get extensions(): ExtensionDataList | undefined {
73
- return this.config?.extensions;
74
- }
75
-
76
- extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined {
77
- return this.config?.extension(extensionId, ignoreVersion);
78
- }
79
-
80
- setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions) {
81
- this.config?.setExtension(extensionId, config, options);
82
- }
83
-
84
- getHarmonyConfigObject(): GlobalConfig {
85
- const config = {};
86
- if (!this.extensions) return config;
87
- this.extensions.forEach((extension) => {
88
- config[extension.stringId] = extension.config;
89
- });
90
- return config;
91
- }
92
- }
@@ -1,7 +0,0 @@
1
- import { BitError } from '@teambit/bit-error';
2
-
3
- export class ConfigDirNotDefined extends BitError {
4
- constructor() {
5
- super(`error: the config directory is not defined`);
6
- }
7
- }