@teambit/dev-files 0.0.716 → 0.0.719

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.
@@ -5,9 +5,9 @@ import { Component, ComponentMain } from '@teambit/component';
5
5
  import { GraphqlMain } from '@teambit/graphql';
6
6
  import { DevFiles } from './dev-files';
7
7
  /**
8
- * dev pattern is of type string. an example to a pattern can be "*.spec.ts"
8
+ * dev pattern is a list of strings or a function that returns a list of strings. an example to a pattern can be "[*.spec.ts]"
9
9
  */
10
- export declare type DevPatterns = string[];
10
+ export declare type DevPatterns = ((component: Component) => string[]) | string[];
11
11
  /**
12
12
  * slot for dev file patterns.
13
13
  */
@@ -29,7 +29,7 @@ export declare class DevFilesMain {
29
29
  config: DevFilesConfig);
30
30
  /**
31
31
  * compute all dev patterns on a component.
32
- * computing of dev patterns is a merge of the configuration, the env (env.getDevPatterns()) and
32
+ * computing of dev patterns is a merge of the configuration, the env (env.getDevPatterns(component)) and
33
33
  * the registering aspects (through registerDevPattern()).
34
34
  */
35
35
  computeDevPatterns(component: Component): {
@@ -153,7 +153,7 @@ class DevFilesMain {
153
153
  }
154
154
  /**
155
155
  * compute all dev patterns on a component.
156
- * computing of dev patterns is a merge of the configuration, the env (env.getDevPatterns()) and
156
+ * computing of dev patterns is a merge of the configuration, the env (env.getDevPatterns(component)) and
157
157
  * the registering aspects (through registerDevPattern()).
158
158
  */
159
159
 
@@ -164,13 +164,22 @@ class DevFilesMain {
164
164
  const entry = component.state.aspects.get(_devFiles().DevFilesAspect.id);
165
165
  const configuredPatterns = (entry === null || entry === void 0 ? void 0 : entry.config.devFilePatterns) || [];
166
166
  const envDef = this.envs.calculateEnv(component);
167
- const envPatterns = (_envDef$env = envDef.env) !== null && _envDef$env !== void 0 && _envDef$env.getDevPatterns ? envDef.env.getDevPatterns() : [];
167
+ const envPatterns = (_envDef$env = envDef.env) !== null && _envDef$env !== void 0 && _envDef$env.getDevPatterns ? envDef.env.getDevPatterns(component) : [];
168
+
169
+ const getPatterns = devPatterns => {
170
+ if ((0, _lodash().isFunction)(devPatterns)) {
171
+ return devPatterns(component);
172
+ }
173
+
174
+ return devPatterns;
175
+ };
176
+
168
177
  const patternSlot = this.devPatternSlot.toArray();
169
178
  const fromSlot = patternSlot.reduce((acc, current) => {
170
179
  const [aspectId, patterns] = current;
171
180
  if (!acc[aspectId]) acc[aspectId] = []; // if (component.state.aspects.get(aspectId)) acc[aspectId] = acc[aspectId].concat(patterns);
172
181
 
173
- acc[aspectId] = acc[aspectId].concat(patterns);
182
+ acc[aspectId] = acc[aspectId].concat(getPatterns(patterns));
174
183
  return acc;
175
184
  }, {});
176
185
  return Object.assign({
@@ -1 +1 @@
1
- {"version":3,"sources":["dev-files.main.runtime.ts"],"names":["DevFilesMain","constructor","envs","devPatternSlot","config","computeDevPatterns","component","entry","state","aspects","get","DevFilesAspect","id","configuredPatterns","devFilePatterns","envDef","calculateEnv","envPatterns","env","getDevPatterns","patternSlot","toArray","fromSlot","reduce","acc","current","aspectId","patterns","concat","Object","assign","devPatterns","data","values","isDevFile","filePath","devFiles","computeDevFiles","includes","registerDevPattern","pattern","register","getDevFiles","rawDevFiles","DevFiles","keys","filesystem","byGlob","map","file","relative","provider","workspace","componentAspect","graphql","registerShowFragments","DevFilesFragment","onComponentLoad","toObject","DependencyResolver","consumerComponent","componentId","resolveComponentId","Error","toString","computedDevFiles","list","Slot","withType","MainRuntime","EnvsAspect","WorkspaceAspect","ComponentAspect","GraphqlAspect","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { flatten } from 'lodash';\nimport { SlotRegistry, Slot } from '@teambit/harmony';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport LegacyComponent from '@teambit/legacy/dist/consumer/component';\nimport { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { Component, ComponentMain, ComponentAspect } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { DevFilesAspect } from './dev-files.aspect';\nimport { DevFiles } from './dev-files';\nimport { DevFilesFragment } from './dev-files.fragment';\nimport { devFilesSchema } from './dev-files.graphql';\n\n/**\n * dev pattern is of type string. an example to a pattern can be \"*.spec.ts\"\n */\nexport type DevPatterns = string[];\n\n/**\n * slot for dev file patterns.\n */\nexport type DevPatternSlot = SlotRegistry<DevPatterns>;\n\nexport type DevFilesConfig = {\n patterns: string[];\n};\n\nexport class DevFilesMain {\n constructor(\n private envs: EnvsMain,\n\n private devPatternSlot: DevPatternSlot,\n\n /**\n * configuration loaded into the dev files aspect.\n */\n readonly config: DevFilesConfig\n ) {}\n\n /**\n * compute all dev patterns on a component.\n * computing of dev patterns is a merge of the configuration, the env (env.getDevPatterns()) and\n * the registering aspects (through registerDevPattern()).\n */\n computeDevPatterns(component: Component) {\n const entry = component.state.aspects.get(DevFilesAspect.id);\n const configuredPatterns = entry?.config.devFilePatterns || [];\n const envDef = this.envs.calculateEnv(component);\n const envPatterns: DevPatterns[] = envDef.env?.getDevPatterns ? envDef.env.getDevPatterns() : [];\n\n const patternSlot = this.devPatternSlot.toArray();\n const fromSlot: { [id: string]: any } = patternSlot.reduce((acc, current) => {\n const [aspectId, patterns] = current;\n if (!acc[aspectId]) acc[aspectId] = [];\n // if (component.state.aspects.get(aspectId)) acc[aspectId] = acc[aspectId].concat(patterns);\n acc[aspectId] = acc[aspectId].concat(patterns);\n return acc;\n }, {});\n\n return Object.assign(\n {\n [envDef.id]: envPatterns,\n config: configuredPatterns,\n },\n fromSlot\n );\n }\n\n /**\n * get all dev files configured on a component.\n */\n getDevPatterns(component: Component, aspectId?: string): string[] {\n const entry = component.state.aspects.get(DevFilesAspect.id);\n const devPatterns = entry?.data.devPatterns || {};\n return aspectId ? devPatterns[aspectId] : flatten(Object.values(devPatterns));\n }\n\n /**\n * determine whether a file of a component is a dev file.\n */\n isDevFile(component: Component, filePath: string): boolean {\n const devFiles = this.computeDevFiles(component);\n return devFiles.includes(filePath);\n }\n\n /**\n * register a new dev pattern.\n * @param regex dev pattern\n */\n registerDevPattern(pattern: DevPatterns) {\n return this.devPatternSlot.register(pattern);\n }\n\n /**\n * get all dev patterns registered.\n * If you want to use this during onLoad event you might need to use computeDevFiles instead, since the component might not include this data yet\n */\n getDevFiles(component: Component): DevFiles {\n const entry = component.state.aspects.get(DevFilesAspect.id);\n const rawDevFiles = entry?.data.devFiles || {};\n return new DevFiles(rawDevFiles);\n }\n\n /**\n * compute all dev files of a component.\n */\n computeDevFiles(component: Component): DevFiles {\n const devPatterns = this.computeDevPatterns(component);\n const rawDevFiles = Object.keys(devPatterns).reduce((acc, aspectId) => {\n if (!acc[aspectId]) acc[aspectId] = [];\n const patterns = devPatterns[aspectId];\n acc[aspectId] = component.state.filesystem.byGlob(patterns).map((file) => file.relative);\n return acc;\n }, {});\n\n return new DevFiles(rawDevFiles);\n }\n\n static slots = [Slot.withType<DevPatterns>()];\n\n static defaultConfig = {\n patterns: [],\n };\n\n static runtime = MainRuntime;\n\n static dependencies = [EnvsAspect, WorkspaceAspect, ComponentAspect, GraphqlAspect];\n\n static async provider(\n [envs, workspace, componentAspect, graphql]: [EnvsMain, Workspace, ComponentMain, GraphqlMain],\n config: DevFilesConfig,\n [devPatternSlot]: [DevPatternSlot]\n ) {\n const devFiles = new DevFilesMain(envs, devPatternSlot, config);\n componentAspect.registerShowFragments([new DevFilesFragment(devFiles)]);\n\n if (workspace) {\n workspace.onComponentLoad(async (component) => {\n return {\n devPatterns: devFiles.computeDevPatterns(component),\n devFiles: devFiles.computeDevFiles(component).toObject(),\n };\n });\n\n DependencyResolver.getDevFiles = async (consumerComponent: LegacyComponent): Promise<string[]> => {\n const componentId = await workspace.resolveComponentId(consumerComponent.id);\n // Do not change the storeInCache=false arg. if you think you need to change it, please talk to Gilad first\n const component = await workspace.get(componentId, false, consumerComponent, true, false);\n if (!component) throw Error(`failed to transform component ${consumerComponent.id.toString()} in harmony`);\n const computedDevFiles = devFiles.computeDevFiles(component);\n return computedDevFiles.list();\n };\n }\n\n graphql.register(devFilesSchema(devFiles));\n return devFiles;\n }\n}\n\nDevFilesAspect.addRuntime(DevFilesMain);\n"]}
1
+ {"version":3,"sources":["dev-files.main.runtime.ts"],"names":["DevFilesMain","constructor","envs","devPatternSlot","config","computeDevPatterns","component","entry","state","aspects","get","DevFilesAspect","id","configuredPatterns","devFilePatterns","envDef","calculateEnv","envPatterns","env","getDevPatterns","getPatterns","devPatterns","patternSlot","toArray","fromSlot","reduce","acc","current","aspectId","patterns","concat","Object","assign","data","values","isDevFile","filePath","devFiles","computeDevFiles","includes","registerDevPattern","pattern","register","getDevFiles","rawDevFiles","DevFiles","keys","filesystem","byGlob","map","file","relative","provider","workspace","componentAspect","graphql","registerShowFragments","DevFilesFragment","onComponentLoad","toObject","DependencyResolver","consumerComponent","componentId","resolveComponentId","Error","toString","computedDevFiles","list","Slot","withType","MainRuntime","EnvsAspect","WorkspaceAspect","ComponentAspect","GraphqlAspect","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { flatten, isFunction } from 'lodash';\nimport { SlotRegistry, Slot } from '@teambit/harmony';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport LegacyComponent from '@teambit/legacy/dist/consumer/component';\nimport { DependencyResolver } from '@teambit/legacy/dist/consumer/component/dependencies/dependency-resolver';\nimport { Component, ComponentMain, ComponentAspect } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { DevFilesAspect } from './dev-files.aspect';\nimport { DevFiles } from './dev-files';\nimport { DevFilesFragment } from './dev-files.fragment';\nimport { devFilesSchema } from './dev-files.graphql';\n\n/**\n * dev pattern is a list of strings or a function that returns a list of strings. an example to a pattern can be \"[*.spec.ts]\"\n */\nexport type DevPatterns = ((component: Component) => string[]) | string[];\n\n/**\n * slot for dev file patterns.\n */\nexport type DevPatternSlot = SlotRegistry<DevPatterns>;\n\nexport type DevFilesConfig = {\n patterns: string[];\n};\n\nexport class DevFilesMain {\n constructor(\n private envs: EnvsMain,\n\n private devPatternSlot: DevPatternSlot,\n\n /**\n * configuration loaded into the dev files aspect.\n */\n readonly config: DevFilesConfig\n ) {}\n\n /**\n * compute all dev patterns on a component.\n * computing of dev patterns is a merge of the configuration, the env (env.getDevPatterns(component)) and\n * the registering aspects (through registerDevPattern()).\n */\n computeDevPatterns(component: Component) {\n const entry = component.state.aspects.get(DevFilesAspect.id);\n const configuredPatterns = entry?.config.devFilePatterns || [];\n const envDef = this.envs.calculateEnv(component);\n const envPatterns: DevPatterns[] = envDef.env?.getDevPatterns ? envDef.env.getDevPatterns(component) : [];\n\n const getPatterns = (devPatterns: DevPatterns) => {\n if (isFunction(devPatterns)) {\n return devPatterns(component);\n }\n return devPatterns;\n };\n const patternSlot = this.devPatternSlot.toArray();\n const fromSlot: { [id: string]: any } = patternSlot.reduce((acc, current) => {\n const [aspectId, patterns] = current;\n if (!acc[aspectId]) acc[aspectId] = [];\n // if (component.state.aspects.get(aspectId)) acc[aspectId] = acc[aspectId].concat(patterns);\n acc[aspectId] = acc[aspectId].concat(getPatterns(patterns));\n return acc;\n }, {});\n\n return Object.assign(\n {\n [envDef.id]: envPatterns,\n config: configuredPatterns,\n },\n fromSlot\n );\n }\n\n /**\n * get all dev files configured on a component.\n */\n getDevPatterns(component: Component, aspectId?: string): string[] {\n const entry = component.state.aspects.get(DevFilesAspect.id);\n const devPatterns = entry?.data.devPatterns || {};\n return aspectId ? devPatterns[aspectId] : flatten(Object.values(devPatterns));\n }\n\n /**\n * determine whether a file of a component is a dev file.\n */\n isDevFile(component: Component, filePath: string): boolean {\n const devFiles = this.computeDevFiles(component);\n return devFiles.includes(filePath);\n }\n\n /**\n * register a new dev pattern.\n * @param regex dev pattern\n */\n registerDevPattern(pattern: DevPatterns) {\n return this.devPatternSlot.register(pattern);\n }\n\n /**\n * get all dev patterns registered.\n * If you want to use this during onLoad event you might need to use computeDevFiles instead, since the component might not include this data yet\n */\n getDevFiles(component: Component): DevFiles {\n const entry = component.state.aspects.get(DevFilesAspect.id);\n const rawDevFiles = entry?.data.devFiles || {};\n return new DevFiles(rawDevFiles);\n }\n\n /**\n * compute all dev files of a component.\n */\n computeDevFiles(component: Component): DevFiles {\n const devPatterns = this.computeDevPatterns(component);\n const rawDevFiles = Object.keys(devPatterns).reduce((acc, aspectId) => {\n if (!acc[aspectId]) acc[aspectId] = [];\n const patterns = devPatterns[aspectId];\n acc[aspectId] = component.state.filesystem.byGlob(patterns).map((file) => file.relative);\n return acc;\n }, {});\n\n return new DevFiles(rawDevFiles);\n }\n\n static slots = [Slot.withType<DevPatterns>()];\n\n static defaultConfig = {\n patterns: [],\n };\n\n static runtime = MainRuntime;\n\n static dependencies = [EnvsAspect, WorkspaceAspect, ComponentAspect, GraphqlAspect];\n\n static async provider(\n [envs, workspace, componentAspect, graphql]: [EnvsMain, Workspace, ComponentMain, GraphqlMain],\n config: DevFilesConfig,\n [devPatternSlot]: [DevPatternSlot]\n ) {\n const devFiles = new DevFilesMain(envs, devPatternSlot, config);\n componentAspect.registerShowFragments([new DevFilesFragment(devFiles)]);\n\n if (workspace) {\n workspace.onComponentLoad(async (component) => {\n return {\n devPatterns: devFiles.computeDevPatterns(component),\n devFiles: devFiles.computeDevFiles(component).toObject(),\n };\n });\n\n DependencyResolver.getDevFiles = async (consumerComponent: LegacyComponent): Promise<string[]> => {\n const componentId = await workspace.resolveComponentId(consumerComponent.id);\n // Do not change the storeInCache=false arg. if you think you need to change it, please talk to Gilad first\n const component = await workspace.get(componentId, false, consumerComponent, true, false);\n if (!component) throw Error(`failed to transform component ${consumerComponent.id.toString()} in harmony`);\n const computedDevFiles = devFiles.computeDevFiles(component);\n return computedDevFiles.list();\n };\n }\n\n graphql.register(devFilesSchema(devFiles));\n return devFiles;\n }\n}\n\nDevFilesAspect.addRuntime(DevFilesMain);\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/dev-files",
3
- "version": "0.0.716",
3
+ "version": "0.0.719",
4
4
  "homepage": "https://bit.dev/teambit/component/dev-files",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "dev-files",
9
- "version": "0.0.716"
9
+ "version": "0.0.719"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -14,11 +14,11 @@
14
14
  "@babel/runtime": "7.12.18",
15
15
  "core-js": "^3.0.0",
16
16
  "@teambit/harmony": "0.3.3",
17
- "@teambit/component": "0.0.716",
18
- "@teambit/graphql": "0.0.716",
19
- "@teambit/cli": "0.0.476",
20
- "@teambit/envs": "0.0.716",
21
- "@teambit/workspace": "0.0.716"
17
+ "@teambit/component": "0.0.719",
18
+ "@teambit/graphql": "0.0.719",
19
+ "@teambit/cli": "0.0.478",
20
+ "@teambit/envs": "0.0.719",
21
+ "@teambit/workspace": "0.0.719"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/react": "^17.0.8",
@@ -33,7 +33,7 @@
33
33
  "@teambit/component.content.dev-files": "1.95.9"
34
34
  },
35
35
  "peerDependencies": {
36
- "@teambit/legacy": "1.0.256",
36
+ "@teambit/legacy": "1.0.258",
37
37
  "react-dom": "^16.8.0 || ^17.0.0",
38
38
  "react": "^16.8.0 || ^17.0.0"
39
39
  },
@@ -61,7 +61,7 @@
61
61
  "react": "-"
62
62
  },
63
63
  "peerDependencies": {
64
- "@teambit/legacy": "1.0.256",
64
+ "@teambit/legacy": "1.0.258",
65
65
  "react-dom": "^16.8.0 || ^17.0.0",
66
66
  "react": "^16.8.0 || ^17.0.0"
67
67
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_dev-files@0.0.716/dist/dev-files.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_dev-files@0.0.716/dist/dev-files.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_dev-files@0.0.719/dist/dev-files.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_dev-files@0.0.719/dist/dev-files.docs.mdx')]