@teambit/config 0.0.398 → 0.0.402
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.main.runtime.d.ts +46 -9
- package/dist/config.main.runtime.js +221 -16
- package/dist/config.main.runtime.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/use.cmd.d.ts +16 -0
- package/dist/use.cmd.js +91 -0
- package/dist/use.cmd.js.map +1 -0
- package/dist/workspace-config.d.ts +1 -1
- package/dist/workspace-config.js.map +1 -1
- package/package.json +18 -9
- package/schema.json +156 -0
- package/tsconfig.json +34 -0
- package/dist/config.d.ts +0 -33
- package/dist/config.js +0 -109
- package/dist/config.js.map +0 -1
- package/dist/config.provider.d.ts +0 -4
- package/dist/config.provider.js +0 -155
- package/dist/config.provider.js.map +0 -1
|
@@ -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.
|
|
3
|
+
"version": "0.0.402",
|
|
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.
|
|
9
|
+
"version": "0.0.402"
|
|
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.
|
|
20
|
-
"@teambit/bit-error": "0.0.
|
|
19
|
+
"@teambit/cli": "0.0.390",
|
|
20
|
+
"@teambit/bit-error": "0.0.376"
|
|
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.
|
|
33
|
+
"@teambit/legacy": "1.0.176",
|
|
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.
|
|
61
|
+
"@teambit/legacy": "1.0.176",
|
|
62
62
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
63
63
|
"react": "^16.8.0 || ^17.0.0"
|
|
64
64
|
}
|
|
@@ -67,8 +67,17 @@
|
|
|
67
67
|
"files": [
|
|
68
68
|
"dist",
|
|
69
69
|
"!dist/tsconfig.tsbuildinfo",
|
|
70
|
-
"
|
|
71
|
-
"
|
|
70
|
+
"**/*.md",
|
|
71
|
+
"**/*.mdx",
|
|
72
|
+
"**/*.js",
|
|
73
|
+
"**/*.json",
|
|
74
|
+
"**/*.sass",
|
|
75
|
+
"**/*.scss",
|
|
76
|
+
"**/*.less",
|
|
77
|
+
"**/*.css",
|
|
78
|
+
"**/*.css",
|
|
79
|
+
"**/*.jpeg",
|
|
80
|
+
"**/*.gif"
|
|
72
81
|
],
|
|
73
82
|
"private": false,
|
|
74
83
|
"engines": {
|
package/schema.json
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Configuration file of the Bit workspace.",
|
|
4
|
+
"description": "This is the main configuration file of your bit workspace. for full documentation, please see: https://docs.bit.dev/configuration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"teambit.workspace/workspace": {
|
|
8
|
+
"description": "Main configuration of the Bit workspace.",
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"name": {
|
|
12
|
+
"description": "the name of the component workspace. used for development purposes.",
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"icon": {
|
|
16
|
+
"description": "set the icon url to be shown on the Bit server.",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"defaultOwner": {
|
|
20
|
+
"description": "applies only on bit.dev. configure the main owner of your workspace.",
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"defaultScope": {
|
|
24
|
+
"description": "set the default scope when there is no matching for the component in the components array.",
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"defaultDirectory": {
|
|
28
|
+
"description": "set the default directory when there is no matching for the component in the components array.",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"vendorDirectory": {
|
|
32
|
+
"description": "",
|
|
33
|
+
"type": "string"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": ["defaultScope"]
|
|
37
|
+
},
|
|
38
|
+
"teambit.dependencies/dependency-resolver": {
|
|
39
|
+
"description": "Main configuration for component dependency resolution.",
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"packageManager": {
|
|
43
|
+
"description": "main configuration for bit's component dependency resolution.",
|
|
44
|
+
"type": "string",
|
|
45
|
+
"examples": ["teambit.dependencies/pnpm"]
|
|
46
|
+
},
|
|
47
|
+
"strictPeerDependencies": {
|
|
48
|
+
"description": "If true, then Bit will add the '--strict-peer-dependencies' option when invoking package managers. This causes 'bit install' to fail if there are unsatisfied peer dependencies, which is an invalid state that can cause build failures or incompatible dependency versions. (For historical reasons, JavaScript package managers generally do not treat this invalid state as an error.) The default value is false to avoid legacy compatibility issues. It is strongly recommended to set strictPeerDependencies=true.",
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"default": false
|
|
51
|
+
},
|
|
52
|
+
"extraArgs": {
|
|
53
|
+
"description": "map of extra arguments to pass to the configured package manager upon the installation of dependencies.",
|
|
54
|
+
"type": "array"
|
|
55
|
+
},
|
|
56
|
+
"policy": {
|
|
57
|
+
"description": "Dependency type is defined by the file that import it. For example, library will be devDependency when the file that imports it is a test file.",
|
|
58
|
+
"type": "object",
|
|
59
|
+
"properties": {
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"type": "object"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"type": "object"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"type": "object"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"required": ["packageManager"]
|
|
73
|
+
},
|
|
74
|
+
"teambit.react/react": {
|
|
75
|
+
"description": "apply the react environment on components.",
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"reactVersion": {
|
|
79
|
+
"description": "sets react version.",
|
|
80
|
+
"type": "string",
|
|
81
|
+
"default": ">=16.0.0",
|
|
82
|
+
"examples": [">=16.0.0", ">=15.0.0"]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"teambit.workspace/variants": {
|
|
87
|
+
"description": "Workspace variants allow to set different subsets of configuration for components in your workspace. This is extremely useful for upgrading, aligning and building components with a new set of dependencies.",
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"*": {
|
|
91
|
+
"description": "Any directory of components",
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"propagate": {
|
|
95
|
+
"description": "",
|
|
96
|
+
"type": "boolean"
|
|
97
|
+
},
|
|
98
|
+
"teambit.react/react": {
|
|
99
|
+
"description": "apply the react environment on components.",
|
|
100
|
+
"type": "object",
|
|
101
|
+
"properties": {
|
|
102
|
+
"typescript": {
|
|
103
|
+
"description": "turn on typescript compiler.",
|
|
104
|
+
"type": "boolean"
|
|
105
|
+
},
|
|
106
|
+
"root": {
|
|
107
|
+
"description": "root component is the one to be deployed and served.",
|
|
108
|
+
"type": "string"
|
|
109
|
+
},
|
|
110
|
+
"version": {
|
|
111
|
+
"description": "sets react version. This will add react and @types/react (in case typescript is turned on) as peer dependencies with this SemVer.",
|
|
112
|
+
"type": "string",
|
|
113
|
+
"default": ">=16.0.0",
|
|
114
|
+
"examples": [">=16.0.0", ">=15.0.0"]
|
|
115
|
+
},
|
|
116
|
+
"defaultScope": {
|
|
117
|
+
"description": "set the collection of these components",
|
|
118
|
+
"type": "string"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"teambit.harmony/node": {
|
|
123
|
+
"description": "apply the node environment on components.",
|
|
124
|
+
"type": "object",
|
|
125
|
+
"properties": {
|
|
126
|
+
"defaultScope": {
|
|
127
|
+
"description": "set the collection of these components",
|
|
128
|
+
"type": "string"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"teambit.pkg/pkg": {
|
|
133
|
+
"description": "",
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"packageJson": {
|
|
137
|
+
"description": "",
|
|
138
|
+
"type": "object",
|
|
139
|
+
"properties": {
|
|
140
|
+
"name": {
|
|
141
|
+
"description": "",
|
|
142
|
+
"type": "string"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"additionalProperties": true,
|
|
152
|
+
"required": []
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": ["teambit.workspace/workspace", "teambit.dependencies/dependency-resolver"]
|
|
156
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"lib": [
|
|
4
|
+
"es2019",
|
|
5
|
+
"DOM",
|
|
6
|
+
"ES6",
|
|
7
|
+
"DOM.Iterable",
|
|
8
|
+
"ScriptHost"
|
|
9
|
+
],
|
|
10
|
+
"target": "es2015",
|
|
11
|
+
"module": "commonjs",
|
|
12
|
+
"jsx": "react",
|
|
13
|
+
"declaration": true,
|
|
14
|
+
"sourceMap": true,
|
|
15
|
+
"skipLibCheck": true,
|
|
16
|
+
"moduleResolution": "node",
|
|
17
|
+
"esModuleInterop": true,
|
|
18
|
+
"composite": true,
|
|
19
|
+
"emitDeclarationOnly": true,
|
|
20
|
+
"outDir": "dist",
|
|
21
|
+
"experimentalDecorators": true,
|
|
22
|
+
"emitDecoratorMetadata": true,
|
|
23
|
+
"allowSyntheticDefaultImports": true,
|
|
24
|
+
"strictPropertyInitialization": false,
|
|
25
|
+
"strict": true,
|
|
26
|
+
"noImplicitAny": false,
|
|
27
|
+
"rootDir": ".",
|
|
28
|
+
"preserveConstEnums": true,
|
|
29
|
+
"resolveJsonModule": true
|
|
30
|
+
},
|
|
31
|
+
"exclude": [
|
|
32
|
+
"dist"
|
|
33
|
+
]
|
|
34
|
+
}
|
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
|
package/dist/config.js.map
DELETED
|
@@ -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"]}
|