@teambit/react 1.0.413 → 1.0.415

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.
Files changed (27) hide show
  1. package/artifacts/env-template/public/453.042e4d7752cf6b24cd7e.js +41 -0
  2. package/artifacts/env-template/public/771.7374b30e8ff516c0a74a.js +234 -0
  3. package/artifacts/env-template/public/8.2b7db70e70e0566c7827.js +690 -0
  4. package/artifacts/env-template/public/871.9a7e9061377f8f261632.js +257 -0
  5. package/artifacts/env-template/public/assets-manifest.json +58 -0
  6. package/artifacts/env-template/public/compositions.e2a4fd97dbd76deb16d8.js +1 -0
  7. package/artifacts/env-template/public/compositions.html +2 -0
  8. package/artifacts/env-template/public/overview.5094ee8c9e3aca713597.js +1 -0
  9. package/artifacts/env-template/public/overview.html +2 -0
  10. package/artifacts/env-template/public/peers.bdebf02e8f65fd735f06.js +1 -0
  11. package/artifacts/env-template/public/preview-root.2182a25a76a310169ca9.js +1 -0
  12. package/artifacts/env-template/public/static/css/8.3571d7f7.css +1 -0
  13. package/artifacts/env-template/public/static/css/compositions.7f2d907d.css +1 -0
  14. package/artifacts/env-template/public/static/css/preview-root.ebd38a13.css +1 -0
  15. package/{compositions-1727148128138.js → compositions-1727320764732.js} +2 -2
  16. package/dist/{preview-1727148128138.js → preview-1727320764732.js} +2 -2
  17. package/{overview-1727148128138.js → overview-1727320764732.js} +2 -2
  18. package/package.json +39 -39
  19. package/index.ts +0 -12
  20. package/react.api.transformer.ts +0 -53
  21. package/react.aspect.ts +0 -7
  22. package/react.env.ts +0 -640
  23. package/react.graphql.ts +0 -52
  24. package/react.main.runtime.ts +0 -476
  25. package/react.preview.runtime.ts +0 -55
  26. package/react.schema.ts +0 -111
  27. package/react.templates.ts +0 -28
