@teambit/config 0.0.400 → 0.0.404

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.
@@ -1,10 +1,47 @@
1
- import configProvider from './config.provider';
2
- declare const ConfigMain: {
3
- name: string;
4
- runtime: import("@teambit/harmony").RuntimeDefinition;
5
- dependencies: never[];
6
- config: {};
7
- provider: typeof configProvider;
1
+ import { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';
2
+ import { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
3
+ import { CLIMain } from '@teambit/cli';
4
+ import { SlotRegistry, GlobalConfig } from '@teambit/harmony';
5
+ import { LegacyInitProps, WorkspaceConfig, WorkspaceConfigFileProps } from './workspace-config';
6
+ import { ConfigType, HostConfig } from './types';
7
+ export declare type SetExtensionOptions = {
8
+ overrideExisting: boolean;
9
+ ignoreVersion: boolean;
8
10
  };
9
- export { ConfigMain };
10
- export default ConfigMain;
11
+ export declare type ConfigDeps = [];
12
+ export declare type ConfigConfig = {};
13
+ /**
14
+ * pass the aspectIds entered by the user. returns the complete ids including versions.
15
+ */
16
+ export declare type PreAddingAspects = (aspectIds: string[]) => Promise<string[]>;
17
+ export declare type PreAddingAspectsSlot = SlotRegistry<PreAddingAspects>;
18
+ export declare class ConfigMain {
19
+ workspaceConfig?: WorkspaceConfig | undefined;
20
+ scopeConfig?: WorkspaceConfig | undefined;
21
+ preAddingAspectsSlot?: PreAddingAspectsSlot | undefined;
22
+ constructor(workspaceConfig?: WorkspaceConfig | undefined, scopeConfig?: WorkspaceConfig | undefined, preAddingAspectsSlot?: PreAddingAspectsSlot | undefined);
23
+ get type(): ConfigType;
24
+ get path(): PathOsBased | undefined;
25
+ get config(): HostConfig | undefined;
26
+ /**
27
+ * Ensure the given directory has a workspace config
28
+ * Load if existing and create new if not
29
+ *
30
+ * @static
31
+ * @param {PathOsBasedAbsolute} dirPath
32
+ * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
33
+ * @returns {Promise<WorkspaceConfig>}
34
+ * @memberof WorkspaceConfig
35
+ */
36
+ static ensureWorkspace(dirPath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps, legacyInitProps?: LegacyInitProps): Promise<ConfigMain>;
37
+ get extensions(): ExtensionDataList | undefined;
38
+ extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined;
39
+ setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): void;
40
+ getHarmonyConfigObject(): GlobalConfig;
41
+ registerPreAddingAspectsSlot(func: PreAddingAspects): void;
42
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
43
+ static slots: ((registerFn: () => string) => SlotRegistry<PreAddingAspects>)[];
44
+ static dependencies: import("@teambit/harmony").Aspect[];
45
+ static config: {};
46
+ static provider([cli]: [CLIMain], config: any, [preAddingAspectsSlot]: [PreAddingAspectsSlot]): Promise<any>;
47
+ }
@@ -2,10 +2,44 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
5
9
  Object.defineProperty(exports, "__esModule", {
6
10
  value: true
7
11
  });
8
- exports.default = exports.ConfigMain = void 0;
12
+ exports.ConfigMain = void 0;
13
+
14
+ function _defineProperty2() {
15
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
+ _defineProperty2 = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _consumer() {
25
+ const data = require("@teambit/legacy/dist/consumer");
26
+
27
+ _consumer = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _workspaceConfig() {
35
+ const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/config/workspace-config"));
36
+
37
+ _workspaceConfig = function () {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
9
43
 
10
44
  function _cli() {
11
45
  const data = require("@teambit/cli");
@@ -17,37 +51,208 @@ function _cli() {
17
51
  return data;
18
52
  }
19
53
 
20
- function _config() {
21
- const data = require("./config.aspect");
54
+ function _harmony() {
55
+ const data = require("@teambit/harmony");
22
56
 
23
- _config = function () {
57
+ _harmony = function () {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
64
+ function _path() {
65
+ const data = _interopRequireDefault(require("path"));
66
+
67
+ _path = function () {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
73
+
74
+ function _use() {
75
+ const data = require("./use.cmd");
76
+
77
+ _use = function () {
78
+ return data;
79
+ };
80
+
81
+ return data;
82
+ }
83
+
84
+ function _workspaceConfig2() {
85
+ const data = require("./workspace-config");
86
+
87
+ _workspaceConfig2 = function () {
24
88
  return data;
25
89
  };
26
90
 
27
91
  return data;
28
92
  }
29
93
 
30
- function _config2() {
31
- const data = _interopRequireDefault(require("./config.provider"));
94
+ function _config() {
95
+ const data = require("./config.aspect");
32
96
 
33
- _config2 = function () {
97
+ _config = function () {
34
98
  return data;
35
99
  };
36
100
 
37
101
  return data;
38
102
  }
39
103
 
40
- const ConfigMain = {
41
- name: 'config',
42
- runtime: _cli().MainRuntime,
43
- dependencies: [],
44
- config: {},
45
- provider: _config2().default
46
- };
104
+ class ConfigMain {
105
+ constructor(workspaceConfig, scopeConfig, preAddingAspectsSlot) {
106
+ this.workspaceConfig = workspaceConfig;
107
+ this.scopeConfig = scopeConfig;
108
+ this.preAddingAspectsSlot = preAddingAspectsSlot;
109
+ }
110
+
111
+ get type() {
112
+ if (this.workspaceConfig) {
113
+ return 'workspace';
114
+ }
115
+
116
+ return 'scope';
117
+ }
118
+
119
+ get path() {
120
+ var _this$config;
121
+
122
+ return (_this$config = this.config) === null || _this$config === void 0 ? void 0 : _this$config.path;
123
+ }
124
+
125
+ get config() {
126
+ if (this.workspaceConfig) {
127
+ return this.workspaceConfig;
128
+ }
129
+
130
+ return this.scopeConfig;
131
+ }
132
+ /**
133
+ * Ensure the given directory has a workspace config
134
+ * Load if existing and create new if not
135
+ *
136
+ * @static
137
+ * @param {PathOsBasedAbsolute} dirPath
138
+ * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
139
+ * @returns {Promise<WorkspaceConfig>}
140
+ * @memberof WorkspaceConfig
141
+ */
142
+
143
+
144
+ static async ensureWorkspace(dirPath, workspaceConfigProps = {}, legacyInitProps) {
145
+ const workspaceConfig = await _workspaceConfig2().WorkspaceConfig.ensure(dirPath, workspaceConfigProps, legacyInitProps);
146
+ return new ConfigMain(workspaceConfig);
147
+ }
148
+
149
+ get extensions() {
150
+ var _this$config2;
151
+
152
+ return (_this$config2 = this.config) === null || _this$config2 === void 0 ? void 0 : _this$config2.extensions;
153
+ }
154
+
155
+ extension(extensionId, ignoreVersion) {
156
+ var _this$config3;
157
+
158
+ return (_this$config3 = this.config) === null || _this$config3 === void 0 ? void 0 : _this$config3.extension(extensionId, ignoreVersion);
159
+ }
160
+
161
+ setExtension(extensionId, config, options) {
162
+ var _this$config4;
163
+
164
+ (_this$config4 = this.config) === null || _this$config4 === void 0 ? void 0 : _this$config4.setExtension(extensionId, config, options);
165
+ }
166
+
167
+ getHarmonyConfigObject() {
168
+ const config = {};
169
+ if (!this.extensions) return config;
170
+ this.extensions.forEach(extension => {
171
+ config[extension.stringId] = extension.config;
172
+ });
173
+ return config;
174
+ }
175
+
176
+ registerPreAddingAspectsSlot(func) {
177
+ var _this$preAddingAspect;
178
+
179
+ (_this$preAddingAspect = this.preAddingAspectsSlot) === null || _this$preAddingAspect === void 0 ? void 0 : _this$preAddingAspect.register(func);
180
+ }
181
+
182
+ static async provider([cli], config, [preAddingAspectsSlot]) {
183
+ _workspaceConfig().default.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());
184
+
185
+ _workspaceConfig().default.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());
186
+
187
+ const consumerInfo = await (0, _consumer().getConsumerInfo)(process.cwd());
188
+ let configMain;
189
+ const configDirPath = (consumerInfo === null || consumerInfo === void 0 ? void 0 : consumerInfo.path) || process.cwd();
190
+ const workspaceConfig = await _workspaceConfig2().WorkspaceConfig.loadIfExist(configDirPath);
191
+
192
+ if (workspaceConfig) {
193
+ configMain = new ConfigMain(workspaceConfig, undefined, preAddingAspectsSlot);
194
+ } else {
195
+ // TODO: try load scope config here
196
+ configMain = {};
197
+ }
198
+
199
+ _workspaceConfig().default.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(configMain));
200
+
201
+ _workspaceConfig().default.registerOnWorkspaceConfigReset((dirPath, resetHard) => _workspaceConfig2().WorkspaceConfig.reset(dirPath, resetHard));
202
+
203
+ cli.register(new (_use().UseCmd)(configMain));
204
+ return configMain;
205
+ }
206
+
207
+ }
208
+
47
209
  exports.ConfigMain = ConfigMain;
48
- var _default = ConfigMain;
49
- exports.default = _default;
210
+ (0, _defineProperty2().default)(ConfigMain, "runtime", _cli().MainRuntime);
211
+ (0, _defineProperty2().default)(ConfigMain, "slots", [_harmony().Slot.withType()]);
212
+ (0, _defineProperty2().default)(ConfigMain, "dependencies", [_cli().CLIAspect]);
213
+ (0, _defineProperty2().default)(ConfigMain, "config", {});
50
214
 
51
215
  _config().ConfigAspect.addRuntime(ConfigMain);
52
216
 
217
+ function onLegacyWorkspaceConfigIsExist() {
218
+ return async dirPath => {
219
+ return _workspaceConfig2().WorkspaceConfig.isExist(dirPath);
220
+ };
221
+ }
222
+
223
+ function onLegacyWorkspaceLoad(config) {
224
+ return async dirPath => {
225
+ if (config !== null && config !== void 0 && config.workspaceConfig && config.path && _path().default.normalize(dirPath) === _path().default.dirname(config.path)) {
226
+ return config.config.toLegacy();
227
+ }
228
+
229
+ const newConfig = await _workspaceConfig2().WorkspaceConfig.loadIfExist(dirPath);
230
+
231
+ if (newConfig) {
232
+ return newConfig.toLegacy();
233
+ }
234
+
235
+ return undefined;
236
+ };
237
+ }
238
+
239
+ function onLegacyWorkspaceEnsure() {
240
+ const func = async (dirPath, standAlone = false, legacyWorkspaceConfigProps) => {
241
+ let workspaceConfigProps;
242
+
243
+ if (legacyWorkspaceConfigProps) {
244
+ workspaceConfigProps = (0, _workspaceConfig2().transformLegacyPropsToExtensions)(legacyWorkspaceConfigProps);
245
+ }
246
+
247
+ const legacyInitProps = {
248
+ standAlone
249
+ };
250
+ const config = await ConfigMain.ensureWorkspace(dirPath, workspaceConfigProps, legacyInitProps);
251
+ const workspaceConfig = config.config;
252
+ return workspaceConfig.toLegacy();
253
+ };
254
+
255
+ return func;
256
+ }
257
+
53
258
  //# sourceMappingURL=config.main.runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["config.main.runtime.ts"],"names":["ConfigMain","name","runtime","MainRuntime","dependencies","config","provider","configProvider","ConfigAspect","addRuntime"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA,MAAMA,UAAU,GAAG;AACjBC,EAAAA,IAAI,EAAE,QADW;AAEjBC,EAAAA,OAAO,EAAEC,kBAFQ;AAGjBC,EAAAA,YAAY,EAAE,EAHG;AAIjBC,EAAAA,MAAM,EAAE,EAJS;AAKjBC,EAAAA,QAAQ,EAAEC;AALO,CAAnB;;eAUeP,U;;;AAEfQ,uBAAaC,UAAb,CAAwBT,UAAxB","sourcesContent":["import { MainRuntime } from '@teambit/cli';\n\nimport { ConfigAspect } from './config.aspect';\nimport configProvider from './config.provider';\n\nconst ConfigMain = {\n name: 'config',\n runtime: MainRuntime,\n dependencies: [],\n config: {},\n provider: configProvider,\n};\n\nexport { ConfigMain };\n\nexport default ConfigMain;\n\nConfigAspect.addRuntime(ConfigMain);\n"]}
1
+ {"version":3,"sources":["config.main.runtime.ts"],"names":["ConfigMain","constructor","workspaceConfig","scopeConfig","preAddingAspectsSlot","type","path","config","ensureWorkspace","dirPath","workspaceConfigProps","legacyInitProps","WorkspaceConfig","ensure","extensions","extension","extensionId","ignoreVersion","setExtension","options","getHarmonyConfigObject","forEach","stringId","registerPreAddingAspectsSlot","func","register","provider","cli","LegacyWorkspaceConfig","registerOnWorkspaceConfigIsExist","onLegacyWorkspaceConfigIsExist","registerOnWorkspaceConfigEnsuring","onLegacyWorkspaceEnsure","consumerInfo","process","cwd","configMain","configDirPath","loadIfExist","undefined","registerOnWorkspaceConfigLoading","onLegacyWorkspaceLoad","registerOnWorkspaceConfigReset","resetHard","reset","UseCmd","MainRuntime","Slot","withType","CLIAspect","ConfigAspect","addRuntime","isExist","normalize","dirname","toLegacy","newConfig","standAlone","legacyWorkspaceConfigProps"],"mappings":"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","sourcesContent":["import { getConsumerInfo } from '@teambit/legacy/dist/consumer';\nimport {\n ExtensionDataEntry,\n ExtensionDataList,\n ILegacyWorkspaceConfig,\n LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigEnsureFunction,\n WorkspaceConfigIsExistFunction,\n WorkspaceConfigLoadFunction,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { CLIAspect, MainRuntime, CLIMain } from '@teambit/cli';\nimport { Slot, SlotRegistry, GlobalConfig } from '@teambit/harmony';\nimport path from 'path';\nimport { UseCmd } from './use.cmd';\nimport {\n LegacyInitProps,\n transformLegacyPropsToExtensions,\n WorkspaceConfig,\n WorkspaceConfigFileProps,\n} from './workspace-config';\nimport { ConfigType, HostConfig } from './types';\nimport { ConfigAspect } from './config.aspect';\n\nexport type SetExtensionOptions = {\n overrideExisting: boolean;\n ignoreVersion: boolean;\n};\n\nexport type ConfigDeps = [];\n\nexport type ConfigConfig = {};\n\n/**\n * pass the aspectIds entered by the user. returns the complete ids including versions.\n */\nexport type PreAddingAspects = (aspectIds: string[]) => Promise<string[]>;\nexport type PreAddingAspectsSlot = SlotRegistry<PreAddingAspects>;\n\nexport class ConfigMain {\n constructor(\n public workspaceConfig?: WorkspaceConfig,\n public scopeConfig?: WorkspaceConfig,\n public preAddingAspectsSlot?: PreAddingAspectsSlot\n ) {}\n\n get type(): ConfigType {\n if (this.workspaceConfig) {\n return 'workspace';\n }\n return 'scope';\n }\n\n get path(): PathOsBased | undefined {\n return this.config?.path;\n }\n\n get config(): HostConfig | undefined {\n if (this.workspaceConfig) {\n return this.workspaceConfig;\n }\n return this.scopeConfig;\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 ensureWorkspace(\n dirPath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any,\n legacyInitProps?: LegacyInitProps\n ): Promise<ConfigMain> {\n const workspaceConfig = await WorkspaceConfig.ensure(dirPath, workspaceConfigProps, legacyInitProps);\n return new ConfigMain(workspaceConfig);\n }\n\n get extensions(): ExtensionDataList | undefined {\n return this.config?.extensions;\n }\n\n extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined {\n return this.config?.extension(extensionId, ignoreVersion);\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions) {\n this.config?.setExtension(extensionId, config, options);\n }\n\n getHarmonyConfigObject(): GlobalConfig {\n const config = {};\n if (!this.extensions) return config;\n this.extensions.forEach((extension) => {\n config[extension.stringId] = extension.config;\n });\n return config;\n }\n\n registerPreAddingAspectsSlot(func: PreAddingAspects) {\n this.preAddingAspectsSlot?.register(func);\n }\n\n static runtime = MainRuntime;\n static slots = [Slot.withType<PreAddingAspects>()];\n static dependencies = [CLIAspect];\n static config = {};\n static async provider([cli]: [CLIMain], config: any, [preAddingAspectsSlot]: [PreAddingAspectsSlot]) {\n LegacyWorkspaceConfig.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());\n const consumerInfo = await getConsumerInfo(process.cwd());\n\n let configMain: ConfigMain | any;\n const configDirPath = consumerInfo?.path || process.cwd();\n const workspaceConfig = await WorkspaceConfig.loadIfExist(configDirPath);\n if (workspaceConfig) {\n configMain = new ConfigMain(workspaceConfig, undefined, preAddingAspectsSlot);\n } else {\n // TODO: try load scope config here\n configMain = {};\n }\n LegacyWorkspaceConfig.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(configMain));\n LegacyWorkspaceConfig.registerOnWorkspaceConfigReset((dirPath, resetHard) =>\n WorkspaceConfig.reset(dirPath, resetHard)\n );\n cli.register(new UseCmd(configMain));\n return configMain;\n }\n}\n\nConfigAspect.addRuntime(ConfigMain);\n\nfunction onLegacyWorkspaceConfigIsExist(): WorkspaceConfigIsExistFunction {\n return async (dirPath: PathOsBased): Promise<boolean | undefined> => {\n return WorkspaceConfig.isExist(dirPath);\n };\n}\n\nfunction onLegacyWorkspaceLoad(config?: ConfigMain): 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 WorkspaceConfig.loadIfExist(dirPath);\n if (newConfig) {\n return newConfig.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 ConfigMain.ensureWorkspace(dirPath, workspaceConfigProps, legacyInitProps);\n const workspaceConfig = config.config;\n return (workspaceConfig as WorkspaceConfig).toLegacy();\n };\n return func;\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export { Config } from './config';
2
- export type { ConfigMain } from './config.main.runtime';
1
+ export { ConfigMain } from './config.main.runtime';
3
2
  export { ConfigAspect, ConfigRuntime } from './config.aspect';
4
3
  export { ComponentScopeDirMap, getWorkspaceConfigTemplateParsed, stringifyWorkspaceConfig } from './workspace-config';
package/dist/index.js CHANGED
@@ -9,22 +9,22 @@ Object.defineProperty(exports, "ComponentScopeDirMap", {
9
9
  return _workspaceConfig().ComponentScopeDirMap;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "Config", {
12
+ Object.defineProperty(exports, "ConfigAspect", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _config().Config;
15
+ return _config().ConfigAspect;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "ConfigAspect", {
18
+ Object.defineProperty(exports, "ConfigMain", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _config2().ConfigAspect;
21
+ return _configMain().ConfigMain;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "ConfigRuntime", {
25
25
  enumerable: true,
26
26
  get: function () {
27
- return _config2().ConfigRuntime;
27
+ return _config().ConfigRuntime;
28
28
  }
29
29
  });
30
30
  Object.defineProperty(exports, "getWorkspaceConfigTemplateParsed", {
@@ -40,20 +40,20 @@ Object.defineProperty(exports, "stringifyWorkspaceConfig", {
40
40
  }
41
41
  });
42
42
 
43
- function _config() {
44
- const data = require("./config");
43
+ function _configMain() {
44
+ const data = require("./config.main.runtime");
45
45
 
46
- _config = function () {
46
+ _configMain = function () {
47
47
  return data;
48
48
  };
49
49
 
50
50
  return data;
51
51
  }
52
52
 
53
- function _config2() {
53
+ function _config() {
54
54
  const data = require("./config.aspect");
55
55
 
56
- _config2 = function () {
56
+ _config = function () {
57
57
  return data;
58
58
  };
59
59
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { Config } from './config';\nexport type { ConfigMain } from './config.main.runtime';\nexport { ConfigAspect, ConfigRuntime } from './config.aspect';\nexport { ComponentScopeDirMap, getWorkspaceConfigTemplateParsed, stringifyWorkspaceConfig } from './workspace-config';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { ConfigMain } from './config.main.runtime';\nexport { ConfigAspect, ConfigRuntime } from './config.aspect';\nexport { ComponentScopeDirMap, getWorkspaceConfigTemplateParsed, stringifyWorkspaceConfig } from './workspace-config';\n"]}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';
2
2
  import { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
3
- import { SetExtensionOptions } from './config';
3
+ import { SetExtensionOptions } from './config.main.runtime';
4
4
  export declare type WriteOptions = {
5
5
  dir?: PathOsBasedAbsolute;
6
6
  };
@@ -0,0 +1,16 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { ConfigMain } from '@teambit/config';
3
+ export declare class UseCmd implements Command {
4
+ private config;
5
+ name: string;
6
+ shortDescription: string;
7
+ group: string;
8
+ description: string;
9
+ alias: string;
10
+ options: CommandOptions;
11
+ loader: boolean;
12
+ migration: boolean;
13
+ remoteOp: boolean;
14
+ constructor(config: ConfigMain);
15
+ report([ids]: [string[]]): Promise<any>;
16
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.flat.js");
6
+
7
+ require("core-js/modules/es.array.iterator.js");
8
+
9
+ require("core-js/modules/es.array.unscopables.flat.js");
10
+
11
+ require("core-js/modules/es.promise.js");
12
+
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+ exports.UseCmd = void 0;
17
+
18
+ function _defineProperty2() {
19
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
+
21
+ _defineProperty2 = function () {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ function _path() {
29
+ const data = _interopRequireDefault(require("path"));
30
+
31
+ _path = function () {
32
+ return data;
33
+ };
34
+
35
+ return data;
36
+ }
37
+
38
+ function _chalk() {
39
+ const data = _interopRequireDefault(require("chalk"));
40
+
41
+ _chalk = function () {
42
+ return data;
43
+ };
44
+
45
+ return data;
46
+ }
47
+
48
+ class UseCmd {
49
+ constructor(config) {
50
+ this.config = config;
51
+ (0, _defineProperty2().default)(this, "name", 'use [ids...]');
52
+ (0, _defineProperty2().default)(this, "shortDescription", 'set up aspects in the workspace/scope config');
53
+ (0, _defineProperty2().default)(this, "group", 'collaborate');
54
+ (0, _defineProperty2().default)(this, "description", 'set up aspects in the workspace/scope config');
55
+ (0, _defineProperty2().default)(this, "alias", '');
56
+ (0, _defineProperty2().default)(this, "options", []);
57
+ (0, _defineProperty2().default)(this, "loader", true);
58
+ (0, _defineProperty2().default)(this, "migration", true);
59
+ (0, _defineProperty2().default)(this, "remoteOp", true);
60
+ }
61
+
62
+ async report([ids = []]) {
63
+ var _this$config$preAddin;
64
+
65
+ const config = this.config.workspaceConfig || this.config.scopeConfig;
66
+
67
+ if (!config) {
68
+ throw new Error(`please run "bit use" from either a workspace or a scope`);
69
+ }
70
+
71
+ const preAddingAspectFunctions = (_this$config$preAddin = this.config.preAddingAspectsSlot) === null || _this$config$preAddin === void 0 ? void 0 : _this$config$preAddin.toArray();
72
+ if (!preAddingAspectFunctions) throw new Error(`can't find any registration to the preAddingAspects slot`);
73
+ const componentIds = (await Promise.all(preAddingAspectFunctions.map(([, func]) => func(ids)))).flat();
74
+ componentIds.forEach(compId => {
75
+ config.setExtension(compId, {}, {
76
+ overrideExisting: false,
77
+ ignoreVersion: false
78
+ });
79
+ });
80
+ await config.write({
81
+ dir: _path().default.dirname(config.path)
82
+ });
83
+ return _chalk().default.green(`the following aspect(s) were saved into ${this.config.workspaceConfig ? 'workspace.jsonc' : 'scopes.jsonc'} file:
84
+ ${componentIds.join('\n')}`);
85
+ }
86
+
87
+ }
88
+
89
+ exports.UseCmd = UseCmd;
90
+
91
+ //# sourceMappingURL=use.cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["use.cmd.ts"],"names":["UseCmd","constructor","config","report","ids","workspaceConfig","scopeConfig","Error","preAddingAspectFunctions","preAddingAspectsSlot","toArray","componentIds","Promise","all","map","func","flat","forEach","compId","setExtension","overrideExisting","ignoreVersion","write","dir","path","dirname","chalk","green","join"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,MAAN,CAAgC;AAWrCC,EAAAA,WAAW,CAASC,MAAT,EAA6B;AAAA,SAApBA,MAAoB,GAApBA,MAAoB;AAAA,kDAVjC,cAUiC;AAAA,8DATrB,8CASqB;AAAA,mDARhC,aAQgC;AAAA,yDAP1B,8CAO0B;AAAA,mDANhC,EAMgC;AAAA,qDAL9B,EAK8B;AAAA,oDAJ/B,IAI+B;AAAA,uDAH5B,IAG4B;AAAA,sDAF7B,IAE6B;AAAE;;AAE9B,QAANC,MAAM,CAAC,CAACC,GAAG,GAAG,EAAP,CAAD,EAAuC;AAAA;;AACjD,UAAMF,MAAM,GAAG,KAAKA,MAAL,CAAYG,eAAZ,IAA+B,KAAKH,MAAL,CAAYI,WAA1D;;AACA,QAAI,CAACJ,MAAL,EAAa;AACX,YAAM,IAAIK,KAAJ,CAAW,yDAAX,CAAN;AACD;;AACD,UAAMC,wBAAwB,4BAAG,KAAKN,MAAL,CAAYO,oBAAf,0DAAG,sBAAkCC,OAAlC,EAAjC;AACA,QAAI,CAACF,wBAAL,EAA+B,MAAM,IAAID,KAAJ,CAAW,0DAAX,CAAN;AAC/B,UAAMI,YAAY,GAAG,CAAC,MAAMC,OAAO,CAACC,GAAR,CAAYL,wBAAwB,CAACM,GAAzB,CAA6B,CAAC,GAAGC,IAAH,CAAD,KAAcA,IAAI,CAACX,GAAD,CAA/C,CAAZ,CAAP,EAA2EY,IAA3E,EAArB;AAEAL,IAAAA,YAAY,CAACM,OAAb,CAAsBC,MAAD,IAAY;AAC/BhB,MAAAA,MAAM,CAACiB,YAAP,CACED,MADF,EAEE,EAFF,EAGE;AACEE,QAAAA,gBAAgB,EAAE,KADpB;AAEEC,QAAAA,aAAa,EAAE;AAFjB,OAHF;AAQD,KATD;AAUA,UAAMnB,MAAM,CAACoB,KAAP,CAAa;AAAEC,MAAAA,GAAG,EAAEC,gBAAKC,OAAL,CAAavB,MAAM,CAACsB,IAApB;AAAP,KAAb,CAAN;AAEA,WAAOE,iBAAMC,KAAN,CAAa,2CAClB,KAAKzB,MAAL,CAAYG,eAAZ,GAA8B,iBAA9B,GAAkD,cACnD;AACL,EAAEM,YAAY,CAACiB,IAAb,CAAkB,IAAlB,CAAwB,EAHf,CAAP;AAID;;AAtCoC","sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport path from 'path';\nimport chalk from 'chalk';\nimport { ConfigMain } from '@teambit/config';\n\nexport class UseCmd implements Command {\n name = 'use [ids...]';\n shortDescription = 'set up aspects in the workspace/scope config';\n group = 'collaborate';\n description = 'set up aspects in the workspace/scope config';\n alias = '';\n options = [] as CommandOptions;\n loader = true;\n migration = true;\n remoteOp = true;\n\n constructor(private config: ConfigMain) {}\n\n async report([ids = []]: [string[]]): Promise<any> {\n const config = this.config.workspaceConfig || this.config.scopeConfig;\n if (!config) {\n throw new Error(`please run \"bit use\" from either a workspace or a scope`);\n }\n const preAddingAspectFunctions = this.config.preAddingAspectsSlot?.toArray();\n if (!preAddingAspectFunctions) throw new Error(`can't find any registration to the preAddingAspects slot`);\n const componentIds = (await Promise.all(preAddingAspectFunctions.map(([, func]) => func(ids)))).flat();\n\n componentIds.forEach((compId) => {\n config.setExtension(\n compId,\n {},\n {\n overrideExisting: false,\n ignoreVersion: false,\n }\n );\n });\n await config.write({ dir: path.dirname(config.path) });\n\n return chalk.green(`the following aspect(s) were saved into ${\n this.config.workspaceConfig ? 'workspace.jsonc' : 'scopes.jsonc'\n } file:\n${componentIds.join('\\n')}`);\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { ExtensionDataList, ILegacyWorkspaceConfig } from '@teambit/legacy/dist/
4
4
  import LegacyWorkspaceConfig, { WorkspaceConfigProps as LegacyWorkspaceConfigProps } from '@teambit/legacy/dist/consumer/config/workspace-config';
5
5
  import { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
6
6
  import { CommentJSONValue } from 'comment-json';
7
- import { SetExtensionOptions } from './config';
7
+ import { SetExtensionOptions } from './config.main.runtime';
8
8
  import { HostConfig } from './types';
9
9
  export declare type LegacyInitProps = {
10
10
  standAlone?: boolean;
@@ -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 && 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"]}
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.main.runtime';\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,23 +1,23 @@
1
1
  {
2
2
  "name": "@teambit/config",
3
- "version": "0.0.400",
3
+ "version": "0.0.404",
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.400"
9
+ "version": "0.0.404"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
13
+ "chalk": "2.4.2",
13
14
  "comment-json": "3.0.3",
14
15
  "fs-extra": "10.0.0",
15
16
  "lodash": "4.17.21",
16
- "chalk": "2.4.2",
17
17
  "@babel/runtime": "7.12.18",
18
18
  "core-js": "^3.0.0",
19
- "@teambit/cli": "0.0.389",
20
- "@teambit/bit-error": "0.0.375"
19
+ "@teambit/cli": "0.0.392",
20
+ "@teambit/bit-error": "0.0.378"
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.175",
33
+ "@teambit/legacy": "1.0.178",
34
34
  "react-dom": "^16.8.0 || ^17.0.0",
35
35
  "react": "^16.8.0 || ^17.0.0"
36
36
  },
@@ -58,7 +58,7 @@
58
58
  "react": "-"
59
59
  },
60
60
  "peerDependencies": {
61
- "@teambit/legacy": "1.0.175",
61
+ "@teambit/legacy": "1.0.178",
62
62
  "react-dom": "^16.8.0 || ^17.0.0",
63
63
  "react": "^16.8.0 || ^17.0.0"
64
64
  }
package/dist/config.d.ts DELETED
@@ -1,33 +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
- import { ConfigType, HostConfig } from './types';
5
- import { LegacyInitProps, WorkspaceConfig, WorkspaceConfigFileProps } from './workspace-config';
6
- export declare type SetExtensionOptions = {
7
- overrideExisting: boolean;
8
- ignoreVersion: boolean;
9
- };
10
- export declare class Config {
11
- workspaceConfig?: WorkspaceConfig | undefined;
12
- scopeConfig?: WorkspaceConfig | undefined;
13
- constructor(workspaceConfig?: WorkspaceConfig | undefined, scopeConfig?: WorkspaceConfig | undefined);
14
- get type(): ConfigType;
15
- get path(): PathOsBased | undefined;
16
- get config(): HostConfig | undefined;
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
- */
28
- static ensureWorkspace(dirPath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps, legacyInitProps?: LegacyInitProps): Promise<Config>;
29
- get extensions(): ExtensionDataList | undefined;
30
- extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined;
31
- setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): void;
32
- getHarmonyConfigObject(): GlobalConfig;
33
- }
package/dist/config.js DELETED
@@ -1,109 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.promise.js");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Config = void 0;
9
-
10
- function _workspaceConfig() {
11
- const data = require("./workspace-config");
12
-
13
- _workspaceConfig = function () {
14
- return data;
15
- };
16
-
17
- return data;
18
- }
19
-
20
- class Config {
21
- constructor(workspaceConfig, scopeConfig) {
22
- this.workspaceConfig = workspaceConfig;
23
- this.scopeConfig = scopeConfig;
24
- } // constructor(private props: ConfigProps) {}
25
-
26
-
27
- get type() {
28
- if (this.workspaceConfig) {
29
- return 'workspace';
30
- }
31
-
32
- return 'scope';
33
- }
34
-
35
- get path() {
36
- var _this$config;
37
-
38
- return (_this$config = this.config) === null || _this$config === void 0 ? void 0 : _this$config.path;
39
- }
40
-
41
- get config() {
42
- if (this.workspaceConfig) {
43
- return this.workspaceConfig;
44
- }
45
-
46
- return this.scopeConfig;
47
- }
48
-
49
- static async loadIfExist(dirPath) {
50
- const workspaceConfig = await _workspaceConfig().WorkspaceConfig.loadIfExist(dirPath);
51
-
52
- if (workspaceConfig) {
53
- return new Config(workspaceConfig);
54
- } // TODO: try load scope config here
55
- // return undefined;
56
- // TODO: change to return a maybe type
57
-
58
-
59
- return {}; // return new Config(workspaceConfig, 'workspace');
60
- }
61
- /**
62
- * Ensure the given directory has a workspace config
63
- * Load if existing and create new if not
64
- *
65
- * @static
66
- * @param {PathOsBasedAbsolute} dirPath
67
- * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
68
- * @returns {Promise<WorkspaceConfig>}
69
- * @memberof WorkspaceConfig
70
- */
71
-
72
-
73
- static async ensureWorkspace(dirPath, workspaceConfigProps = {}, legacyInitProps) {
74
- const workspaceConfig = await _workspaceConfig().WorkspaceConfig.ensure(dirPath, workspaceConfigProps, legacyInitProps);
75
- return new Config(workspaceConfig);
76
- }
77
-
78
- get extensions() {
79
- var _this$config2;
80
-
81
- return (_this$config2 = this.config) === null || _this$config2 === void 0 ? void 0 : _this$config2.extensions;
82
- }
83
-
84
- extension(extensionId, ignoreVersion) {
85
- var _this$config3;
86
-
87
- return (_this$config3 = this.config) === null || _this$config3 === void 0 ? void 0 : _this$config3.extension(extensionId, ignoreVersion);
88
- }
89
-
90
- setExtension(extensionId, config, options) {
91
- var _this$config4;
92
-
93
- (_this$config4 = this.config) === null || _this$config4 === void 0 ? void 0 : _this$config4.setExtension(extensionId, config, options);
94
- }
95
-
96
- getHarmonyConfigObject() {
97
- const config = {};
98
- if (!this.extensions) return config;
99
- this.extensions.forEach(extension => {
100
- config[extension.stringId] = extension.config;
101
- });
102
- return config;
103
- }
104
-
105
- }
106
-
107
- exports.Config = Config;
108
-
109
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["config.ts"],"names":["Config","constructor","workspaceConfig","scopeConfig","type","path","config","loadIfExist","dirPath","WorkspaceConfig","ensureWorkspace","workspaceConfigProps","legacyInitProps","ensure","extensions","extension","extensionId","ignoreVersion","setExtension","options","getHarmonyConfigObject","forEach","stringId"],"mappings":";;;;;;;;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAaO,MAAMA,MAAN,CAAa;AAClBC,EAAAA,WAAW,CAAQC,eAAR,EAAkDC,WAAlD,EAAiF;AAAA,SAAzED,eAAyE,GAAzEA,eAAyE;AAAA,SAA/BC,WAA+B,GAA/BA,WAA+B;AAAE,GAD5E,CAElB;;;AAEQ,MAAJC,IAAI,GAAe;AACrB,QAAI,KAAKF,eAAT,EAA0B;AACxB,aAAO,WAAP;AACD;;AACD,WAAO,OAAP;AACD;;AAEO,MAAJG,IAAI,GAA4B;AAAA;;AAClC,2BAAO,KAAKC,MAAZ,iDAAO,aAAaD,IAApB;AACD;;AAES,MAANC,MAAM,GAA2B;AACnC,QAAI,KAAKJ,eAAT,EAA0B;AACxB,aAAO,KAAKA,eAAZ;AACD;;AACD,WAAO,KAAKC,WAAZ;AACD;;AAEuB,eAAXI,WAAW,CAACC,OAAD,EAA0D;AAChF,UAAMN,eAAe,GAAG,MAAMO,mCAAgBF,WAAhB,CAA4BC,OAA5B,CAA9B;;AACA,QAAIN,eAAJ,EAAqB;AACnB,aAAO,IAAIF,MAAJ,CAAWE,eAAX,CAAP;AACD,KAJ+E,CAKhF;AACA;AACA;;;AACA,WAAO,EAAP,CARgF,CAShF;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAC8B,eAAfQ,eAAe,CAC1BF,OAD0B,EAE1BG,oBAA8C,GAAG,EAFvB,EAG1BC,eAH0B,EAIT;AACjB,UAAMV,eAAe,GAAG,MAAMO,mCAAgBI,MAAhB,CAAuBL,OAAvB,EAAgCG,oBAAhC,EAAsDC,eAAtD,CAA9B;AACA,WAAO,IAAIZ,MAAJ,CAAWE,eAAX,CAAP;AACD;;AAEa,MAAVY,UAAU,GAAkC;AAAA;;AAC9C,4BAAO,KAAKR,MAAZ,kDAAO,cAAaQ,UAApB;AACD;;AAEDC,EAAAA,SAAS,CAACC,WAAD,EAAsBC,aAAtB,EAA8E;AAAA;;AACrF,4BAAO,KAAKX,MAAZ,kDAAO,cAAaS,SAAb,CAAuBC,WAAvB,EAAoCC,aAApC,CAAP;AACD;;AAEDC,EAAAA,YAAY,CAACF,WAAD,EAAsBV,MAAtB,EAAmDa,OAAnD,EAAiF;AAAA;;AAC3F,0BAAKb,MAAL,gEAAaY,YAAb,CAA0BF,WAA1B,EAAuCV,MAAvC,EAA+Ca,OAA/C;AACD;;AAEDC,EAAAA,sBAAsB,GAAiB;AACrC,UAAMd,MAAM,GAAG,EAAf;AACA,QAAI,CAAC,KAAKQ,UAAV,EAAsB,OAAOR,MAAP;AACtB,SAAKQ,UAAL,CAAgBO,OAAhB,CAAyBN,SAAD,IAAe;AACrCT,MAAAA,MAAM,CAACS,SAAS,CAACO,QAAX,CAAN,GAA6BP,SAAS,CAACT,MAAvC;AACD,KAFD;AAGA,WAAOA,MAAP;AACD;;AAxEiB","sourcesContent":["import { GlobalConfig } from '@teambit/harmony';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\n\nimport { ConfigType, HostConfig } from './types';\nimport { LegacyInitProps, WorkspaceConfig, WorkspaceConfigFileProps } from './workspace-config';\n\n// export type ConfigProps = {\n// workspaceConfig: WorkspaceConfig;\n// } | {\n// scopeConfig: WorkspaceConfig;\n// };\n\nexport type SetExtensionOptions = {\n overrideExisting: boolean;\n ignoreVersion: boolean;\n};\n\nexport class Config {\n constructor(public workspaceConfig?: WorkspaceConfig, public scopeConfig?: WorkspaceConfig) {}\n // constructor(private props: ConfigProps) {}\n\n get type(): ConfigType {\n if (this.workspaceConfig) {\n return 'workspace';\n }\n return 'scope';\n }\n\n get path(): PathOsBased | undefined {\n return this.config?.path;\n }\n\n get config(): HostConfig | undefined {\n if (this.workspaceConfig) {\n return this.workspaceConfig;\n }\n return this.scopeConfig;\n }\n\n static async loadIfExist(dirPath: PathOsBased): Promise<Config | undefined | any> {\n const workspaceConfig = await WorkspaceConfig.loadIfExist(dirPath);\n if (workspaceConfig) {\n return new Config(workspaceConfig);\n }\n // TODO: try load scope config here\n // return undefined;\n // TODO: change to return a maybe type\n return {};\n // return new Config(workspaceConfig, 'workspace');\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 ensureWorkspace(\n dirPath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any,\n legacyInitProps?: LegacyInitProps\n ): Promise<Config> {\n const workspaceConfig = await WorkspaceConfig.ensure(dirPath, workspaceConfigProps, legacyInitProps);\n return new Config(workspaceConfig);\n }\n\n get extensions(): ExtensionDataList | undefined {\n return this.config?.extensions;\n }\n\n extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined {\n return this.config?.extension(extensionId, ignoreVersion);\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions) {\n this.config?.setExtension(extensionId, config, options);\n }\n\n getHarmonyConfigObject(): GlobalConfig {\n const config = {};\n if (!this.extensions) return config;\n this.extensions.forEach((extension) => {\n config[extension.stringId] = extension.config;\n });\n return config;\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- import { Config } from './config';
2
- export declare type ConfigDeps = [];
3
- export declare type ConfigConfig = {};
4
- export default function provideConfig(): Promise<Config>;
@@ -1,155 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- require("core-js/modules/es.promise.js");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = provideConfig;
11
-
12
- function _consumer() {
13
- const data = require("@teambit/legacy/dist/consumer");
14
-
15
- _consumer = function () {
16
- return data;
17
- };
18
-
19
- return data;
20
- }
21
-
22
- function _exceptions() {
23
- const data = require("@teambit/legacy/dist/consumer/config/exceptions");
24
-
25
- _exceptions = function () {
26
- return data;
27
- };
28
-
29
- return data;
30
- }
31
-
32
- function _workspaceConfig() {
33
- const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/config/workspace-config"));
34
-
35
- _workspaceConfig = function () {
36
- return data;
37
- };
38
-
39
- return data;
40
- }
41
-
42
- function _path() {
43
- const data = _interopRequireDefault(require("path"));
44
-
45
- _path = function () {
46
- return data;
47
- };
48
-
49
- return data;
50
- }
51
-
52
- function _config() {
53
- const data = require("./config");
54
-
55
- _config = function () {
56
- return data;
57
- };
58
-
59
- return data;
60
- }
61
-
62
- function _invalidConfigFile() {
63
- const data = _interopRequireDefault(require("./exceptions/invalid-config-file"));
64
-
65
- _invalidConfigFile = function () {
66
- return data;
67
- };
68
-
69
- return data;
70
- }
71
-
72
- function _workspaceConfig2() {
73
- const data = require("./workspace-config");
74
-
75
- _workspaceConfig2 = function () {
76
- return data;
77
- };
78
-
79
- return data;
80
- }
81
-
82
- async function provideConfig() {
83
- _workspaceConfig().default.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());
84
-
85
- _workspaceConfig().default.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());
86
-
87
- const consumerInfo = await (0, _consumer().getConsumerInfo)(process.cwd());
88
- const config = await tryToGetConfig((consumerInfo === null || consumerInfo === void 0 ? void 0 : consumerInfo.path) || process.cwd());
89
-
90
- _workspaceConfig().default.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(config));
91
-
92
- _workspaceConfig().default.registerOnWorkspaceConfigReset((dirPath, resetHard) => _workspaceConfig2().WorkspaceConfig.reset(dirPath, resetHard));
93
-
94
- return config;
95
- } // This is used to handle cases where the user run bit init --reset / --reset-hard
96
- // during this time we don't yet know if the user ask for init reset so we catch it here
97
- // other places should handle cases when there is no config
98
- // TODO: change the {} to some maybe type
99
-
100
-
101
- async function tryToGetConfig(dirPath) {
102
- try {
103
- const config = await _config().Config.loadIfExist(dirPath);
104
- return config;
105
- } catch (err) {
106
- if (!(err instanceof _exceptions().InvalidBitJson) && !(err instanceof _invalidConfigFile().default)) {
107
- throw err;
108
- }
109
-
110
- return {};
111
- }
112
- }
113
-
114
- function onLegacyWorkspaceConfigIsExist() {
115
- return async dirPath => {
116
- return _workspaceConfig2().WorkspaceConfig.isExist(dirPath);
117
- };
118
- }
119
-
120
- function onLegacyWorkspaceLoad(config) {
121
- return async dirPath => {
122
- if (config !== null && config !== void 0 && config.workspaceConfig && config.path && _path().default.normalize(dirPath) === _path().default.dirname(config.path)) {
123
- return config.config.toLegacy();
124
- }
125
-
126
- const newConfig = await _config().Config.loadIfExist(dirPath);
127
-
128
- if (newConfig && newConfig.type === 'workspace') {
129
- return newConfig.config.toLegacy();
130
- }
131
-
132
- return undefined;
133
- };
134
- }
135
-
136
- function onLegacyWorkspaceEnsure() {
137
- const func = async (dirPath, standAlone = false, legacyWorkspaceConfigProps) => {
138
- let workspaceConfigProps;
139
-
140
- if (legacyWorkspaceConfigProps) {
141
- workspaceConfigProps = (0, _workspaceConfig2().transformLegacyPropsToExtensions)(legacyWorkspaceConfigProps);
142
- }
143
-
144
- const legacyInitProps = {
145
- standAlone
146
- };
147
- const config = await _config().Config.ensureWorkspace(dirPath, workspaceConfigProps, legacyInitProps);
148
- const workspaceConfig = config.config;
149
- return workspaceConfig.toLegacy();
150
- };
151
-
152
- return func;
153
- }
154
-
155
- //# sourceMappingURL=config.provider.js.map
@@ -1 +0,0 @@
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":"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","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"]}