package/react.env.ts DELETED
@@ -1,640 +0,0 @@
1
- import ts, { TsConfigSourceFile } from 'typescript';
2
- import { tmpdir } from 'os';
3
- import { Component } from '@teambit/component';
4
- import { ESLint as ESLintLib } from 'eslint';
5
- import { ComponentUrl } from '@teambit/component.modules.component-url';
6
- import { BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';
7
- import { merge, cloneDeep } from 'lodash';
8
- import { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';
9
- import { COMPONENT_PREVIEW_STRATEGY_NAME, PreviewStrategyName } from '@teambit/preview';
10
- import { PrettierConfigWriter, PrettierFormatter } from '@teambit/defender.prettier-formatter';
11
- import {
12
- PrettierConfigMutator,
13
- PrettierConfigTransformContext,
14
- PrettierConfigTransformer,
15
- } from '@teambit/defender.prettier.config-mutator';
16
- import { TypescriptConfigWriter } from '@teambit/typescript.typescript-compiler';
17
- import { EslintConfigWriter, ESLintLinter } from '@teambit/defender.eslint-linter';
18
- import type { ESLintOptions } from '@teambit/defender.eslint-linter';
19
- import { CompilerMain } from '@teambit/compiler';
20
- import {
21
- BuilderEnv,
22
- CompilerEnv,
23
- DependenciesEnv,
24
- DevEnv,
25
- LinterEnv,
26
- PackageEnv,
27
- TesterEnv,
28
- FormatterEnv,
29
- PipeServiceModifier,
30
- PipeServiceModifiersMap,
31
- } from '@teambit/envs';
32
- import { JestTask, JestTester, jestWorkerPath } from '@teambit/defender.jest-tester';
33
- import type { JestWorker } from '@teambit/defender.jest-tester';
34
- import { PackageJsonProps, PkgMain } from '@teambit/pkg';
35
- import { Tester, TesterMain } from '@teambit/tester';
36
- import { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';
37
- import type { TypeScriptCompilerOptions } from '@teambit/typescript';
38
- import { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';
39
- import { Workspace } from '@teambit/workspace';
40
- import {
41
- EslintConfigMutator,
42
- EslintConfigTransformContext,
43
- EslintConfigTransformer,
44
- } from '@teambit/defender.eslint.config-mutator';
45
- import { DependencyResolverMain } from '@teambit/dependency-resolver';
46
- import { Linter, LinterContext } from '@teambit/linter';
47
- import { Formatter, FormatterContext } from '@teambit/formatter';
48
- import { pathNormalizeToLinux } from '@teambit/toolbox.path.path';
49
- import type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';
50
- import { SchemaExtractor } from '@teambit/schema';
51
- import { join, resolve } from 'path';
52
- import { outputFileSync } from 'fs-extra';
53
- import { Logger } from '@teambit/logger';
54
- import { ConfigWriterEntry } from '@teambit/workspace-config-files';
55
-
56
- // ensure reactEnv depends on compositions-app
57
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
58
- import { CompositionsApp } from '@teambit/react.ui.compositions-app';
59
- // ensure reactEnv depends on docs-app
60
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
- import DocsApps from '@teambit/react.ui.docs-app';
62
- import type { ReactMainConfig } from './react.main.runtime';
63
- import { ReactAspect } from './react.aspect';
64
- // webpack configs for both components and envs
65
- import basePreviewConfigFactory from './webpack/webpack.config.base';
66
- import basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';
67
-
68
- // webpack configs for envs only
69
- // import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';
70
- import envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';
71
- import { templateWebpackConfigFactory } from './webpack/webpack.config.env.template';
72
-
73
- // webpack configs for components only
74
- import componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';
75
- import componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';
76
- import type { WorkerMain } from '@teambit/worker';
77
- import type { DevFilesMain } from '@teambit/dev-files';
78
-
79
- export const ReactEnvType = 'react';
80
- const defaultTsConfig = require('./typescript/tsconfig.json');
81
- const buildTsConfig = require('./typescript/tsconfig.build.json');
82
- const eslintConfig = require('./eslint/eslintrc');
83
- const prettierConfig = require('./prettier/prettier.config');
84
-
85
- // TODO: move to be taken from the key mode of compiler context
86
- type CompilerMode = 'build' | 'dev';
87
-
88
- type GetBuildPipeModifiers = PipeServiceModifiersMap & {
89
- tsModifier?: PipeServiceModifier;
90
- jestModifier?: PipeServiceModifier;
91
- };
92
-
93
- /**
94
- * a component environment built for [React](https://reactjs.org) .
95
- */
96
- export class ReactEnv
97
- implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv
98
- {
99
- constructor(
100
- /**
101
- * typescript extension.
102
- */
103
- protected tsAspect: TypescriptMain,
104
-
105
- /**
106
- * compiler extension.
107
- */
108
- private compiler: CompilerMain,
109
-
110
- /**
111
- * webpack extension.
112
- */
113
- private webpack: WebpackMain,
114
-
115
- /**
116
- * workspace extension.
117
- */
118
- private workspace: Workspace,
119
-
120
- /**
121
- * worker extension.
122
- */
123
- private worker: WorkerMain,
124
-
125
- /**
126
- * pkg extension.
127
- */
128
- private pkg: PkgMain,
129
-
130
- /**
131
- * tester extension
132
- */
133
- private tester: TesterMain,
134
-
135
- private config: ReactMainConfig,
136
-
137
- private dependencyResolver: DependencyResolverMain,
138
-
139
- private devFiles: DevFilesMain,
140
-
141
- private logger: Logger,
142
-
143
- private compilerAspectId: string
144
- ) {}
145
-
146
- getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {
147
- return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;
148
- }
149
-
150
- getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {
151
- return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;
152
- }
153
-
154
- /**
155
- * @deprecated use createCjsJestTester()
156
- */
157
- getCjsJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {
158
- return this.createCjsJestTester(jestConfigPath, jestModulePath);
159
- }
160
-
161
- /**
162
- * Get a jest tester instance with react config and cjs configs
163
- * @param jestConfigPath
164
- * @param jestModulePath
165
- * @returns
166
- */
167
- createCjsJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {
168
- const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');
169
- const defaultConfig = join(pathToSource, './jest/jest.cjs.config.js');
170
- const config = jestConfigPath || defaultConfig;
171
- const worker = this.getJestWorker();
172
- const tester = JestTester.create(
173
- {
174
- jest: jestModulePath || require.resolve('jest'),
175
- config,
176
- },
177
- { logger: this.logger, worker }
178
- );
179
-
180
- return tester;
181
- }
182
-
183
- private getJestWorker() {
184
- return this.worker.declareWorker<JestWorker>('jest', jestWorkerPath);
185
- }
186
-
187
- /**
188
- * @deprecated use createEsmJestTester()
189
- */
190
- getEsmJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {
191
- return this.createEsmJestTester(jestConfigPath, jestModulePath);
192
- }
193
-
194
- /**
195
- * Get a jest tester instance with react config and esm configs
196
- * @param jestConfigPath
197
- * @param jestModulePath
198
- * @returns
199
- */
200
- createEsmJestTester(jestConfigPath?: string, jestModulePath?: string): Tester {
201
- const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');
202
- const defaultConfig = join(pathToSource, './jest/jest.esm.config.js');
203
- const config = jestConfigPath || defaultConfig;
204
- const worker = this.getJestWorker();
205
- return JestTester.create(
206
- {
207
- jest: jestModulePath || require.resolve('jest'),
208
- config,
209
- },
210
- { logger: this.logger, worker }
211
- );
212
- }
213
-
214
- /**
215
- * returns a component tester.
216
- */
217
- getTester(jestConfigPath: string, jestModulePath?: string): Tester {
218
- return this.createCjsJestTester(jestConfigPath, jestModulePath);
219
- }
220
-
221
- private createTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {
222
- const tsconfig = mode === 'dev' ? cloneDeep(defaultTsConfig) : cloneDeep(buildTsConfig);
223
- const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');
224
- const compileJs = true;
225
- const compileJsx = true;
226
- return {
227
- tsconfig,
228
- // TODO: @david please remove this line and refactor to be something that makes sense.
229
- types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],
230
- compileJs,
231
- compileJsx,
232
- };
233
- }
234
-
235
- /**
236
- * @deprecated use createTsCjsCompiler()
237
- */
238
- getTsCjsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {
239
- return this.createTsCjsCompiler(mode, transformers, tsModule);
240
- }
241
-
242
- /**
243
- * Get a compiler instance with react config and set it to cjs module
244
- * @param mode
245
- * @param transformers
246
- * @param tsModule
247
- * @returns
248
- */
249
- createTsCjsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {
250
- const tsCompileOptions = this.createTsCompilerOptions(mode);
251
- return this.tsAspect.createCjsCompiler(tsCompileOptions, transformers, tsModule);
252
- }
253
-
254
- /**
255
- * @deprecated use createTsEsmCompiler()
256
- */
257
- getTsEsmCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {
258
- this.createTsEsmCompiler(mode, transformers, tsModule);
259
- }
260
-
261
- /**
262
- * Get a compiler instance with react config and set it to esm module
263
- * @param mode
264
- * @param transformers
265
- * @param tsModule
266
- * @returns
267
- */
268
- createTsEsmCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {
269
- const tsCompileOptions = this.createTsCompilerOptions(mode);
270
- return this.tsAspect.createEsmCompiler(tsCompileOptions, transformers, tsModule);
271
- }
272
-
273
- getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {
274
- // return this.getTsEsmCompiler('dev', transformers, tsModule);
275
- return this.createTsCjsCompiler('dev', transformers, tsModule);
276
- }
277
-
278
- private getEslintOptions(options: ESLintLib.Options, pluginPath: string, context: LinterContext): ESLintOptions {
279
- const mergedConfig: ESLintLib.Options = {
280
- // @ts-ignore - this is a bug in the @types/eslint types
281
- overrideConfig: options,
282
- extensions: context.extensionFormats,
283
- useEslintrc: false,
284
- // TODO: this should be probably be replaced with resolve-plugins-relative-to
285
- // https://eslint.org/docs/latest/use/command-line-interface#--resolve-plugins-relative-to
286
- cwd: pluginPath,
287
- fix: !!context.fix,
288
- fixTypes: context.fixTypes as ESLintLib.Options['fixTypes'],
289
- };
290
- return Object.assign({}, options, { config: mergedConfig, extensions: context.extensionFormats });
291
- }
292
-
293
- /**
294
- * returns and configures the component linter.
295
- */
296
- getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {
297
- const tsconfigPath = require.resolve('./typescript/tsconfig.json');
298
-
299
- // resolve all plugins from the react environment.
300
- const mergedOptions = this.getEslintOptions(eslintConfig, __dirname, context);
301
- const configMutator = new EslintConfigMutator(mergedOptions);
302
- const transformerContext: EslintConfigTransformContext = { fix: !!context.fix };
303
- configMutator.addExtensionTypes(['.md', '.mdx']);
304
- configMutator.setTsConfig(tsconfigPath);
305
- const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);
306
- return ESLintLinter.create(afterMutation.raw, { logger: this.logger });
307
- }
308
-
309
- /**
310
- * returns and configures the component formatter.
311
- */
312
- getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {
313
- const configMutator = new PrettierConfigMutator(prettierConfig);
314
- const transformerContext: PrettierConfigTransformContext = { check: !!context?.check };
315
- const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);
316
- return PrettierFormatter.create({ config: afterMutation.raw }, { logger: this.logger });
317
- }
318
-
319
- private getFileMap(components: Component[], local = false) {
320
- return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {
321
- component.state.filesystem.files.forEach((file) => {
322
- index[file.path] = {
323
- id: component.id.toString(),
324
- homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),
325
- };
326
- });
327
-
328
- return index;
329
- }, {});
330
- }
331
-
332
- private writeFileMap(components: Component[], local?: boolean) {
333
- const fileMap = this.getFileMap(components, local);
334
- const path = join(tmpdir(), `${Math.random().toString(36).slice(2, 11)}.json`);
335
- outputFileSync(path, JSON.stringify(fileMap));
336
- return path;
337
- }
338
-
339
- /**
340
- * required for `bit start`
341
- */
342
- getDevEnvId(id?: string) {
343
- if (typeof id !== 'string') return ReactAspect.id;
344
- return id || ReactAspect.id;
345
- }
346
-
347
- /**
348
- * get a schema generator instance configured with the correct tsconfig.
349
- */
350
- getSchemaExtractor(tsconfig: TsConfigSourceFile, tsserverPath?: string, contextPath?: string): SchemaExtractor {
351
- return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig), tsserverPath, contextPath);
352
- }
353
-
354
- /**
355
- * returns and configures the React component dev server.
356
- * required for `bit start`
357
- */
358
- getDevServer(
359
- context: DevServerContext,
360
- transformers: WebpackConfigTransformer[] = [],
361
- webpackModulePath?: string,
362
- webpackDevServerModulePath?: string
363
- ): DevServer {
364
- const baseConfig = basePreviewConfigFactory(false);
365
- const envDevConfig = envPreviewDevConfigFactory(context.id);
366
- const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);
367
-
368
- const defaultTransformer: WebpackConfigTransformer = (configMutator) => {
369
- const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);
370
- return merged;
371
- };
372
-
373
- return this.webpack.createDevServer(
374
- context,
375
- [defaultTransformer, ...transformers],
376
- webpackModulePath,
377
- webpackDevServerModulePath
378
- );
379
- }
380
-
381
- async getBundler(
382
- context: BundlerContext,
383
- transformers: WebpackConfigTransformer[] = [],
384
- webpackModulePath?: string
385
- ): Promise<Bundler> {
386
- return this.createComponentsWebpackBundler(context, transformers, webpackModulePath);
387
- }
388
-
389
- async createComponentsWebpackBundler(
390
- context: BundlerContext,
391
- transformers: WebpackConfigTransformer[] = [],
392
- webpackModulePath?: string
393
- ): Promise<Bundler> {
394
- const baseConfig = basePreviewConfigFactory(!context.development);
395
- const baseProdConfig = basePreviewProdConfigFactory(context.development);
396
- const componentProdConfig = componentPreviewProdConfigFactory();
397
-
398
- const defaultTransformer: WebpackConfigTransformer = (configMutator) => {
399
- const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);
400
- return merged;
401
- };
402
- const mergedTransformers = [defaultTransformer, ...transformers];
403
- return this.createWebpackBundler(context, mergedTransformers, webpackModulePath);
404
- }
405
-
406
- async createTemplateWebpackBundler(
407
- context: BundlerContext,
408
- transformers: WebpackConfigTransformer[] = [],
409
- webpackModulePath?: string
410
- ): Promise<Bundler> {
411
- const baseConfig = basePreviewConfigFactory(!context.development);
412
- const baseProdConfig = basePreviewProdConfigFactory(context.development);
413
- const templateConfig = templateWebpackConfigFactory();
414
-
415
- const defaultTransformer: WebpackConfigTransformer = (configMutator) => {
416
- const merged = configMutator.merge([baseConfig, baseProdConfig, templateConfig]);
417
- return merged;
418
- };
419
- const mergedTransformers = [defaultTransformer, ...transformers];
420
- return this.createWebpackBundler(context, mergedTransformers, webpackModulePath);
421
- }
422
-
423
- private async createWebpackBundler(
424
- context: BundlerContext,
425
- transformers: WebpackConfigTransformer[] = [],
426
- webpackModulePath?: string
427
- ): Promise<Bundler> {
428
- return this.webpack.createBundler(context, transformers, undefined, webpackModulePath);
429
- }
430
-
431
- getAdditionalHostDependencies(): string[] {
432
- return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react', 'react', 'react-dom'];
433
- }
434
-
435
- /**
436
- * returns a path to a docs template.
437
- */
438
- getDocsTemplate() {
439
- return require.resolve('@teambit/react.ui.docs-app');
440
- }
441
-
442
- icon = 'https://static.bit.dev/extensions-icons/react.svg';
443
-
444
- /**
445
- * returns the path to the compositions template
446
- */
447
- getMounter() {
448
- return require.resolve('@teambit/react.ui.compositions-app');
449
- }
450
-
451
- getPreviewConfig() {
452
- return {
453
- strategyName: COMPONENT_PREVIEW_STRATEGY_NAME as PreviewStrategyName,
454
- splitComponentBundle: true,
455
- isScaling: true,
456
- };
457
- }
458
-
459
- /**
460
- * define the package json properties to add to each component.
461
- */
462
- getPackageJsonProps(): PackageJsonProps {
463
- // React compile by default to esm, so uses type module
464
- // return this.getEsmPackageJsonProps();
465
- return this.getCjsPackageJsonProps();
466
- }
467
-
468
- /**
469
- * @deprecated use createCjsPackageJsonProps()
470
- */
471
- getCjsPackageJsonProps(): PackageJsonProps {
472
- return this.createCjsPackageJsonProps();
473
- }
474
-
475
- /**
476
- * Get the default package.json props for a cjs component
477
- * @returns
478
- */
479
- createCjsPackageJsonProps(): PackageJsonProps {
480
- return this.tsAspect.getCjsPackageJsonProps();
481
- }
482
-
483
- /**
484
- * @deprecated use createEsmPackageJsonProps()
485
- */
486
- getEsmPackageJsonProps(): PackageJsonProps {
487
- return this.createEsmPackageJsonProps();
488
- }
489
-
490
- /**
491
- * Get the default package.json props for an esm component
492
- * @returns
493
- */
494
- createEsmPackageJsonProps(): PackageJsonProps {
495
- return this.tsAspect.getEsmPackageJsonProps();
496
- }
497
-
498
- getNpmIgnore() {
499
- return [`${CAPSULE_ARTIFACTS_DIR}/`];
500
- }
501
-
502
- /**
503
- * adds dependencies to all configured components.
504
- */
505
- getDependencies() {
506
- return {
507
- dependencies: {
508
- react: '-',
509
- 'react-dom': '-',
510
- 'core-js': '^3.0.0',
511
- },
512
- // TODO: add this only if using ts
513
- devDependencies: {
514
- react: '-',
515
- 'react-dom': '-',
516
- '@types/mocha': '-',
517
- '@types/node': '12.20.4',
518
- '@types/react': '^17.0.8',
519
- '@types/react-dom': '^17.0.5',
520
- '@types/jest': '^26.0.0',
521
- // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed
522
- '@babel/runtime': '7.20.0',
523
- '@types/testing-library__jest-dom': '5.9.5',
524
- },
525
- peerDependencies: {
526
- react: '^16.8.0 || ^17.0.0',
527
- 'react-dom': '^16.8.0 || ^17.0.0',
528
- },
529
- };
530
- }
531
-
532
- /**
533
- * returns the component build pipeline.
534
- */
535
- getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {
536
- const transformers: Function[] = modifiers?.tsModifier?.transformers || [];
537
- const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist', '');
538
- const jestConfigPath =
539
- modifiers?.jestModifier?.transformers?.[0]() || join(pathToSource, './jest/jest.cjs.config.js');
540
- const jestPath = modifiers?.jestModifier?.module || require.resolve('jest');
541
- const worker = this.getJestWorker();
542
- const testerTask = JestTask.create(
543
- { config: jestConfigPath, jest: jestPath },
544
- { logger: this.logger, worker, devFiles: this.devFiles }
545
- );
546
- return [this.createCjsCompilerTask(transformers, modifiers?.tsModifier?.module || ts), testerTask];
547
- }
548
-
549
- /**
550
- * @deprecated use createBuildPipeWithoutCompiler()
551
- */
552
- getBuildPipeWithoutCompiler(): BuildTask[] {
553
- return this.createBuildPipeWithoutCompiler();
554
- }
555
-
556
- /**
557
- * Get the react build pipeline without the compilation task.
558
- * This help in cases you want to only replace the compilation task with something else
559
- * @returns
560
- */
561
- createBuildPipeWithoutCompiler(): BuildTask[] {
562
- const pipeWithoutCompiler = this.getBuildPipe().filter((task) => task.aspectId !== this.compilerAspectId);
563
- return pipeWithoutCompiler;
564
- }
565
-
566
- /**
567
- * @deprecated use createEsmCompilerTask()
568
- */
569
- getEsmCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {
570
- return this.createEsmCompilerTask(transformers as Function[], tsModule);
571
- }
572
-
573
- /**
574
- * Get a compiler task with react config and set to esm module
575
- * @param transformers
576
- * @param tsModule
577
- * @returns
578
- */
579
- createEsmCompilerTask(transformers: Function[] = [], tsModule = ts) {
580
- const tsCompiler = this.createTsEsmCompiler('build', transformers as TsConfigTransformer[], tsModule);
581
- return this.compiler.createTask('TSCompiler', tsCompiler);
582
- }
583
-
584
- /**
585
- * @deprecated use createCjsCompilerTask()
586
- * */
587
- getCjsCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {
588
- return this.createCjsCompilerTask(transformers as Function[], tsModule);
589
- }
590
-
591
- /**
592
- * Get a compiler task with react config and set to cjs module
593
- * @param transformers
594
- * @param tsModule
595
- * @returns
596
- */
597
- createCjsCompilerTask(transformers: Function[] = [], tsModule = ts) {
598
- const tsCompiler = this.createTsCjsCompiler('build', transformers as TsConfigTransformer[], tsModule);
599
- return this.compiler.createTask('TSCompiler', tsCompiler);
600
- }
601
-
602
- workspaceConfig(): ConfigWriterEntry[] {
603
- return [
604
- TypescriptConfigWriter.create(
605
- {
606
- tsconfig: require.resolve('./typescript/tsconfig.cjs.json'),
607
- // types: resolveTypes(__dirname, ["./types"]),
608
- },
609
- this.logger
610
- ),
611
- EslintConfigWriter.create(
612
- {
613
- configPath: require.resolve('./eslint/eslintrc.js'),
614
- tsconfig: require.resolve('./typescript/tsconfig.cjs.json'),
615
- },
616
- this.logger
617
- ),
618
- PrettierConfigWriter.create(
619
- {
620
- configPath: require.resolve('./prettier/prettier.config.js'),
621
- },
622
- this.logger
623
- ),
624
- ];
625
- }
626
-
627
- async __getDescriptor() {
628
- return {
629
- type: ReactEnvType,
630
- };
631
- }
632
- }
633
-
634
- export function runTransformersWithContext<P, T extends Function, C>(config: P, transformers: T[] = [], context: C): P {
635
- if (!Array.isArray(transformers)) return config;
636
- const newConfig = transformers.reduce((acc, transformer) => {
637
- return transformer(acc, context);
638
- }, config);
639
- return newConfig;
640
- }
package/react.graphql.ts DELETED
@@ -1,52 +0,0 @@
1
- import { ComponentFactory } from '@teambit/component';
2
- import { gql } from 'graphql-tag';
3
-
4
- import { ReactMain } from './react.main.runtime';
5
-
6
- export function reactSchema(react: ReactMain) {
7
- return {
8
- typeDefs: gql`
9
- extend type ComponentHost {
10
- getDocs(id: String!): ReactDocs
11
- }
12
-
13
- type ReactDocs {
14
- abstract: String
15
- filePath: String
16
- properties: [Property]
17
- }
18
-
19
- type Property {
20
- name: String
21
- description: String
22
- required: Boolean
23
- type: String
24
- defaultValue: DefaultValue
25
- }
26
-
27
- type DefaultValue {
28
- value: String
29
- computed: Boolean
30
- }
31
- `,
32
- resolvers: {
33
- ComponentHost: {
34
- getDocs: async (host: ComponentFactory, { id }: { id: string }) => {
35
- const componentId = await host.resolveComponentId(id);
36
- const component = await host.get(componentId);
37
- const empty = {
38
- abstract: '',
39
- filePath: '',
40
- properties: [],
41
- };
42
-
43
- if (!component) return empty;
44
- const docs = react.getDocs(component);
45
- if (!docs) return empty;
46
-
47
- return docs;
48
- },
49
- },
50
- },
51
- };
52
- }