@teambit/react 0.0.675 → 0.0.678
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/artifacts/env-template/public/420.js +1 -0
- package/artifacts/env-template/public/677.js +1 -0
- package/artifacts/env-template/public/750.js +12 -0
- package/artifacts/env-template/public/793.js +218 -0
- package/artifacts/env-template/public/888.js +1 -0
- package/artifacts/env-template/public/assets-manifest.json +22 -22
- package/artifacts/env-template/public/compositions.0cb8882cb213d0185254.js +1 -0
- package/artifacts/env-template/public/compositions.html +1 -1
- package/artifacts/env-template/public/{overview.69846c0746b5b6398f68.js → overview.f077d05bdceaaad03b01.js} +1 -1
- package/artifacts/env-template/public/overview.html +1 -1
- package/artifacts/env-template/public/peers.c004d6a34765e7797913.js +1 -0
- package/artifacts/env-template/public/preview-root.0368612b0bf9eb282541.js +1 -0
- package/artifacts/env-template/public/service-worker.js +1 -1
- package/artifacts/env-template/public/static/css/{719.a22d71af.css → 793.2c0416f7.css} +1 -1
- package/artifacts/preview/teambit_react_react-preview.js +1 -1
- package/{compositions-1647228138686.js → compositions-1647487436311.js} +0 -0
- package/dist/react.composition.js +1 -1
- package/dist/react.composition.js.map +1 -1
- package/dist/react.docs.mdx +1 -1
- package/dist/react.env.d.ts +5 -2
- package/dist/react.env.js +33 -10
- package/dist/react.env.js.map +1 -1
- package/dist/templates/react-app/files/app.js +3 -7
- package/dist/templates/react-app/files/app.js.map +1 -1
- package/dist/templates/react-app/files/compositions.js +6 -1
- package/dist/templates/react-app/files/compositions.js.map +1 -1
- package/dist/templates/react-component/index.js +7 -6
- package/dist/templates/react-component/index.js.map +1 -1
- package/dist/templates/react-component-js/index.js +7 -6
- package/dist/templates/react-component-js/index.js.map +1 -1
- package/dist/templates/react-context/index.js +7 -6
- package/dist/templates/react-context/index.js.map +1 -1
- package/dist/templates/react-env/index.js +1 -1
- package/dist/templates/react-env/index.js.map +1 -1
- package/dist/templates/react-hook/index.js +7 -6
- package/dist/templates/react-hook/index.js.map +1 -1
- package/dist/templates/react-workspace/index.js +14 -21
- package/dist/templates/react-workspace/index.js.map +1 -1
- package/dist/templates/workspace-common/files/workspace-config.js +2 -32
- package/dist/templates/workspace-common/files/workspace-config.js.map +1 -1
- package/{overview-1647228138686.js → overview-1647487436311.js} +0 -0
- package/package-tar/teambit-react-0.0.678.tgz +0 -0
- package/package.json +30 -30
- package/{preview-1647228138686.js → preview-1647487436311.js} +2 -2
- package/react.composition.tsx +1 -1
- package/react.docs.mdx +1 -1
- package/templates/react-app/files/app.ts +3 -7
- package/templates/react-app/files/compositions.ts +6 -1
- package/templates/react-component/index.ts +6 -5
- package/templates/react-component-js/index.ts +6 -5
- package/templates/react-context/index.ts +6 -5
- package/templates/react-env/index.ts +1 -1
- package/templates/react-hook/index.ts +6 -5
- package/templates/react-workspace/index.ts +13 -13
- package/templates/workspace-common/files/workspace-config.ts +2 -32
- package/artifacts/env-template/public/141.js +0 -12
- package/artifacts/env-template/public/181.js +0 -1
- package/artifacts/env-template/public/475.js +0 -1
- package/artifacts/env-template/public/719.js +0 -218
- package/artifacts/env-template/public/848.js +0 -1
- package/artifacts/env-template/public/compositions.42a3bb9453dc926b0fee.js +0 -1
- package/artifacts/env-template/public/peers.e9c6c15491f6fc7c952b.js +0 -1
- package/artifacts/env-template/public/preview-root.32f61f9d9b2491abb762.js +0 -1
- package/package-tar/teambit-react-0.0.675.tgz +0 -0
package/dist/react.docs.mdx
CHANGED
package/dist/react.env.d.ts
CHANGED
|
@@ -116,11 +116,14 @@ export declare class ReactEnv implements TesterEnv, CompilerEnv, LinterEnv, DevE
|
|
|
116
116
|
*/
|
|
117
117
|
getDevServer(context: DevServerContext, transformers?: WebpackConfigTransformer[]): DevServer;
|
|
118
118
|
getBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[]): Promise<Bundler>;
|
|
119
|
+
createComponentsWebpackBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[]): Promise<Bundler>;
|
|
120
|
+
createTemplateWebpackBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[]): Promise<Bundler>;
|
|
121
|
+
private createWebpackBundler;
|
|
119
122
|
/**
|
|
120
123
|
* Get the peers configured by the env on the components + the host deps configured by the env
|
|
121
124
|
*/
|
|
122
|
-
|
|
123
|
-
|
|
125
|
+
getAllHostDependencies(): string[];
|
|
126
|
+
getAdditionalHostDependencies(): string[];
|
|
124
127
|
/**
|
|
125
128
|
* returns a path to a docs template.
|
|
126
129
|
*/
|
package/dist/react.env.js
CHANGED
|
@@ -351,7 +351,7 @@ class ReactEnv {
|
|
|
351
351
|
const baseConfig = (0, _webpackConfig().default)(false);
|
|
352
352
|
const envDevConfig = (0, _webpackConfigEnv().default)(context.id);
|
|
353
353
|
const componentDevConfig = (0, _webpackConfigComponent2().default)(this.workspace.path, context.id);
|
|
354
|
-
const peers = this.
|
|
354
|
+
const peers = this.getAllHostDependencies();
|
|
355
355
|
const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers);
|
|
356
356
|
|
|
357
357
|
const defaultTransformer = configMutator => {
|
|
@@ -363,12 +363,14 @@ class ReactEnv {
|
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
async getBundler(context, transformers = []) {
|
|
366
|
-
|
|
367
|
-
|
|
366
|
+
return this.createComponentsWebpackBundler(context, transformers);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
async createComponentsWebpackBundler(context, transformers = []) {
|
|
370
|
+
const peers = this.getAllHostDependencies();
|
|
368
371
|
const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers);
|
|
369
372
|
const baseConfig = (0, _webpackConfig().default)(!context.development);
|
|
370
|
-
const baseProdConfig = (0, _webpackConfigBase().default)(Boolean(context.externalizePeer), peers, context.development);
|
|
371
|
-
|
|
373
|
+
const baseProdConfig = (0, _webpackConfigBase().default)(Boolean(context.externalizePeer), peers, context.development);
|
|
372
374
|
const componentProdConfig = (0, _webpackConfigComponent().default)();
|
|
373
375
|
|
|
374
376
|
const defaultTransformer = configMutator => {
|
|
@@ -376,20 +378,41 @@ class ReactEnv {
|
|
|
376
378
|
return merged;
|
|
377
379
|
};
|
|
378
380
|
|
|
379
|
-
|
|
381
|
+
const mergedTransformers = [defaultTransformer, peerAliasesTransformer, ...transformers];
|
|
382
|
+
return this.createWebpackBundler(context, mergedTransformers);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
async createTemplateWebpackBundler(context, transformers = []) {
|
|
386
|
+
const peers = this.getAllHostDependencies();
|
|
387
|
+
const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(peers);
|
|
388
|
+
const baseConfig = (0, _webpackConfig().default)(!context.development);
|
|
389
|
+
const baseProdConfig = (0, _webpackConfigBase().default)(Boolean(context.externalizePeer), peers, context.development);
|
|
390
|
+
|
|
391
|
+
const defaultTransformer = configMutator => {
|
|
392
|
+
const merged = configMutator.merge([baseConfig, baseProdConfig]);
|
|
393
|
+
return merged;
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
const mergedTransformers = [defaultTransformer, peerAliasesTransformer, ...transformers];
|
|
397
|
+
return this.createWebpackBundler(context, mergedTransformers);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
async createWebpackBundler(context, transformers = []) {
|
|
401
|
+
return this.webpack.createBundler(context, transformers);
|
|
380
402
|
}
|
|
381
403
|
/**
|
|
382
404
|
* Get the peers configured by the env on the components + the host deps configured by the env
|
|
383
405
|
*/
|
|
384
406
|
|
|
385
407
|
|
|
386
|
-
|
|
387
|
-
const
|
|
388
|
-
const
|
|
408
|
+
getAllHostDependencies() {
|
|
409
|
+
const envComponentPeers = Object.keys(this.getDependencies().peerDependencies || {}) || [];
|
|
410
|
+
const additionalHostDeps = this.getAdditionalHostDependencies() || [];
|
|
411
|
+
const peers = envComponentPeers.concat(additionalHostDeps);
|
|
389
412
|
return peers;
|
|
390
413
|
}
|
|
391
414
|
|
|
392
|
-
|
|
415
|
+
getAdditionalHostDependencies() {
|
|
393
416
|
return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];
|
|
394
417
|
}
|
|
395
418
|
/**
|
package/dist/react.env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react.env.ts"],"names":["ReactEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","getTsConfig","targetTsConfig","getBuildTsConfig","getTester","jestConfigPath","jestModulePath","resolve","createTester","getTsCompilerOptions","mode","tsconfig","pathToSource","__dirname","replace","compileJs","compileJsx","types","getTsCompiler","transformers","tsModule","ts","tsCompileOptions","createCompiler","getCompiler","getLinter","context","defaultTransformer","configMutator","addExtensionTypes","allTransformers","createLinter","pluginPath","getFormatter","createFormatter","getFileMap","components","local","reduce","index","component","state","filesystem","files","forEach","file","path","id","toString","homepage","fullName","ComponentUrl","toUrl","writeFileMap","fileMap","Math","random","substr","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","envDevConfig","componentDevConfig","peers","getAllHostDeps","peerAliasesTransformer","merged","merge","createDevServer","getBundler","development","baseProdConfig","Boolean","externalizePeer","componentProdConfig","createBundler","hostDeps","getHostDependencies","Object","keys","getDependencies","peerDependencies","concat","getDocsTemplate","getMounter","getPreviewConfig","strategyName","splitComponentBundle","getPackageJsonProps","getNpmIgnore","CAPSULE_ARTIFACTS_DIR","dependencies","react","devDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","tsCompiler","createTask","__getDescriptor","type"],"mappings":"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","sourcesContent":["import ts, { TsConfigSourceFile } from 'typescript';\nimport { tmpdir } from 'os';\nimport { Component } from '@teambit/component';\nimport { ComponentUrl } from '@teambit/component.modules.component-url';\nimport { BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { merge } from 'lodash';\nimport { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport { CompilerMain } from '@teambit/compiler';\nimport {\n BuilderEnv,\n CompilerEnv,\n DependenciesEnv,\n DevEnv,\n LinterEnv,\n PackageEnv,\n TesterEnv,\n FormatterEnv,\n PipeServiceModifier,\n PipeServiceModifiersMap,\n} from '@teambit/envs';\nimport { JestMain } from '@teambit/jest';\nimport { PkgMain } from '@teambit/pkg';\nimport { Tester, TesterMain } from '@teambit/tester';\nimport { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';\nimport type { TypeScriptCompilerOptions } from '@teambit/typescript';\nimport { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';\nimport { Workspace } from '@teambit/workspace';\nimport { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierConfigTransformer, PrettierMain } from '@teambit/prettier';\nimport { Linter, LinterContext } from '@teambit/linter';\nimport { Formatter, FormatterContext } from '@teambit/formatter';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { join, resolve } from 'path';\nimport { outputFileSync } from 'fs-extra';\n// Makes sure the @teambit/react.ui.docs-app is a dependency\n// TODO: remove this import once we can set policy from component to component with workspace version. Then set it via the component.json\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ReactMainConfig } from './react.main.runtime';\nimport { ReactAspect } from './react.aspect';\n\n// webpack configs for both components and envs\nimport basePreviewConfigFactory from './webpack/webpack.config.base';\nimport basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';\n\n// webpack configs for envs only\n// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';\nimport envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';\n\n// webpack configs for components only\nimport componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';\nimport componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';\nimport { generateAddAliasesFromPeersTransformer } from './webpack/transformers';\n\nexport const ReactEnvType = 'react';\nconst defaultTsConfig = require('./typescript/tsconfig.json');\nconst buildTsConfig = require('./typescript/tsconfig.build.json');\nconst eslintConfig = require('./eslint/eslintrc');\nconst prettierConfig = require('./prettier/prettier.config.js');\n\n// TODO: move to be taken from the key mode of compiler context\ntype CompilerMode = 'build' | 'dev';\n\ntype GetBuildPipeModifiers = PipeServiceModifiersMap & {\n tsModifier?: PipeServiceModifier;\n};\n\n/**\n * a component environment built for [React](https://reactjs.org) .\n */\nexport class ReactEnv\n implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv\n{\n constructor(\n /**\n * jest extension\n */\n private jestAspect: JestMain,\n\n /**\n * typescript extension.\n */\n private tsAspect: TypescriptMain,\n\n /**\n * compiler extension.\n */\n private compiler: CompilerMain,\n\n /**\n * webpack extension.\n */\n private webpack: WebpackMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * pkg extension.\n */\n private pkg: PkgMain,\n\n /**\n * tester extension\n */\n private tester: TesterMain,\n\n private config: ReactMainConfig,\n\n private eslint: ESLintMain,\n\n private prettier: PrettierMain\n ) {}\n\n getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;\n }\n\n getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;\n }\n\n /**\n * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n const config = jestConfigPath || require.resolve('./jest/jest.config');\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? defaultTsConfig : buildTsConfig;\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');\n const compileJs = true;\n const compileJsx = true;\n return {\n tsconfig,\n // TODO: @david please remove this line and refactor to be something that makes sense.\n types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],\n compileJs,\n compileJsx,\n };\n }\n\n private getTsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getTsCompiler('dev', transformers, tsModule);\n }\n\n /**\n * returns and configures the component linter.\n */\n getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {\n const defaultTransformer: EslintConfigTransformer = (configMutator) => {\n configMutator.addExtensionTypes(['.md', '.mdx']);\n return configMutator;\n };\n\n const allTransformers = [defaultTransformer, ...transformers];\n\n return this.eslint.createLinter(\n context,\n {\n config: eslintConfig,\n // resolve all plugins from the react environment.\n pluginPath: __dirname,\n },\n allTransformers\n );\n }\n\n /**\n * returns and configures the component formatter.\n */\n getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {\n return this.prettier.createFormatter(\n context,\n {\n config: prettierConfig,\n },\n transformers\n );\n }\n\n private getFileMap(components: Component[], local = false) {\n return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {\n component.state.filesystem.files.forEach((file) => {\n index[file.path] = {\n id: component.id.toString(),\n homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),\n };\n });\n\n return index;\n }, {});\n }\n\n private writeFileMap(components: Component[], local?: boolean) {\n const fileMap = this.getFileMap(components, local);\n const path = join(tmpdir(), `${Math.random().toString(36).substr(2, 9)}.json`);\n outputFileSync(path, JSON.stringify(fileMap));\n return path;\n }\n\n /**\n * required for `bit start`\n */\n getDevEnvId(id?: string) {\n if (typeof id !== 'string') return ReactAspect.id;\n return id || ReactAspect.id;\n }\n\n /**\n * get a schema generator instance configured with the correct tsconfig.\n */\n getSchemaExtractor(tsconfig: TsConfigSourceFile): SchemaExtractor {\n return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig));\n }\n\n /**\n * returns and configures the React component dev server.\n * required for `bit start`\n */\n getDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const baseConfig = basePreviewConfigFactory(false);\n const envDevConfig = envPreviewDevConfigFactory(context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n const peers = this.getAllHostDeps();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);\n return merged;\n };\n\n return this.webpack.createDevServer(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);\n }\n\n async getBundler(context: BundlerContext, transformers: WebpackConfigTransformer[] = []): Promise<Bundler> {\n // const fileMapPath = this.writeFileMap(context.components);\n const peers = this.getAllHostDeps();\n\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(Boolean(context.externalizePeer), peers, context.development);\n // const componentProdConfig = componentPreviewProdConfigFactory(fileMapPath);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n\n return this.webpack.createBundler(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);\n }\n\n /**\n * Get the peers configured by the env on the components + the host deps configured by the env\n */\n private getAllHostDeps() {\n const hostDeps = this.getHostDependencies();\n const peers = Object.keys(this.getDependencies().peerDependencies).concat(hostDeps);\n return peers;\n }\n\n getHostDependencies(): string[] {\n return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];\n }\n\n /**\n * returns a path to a docs template.\n */\n getDocsTemplate() {\n return require.resolve('@teambit/react.ui.docs-app');\n }\n\n icon = 'https://static.bit.dev/extensions-icons/react.svg';\n\n /**\n * returns a paths to a function which mounts a given component to DOM\n */\n getMounter() {\n return require.resolve('./mount');\n }\n\n getPreviewConfig() {\n return {\n strategyName: 'component',\n splitComponentBundle: true,\n };\n }\n\n /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps() {\n return this.tsAspect.getPackageJsonProps();\n }\n\n getNpmIgnore() {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n return [`${CAPSULE_ARTIFACTS_DIR}/`];\n }\n\n /**\n * adds dependencies to all configured components.\n */\n getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed\n '@babel/runtime': '7.12.18',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n\n /**\n * returns the component build pipeline.\n */\n getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {\n const transformers: TsConfigTransformer[] =\n (modifiers?.tsModifier?.transformers as any as TsConfigTransformer[]) || [];\n return [this.getCompilerTask(transformers, modifiers?.tsModifier?.module || ts), this.tester.task];\n }\n\n private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n async __getDescriptor() {\n return {\n type: ReactEnvType,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["react.env.ts"],"names":["ReactEnvType","defaultTsConfig","require","buildTsConfig","eslintConfig","prettierConfig","ReactEnv","constructor","jestAspect","tsAspect","compiler","webpack","workspace","pkg","tester","config","eslint","prettier","getTsConfig","targetTsConfig","getBuildTsConfig","getTester","jestConfigPath","jestModulePath","resolve","createTester","getTsCompilerOptions","mode","tsconfig","pathToSource","__dirname","replace","compileJs","compileJsx","types","getTsCompiler","transformers","tsModule","ts","tsCompileOptions","createCompiler","getCompiler","getLinter","context","defaultTransformer","configMutator","addExtensionTypes","allTransformers","createLinter","pluginPath","getFormatter","createFormatter","getFileMap","components","local","reduce","index","component","state","filesystem","files","forEach","file","path","id","toString","homepage","fullName","ComponentUrl","toUrl","writeFileMap","fileMap","Math","random","substr","JSON","stringify","getDevEnvId","ReactAspect","getSchemaExtractor","createSchemaExtractor","getDevServer","baseConfig","envDevConfig","componentDevConfig","peers","getAllHostDependencies","peerAliasesTransformer","merged","merge","createDevServer","getBundler","createComponentsWebpackBundler","development","baseProdConfig","Boolean","externalizePeer","componentProdConfig","mergedTransformers","createWebpackBundler","createTemplateWebpackBundler","createBundler","envComponentPeers","Object","keys","getDependencies","peerDependencies","additionalHostDeps","getAdditionalHostDependencies","concat","getDocsTemplate","getMounter","getPreviewConfig","strategyName","splitComponentBundle","getPackageJsonProps","getNpmIgnore","CAPSULE_ARTIFACTS_DIR","dependencies","react","devDependencies","getBuildPipe","modifiers","tsModifier","getCompilerTask","module","task","tsCompiler","createTask","__getDescriptor","type"],"mappings":"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","sourcesContent":["import ts, { TsConfigSourceFile } from 'typescript';\nimport { tmpdir } from 'os';\nimport { Component } from '@teambit/component';\nimport { ComponentUrl } from '@teambit/component.modules.component-url';\nimport { BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport { merge } from 'lodash';\nimport { Bundler, BundlerContext, DevServer, DevServerContext } from '@teambit/bundler';\nimport { CompilerMain } from '@teambit/compiler';\nimport {\n BuilderEnv,\n CompilerEnv,\n DependenciesEnv,\n DevEnv,\n LinterEnv,\n PackageEnv,\n TesterEnv,\n FormatterEnv,\n PipeServiceModifier,\n PipeServiceModifiersMap,\n} from '@teambit/envs';\nimport { JestMain } from '@teambit/jest';\nimport { PkgMain } from '@teambit/pkg';\nimport { Tester, TesterMain } from '@teambit/tester';\nimport { TsConfigTransformer, TypescriptMain } from '@teambit/typescript';\nimport type { TypeScriptCompilerOptions } from '@teambit/typescript';\nimport { WebpackConfigTransformer, WebpackMain } from '@teambit/webpack';\nimport { Workspace } from '@teambit/workspace';\nimport { ESLintMain, EslintConfigTransformer } from '@teambit/eslint';\nimport { PrettierConfigTransformer, PrettierMain } from '@teambit/prettier';\nimport { Linter, LinterContext } from '@teambit/linter';\nimport { Formatter, FormatterContext } from '@teambit/formatter';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport type { ComponentMeta } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { join, resolve } from 'path';\nimport { outputFileSync } from 'fs-extra';\n// Makes sure the @teambit/react.ui.docs-app is a dependency\n// TODO: remove this import once we can set policy from component to component with workspace version. Then set it via the component.json\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ReactMainConfig } from './react.main.runtime';\nimport { ReactAspect } from './react.aspect';\n\n// webpack configs for both components and envs\nimport basePreviewConfigFactory from './webpack/webpack.config.base';\nimport basePreviewProdConfigFactory from './webpack/webpack.config.base.prod';\n\n// webpack configs for envs only\n// import devPreviewConfigFactory from './webpack/webpack.config.preview.dev';\nimport envPreviewDevConfigFactory from './webpack/webpack.config.env.dev';\n\n// webpack configs for components only\nimport componentPreviewProdConfigFactory from './webpack/webpack.config.component.prod';\nimport componentPreviewDevConfigFactory from './webpack/webpack.config.component.dev';\nimport { generateAddAliasesFromPeersTransformer } from './webpack/transformers';\n\nexport const ReactEnvType = 'react';\nconst defaultTsConfig = require('./typescript/tsconfig.json');\nconst buildTsConfig = require('./typescript/tsconfig.build.json');\nconst eslintConfig = require('./eslint/eslintrc');\nconst prettierConfig = require('./prettier/prettier.config.js');\n\n// TODO: move to be taken from the key mode of compiler context\ntype CompilerMode = 'build' | 'dev';\n\ntype GetBuildPipeModifiers = PipeServiceModifiersMap & {\n tsModifier?: PipeServiceModifier;\n};\n\n/**\n * a component environment built for [React](https://reactjs.org) .\n */\nexport class ReactEnv\n implements TesterEnv, CompilerEnv, LinterEnv, DevEnv, BuilderEnv, DependenciesEnv, PackageEnv, FormatterEnv\n{\n constructor(\n /**\n * jest extension\n */\n private jestAspect: JestMain,\n\n /**\n * typescript extension.\n */\n private tsAspect: TypescriptMain,\n\n /**\n * compiler extension.\n */\n private compiler: CompilerMain,\n\n /**\n * webpack extension.\n */\n private webpack: WebpackMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * pkg extension.\n */\n private pkg: PkgMain,\n\n /**\n * tester extension\n */\n private tester: TesterMain,\n\n private config: ReactMainConfig,\n\n private eslint: ESLintMain,\n\n private prettier: PrettierMain\n ) {}\n\n getTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, defaultTsConfig, targetTsConfig) : defaultTsConfig;\n }\n\n getBuildTsConfig(targetTsConfig?: TsConfigSourceFile): TsConfigSourceFile {\n return targetTsConfig ? merge({}, buildTsConfig, targetTsConfig) : buildTsConfig;\n }\n\n /**\n * returns a component tester.\n */\n getTester(jestConfigPath: string, jestModulePath?: string): Tester {\n const config = jestConfigPath || require.resolve('./jest/jest.config');\n return this.jestAspect.createTester(config, jestModulePath || require.resolve('jest'));\n }\n\n private getTsCompilerOptions(mode: CompilerMode = 'dev'): TypeScriptCompilerOptions {\n const tsconfig = mode === 'dev' ? defaultTsConfig : buildTsConfig;\n const pathToSource = pathNormalizeToLinux(__dirname).replace('/dist/', '/src/');\n const compileJs = true;\n const compileJsx = true;\n return {\n tsconfig,\n // TODO: @david please remove this line and refactor to be something that makes sense.\n types: [resolve(pathToSource, './typescript/style.d.ts'), resolve(pathToSource, './typescript/asset.d.ts')],\n compileJs,\n compileJsx,\n };\n }\n\n private getTsCompiler(mode: CompilerMode = 'dev', transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompileOptions = this.getTsCompilerOptions(mode);\n return this.tsAspect.createCompiler(tsCompileOptions, transformers, tsModule);\n }\n\n getCompiler(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.getTsCompiler('dev', transformers, tsModule);\n }\n\n /**\n * returns and configures the component linter.\n */\n getLinter(context: LinterContext, transformers: EslintConfigTransformer[] = []): Linter {\n const defaultTransformer: EslintConfigTransformer = (configMutator) => {\n configMutator.addExtensionTypes(['.md', '.mdx']);\n return configMutator;\n };\n\n const allTransformers = [defaultTransformer, ...transformers];\n\n return this.eslint.createLinter(\n context,\n {\n config: eslintConfig,\n // resolve all plugins from the react environment.\n pluginPath: __dirname,\n },\n allTransformers\n );\n }\n\n /**\n * returns and configures the component formatter.\n */\n getFormatter(context: FormatterContext, transformers: PrettierConfigTransformer[] = []): Formatter {\n return this.prettier.createFormatter(\n context,\n {\n config: prettierConfig,\n },\n transformers\n );\n }\n\n private getFileMap(components: Component[], local = false) {\n return components.reduce<{ [key: string]: ComponentMeta }>((index, component: Component) => {\n component.state.filesystem.files.forEach((file) => {\n index[file.path] = {\n id: component.id.toString(),\n homepage: local ? `/${component.id.fullName}` : ComponentUrl.toUrl(component.id),\n };\n });\n\n return index;\n }, {});\n }\n\n private writeFileMap(components: Component[], local?: boolean) {\n const fileMap = this.getFileMap(components, local);\n const path = join(tmpdir(), `${Math.random().toString(36).substr(2, 9)}.json`);\n outputFileSync(path, JSON.stringify(fileMap));\n return path;\n }\n\n /**\n * required for `bit start`\n */\n getDevEnvId(id?: string) {\n if (typeof id !== 'string') return ReactAspect.id;\n return id || ReactAspect.id;\n }\n\n /**\n * get a schema generator instance configured with the correct tsconfig.\n */\n getSchemaExtractor(tsconfig: TsConfigSourceFile): SchemaExtractor {\n return this.tsAspect.createSchemaExtractor(this.getTsConfig(tsconfig));\n }\n\n /**\n * returns and configures the React component dev server.\n * required for `bit start`\n */\n getDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const baseConfig = basePreviewConfigFactory(false);\n const envDevConfig = envPreviewDevConfigFactory(context.id);\n const componentDevConfig = componentPreviewDevConfigFactory(this.workspace.path, context.id);\n const peers = this.getAllHostDependencies();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, envDevConfig, componentDevConfig]);\n return merged;\n };\n\n return this.webpack.createDevServer(context, [defaultTransformer, peerAliasesTransformer, ...transformers]);\n }\n\n async getBundler(context: BundlerContext, transformers: WebpackConfigTransformer[] = []): Promise<Bundler> {\n return this.createComponentsWebpackBundler(context, transformers);\n }\n\n async createComponentsWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n const peers = this.getAllHostDependencies();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(Boolean(context.externalizePeer), peers, context.development);\n const componentProdConfig = componentPreviewProdConfigFactory();\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig, componentProdConfig]);\n return merged;\n };\n const mergedTransformers = [defaultTransformer, peerAliasesTransformer, ...transformers];\n return this.createWebpackBundler(context, mergedTransformers);\n }\n\n async createTemplateWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n const peers = this.getAllHostDependencies();\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(peers);\n const baseConfig = basePreviewConfigFactory(!context.development);\n const baseProdConfig = basePreviewProdConfigFactory(Boolean(context.externalizePeer), peers, context.development);\n\n const defaultTransformer: WebpackConfigTransformer = (configMutator) => {\n const merged = configMutator.merge([baseConfig, baseProdConfig]);\n return merged;\n };\n const mergedTransformers = [defaultTransformer, peerAliasesTransformer, ...transformers];\n return this.createWebpackBundler(context, mergedTransformers);\n }\n\n private async createWebpackBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = []\n ): Promise<Bundler> {\n return this.webpack.createBundler(context, transformers);\n }\n\n /**\n * Get the peers configured by the env on the components + the host deps configured by the env\n */\n getAllHostDependencies() {\n const envComponentPeers = Object.keys(this.getDependencies().peerDependencies || {}) || [];\n const additionalHostDeps = this.getAdditionalHostDependencies() || [];\n const peers = envComponentPeers.concat(additionalHostDeps);\n return peers;\n }\n\n getAdditionalHostDependencies(): string[] {\n return ['@teambit/mdx.ui.mdx-scope-context', '@mdx-js/react'];\n }\n\n /**\n * returns a path to a docs template.\n */\n getDocsTemplate() {\n return require.resolve('@teambit/react.ui.docs-app');\n }\n\n icon = 'https://static.bit.dev/extensions-icons/react.svg';\n\n /**\n * returns a paths to a function which mounts a given component to DOM\n */\n getMounter() {\n return require.resolve('./mount');\n }\n\n getPreviewConfig() {\n return {\n strategyName: 'component',\n splitComponentBundle: true,\n };\n }\n\n /**\n * define the package json properties to add to each component.\n */\n getPackageJsonProps() {\n return this.tsAspect.getPackageJsonProps();\n }\n\n getNpmIgnore() {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n return [`${CAPSULE_ARTIFACTS_DIR}/`];\n }\n\n /**\n * adds dependencies to all configured components.\n */\n getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n // This is added as dev dep since our jest file transformer uses babel plugins that require this to be installed\n '@babel/runtime': '7.12.18',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n\n /**\n * returns the component build pipeline.\n */\n getBuildPipe(modifiers: GetBuildPipeModifiers = {}): BuildTask[] {\n const transformers: TsConfigTransformer[] =\n (modifiers?.tsModifier?.transformers as any as TsConfigTransformer[]) || [];\n return [this.getCompilerTask(transformers, modifiers?.tsModifier?.module || ts), this.tester.task];\n }\n\n private getCompilerTask(transformers: TsConfigTransformer[] = [], tsModule = ts) {\n const tsCompiler = this.getTsCompiler('build', transformers, tsModule);\n return this.compiler.createTask('TSCompiler', tsCompiler);\n }\n\n async __getDescriptor() {\n return {\n type: ReactEnvType,\n };\n }\n}\n"]}
|
|
@@ -9,14 +9,12 @@ function appFile({
|
|
|
9
9
|
namePascalCase: Name
|
|
10
10
|
}) {
|
|
11
11
|
return `import React from 'react';
|
|
12
|
-
import {
|
|
12
|
+
import { Routes, Route } from 'react-router-dom';
|
|
13
13
|
|
|
14
14
|
export function ${Name}App() {
|
|
15
15
|
return (
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
<>
|
|
18
17
|
{/* header component */}
|
|
19
|
-
|
|
20
18
|
<Routes>
|
|
21
19
|
<Route path="/" element={<div>Hello World!!</div>}>
|
|
22
20
|
{/* home page component */}
|
|
@@ -27,10 +25,8 @@ export function ${Name}App() {
|
|
|
27
25
|
</Route>
|
|
28
26
|
|
|
29
27
|
</Routes>
|
|
30
|
-
|
|
31
28
|
{/* footer component */}
|
|
32
|
-
|
|
33
|
-
</BrowserRouter>
|
|
29
|
+
</>
|
|
34
30
|
);
|
|
35
31
|
}
|
|
36
32
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["app.ts"],"names":["appFile","namePascalCase","Name"],"mappings":";;;;;;;AAEO,SAASA,OAAT,CAAiB;AAAEC,EAAAA,cAAc,EAAEC;AAAlB,CAAjB,EAA6D;AAClE,SAAQ;AACV;AACA;AACA,kBAAkBA,IAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["app.ts"],"names":["appFile","namePascalCase","Name"],"mappings":";;;;;;;AAEO,SAASA,OAAT,CAAiB;AAAEC,EAAAA,cAAc,EAAEC;AAAlB,CAAjB,EAA6D;AAClE,SAAQ;AACV;AACA;AACA,kBAAkBA,IAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CArBE;AAsBD","sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function appFile({ namePascalCase: Name }: ComponentContext) {\n return `import React from 'react';\nimport { Routes, Route } from 'react-router-dom';\n\nexport function ${Name}App() {\n return (\n <>\n {/* header component */}\n <Routes>\n <Route path=\"/\" element={<div>Hello World!!</div>}>\n {/* home page component */}\n </Route>\n\n <Route path=\"/about\">\n {/* about page component */}\n </Route>\n\n </Routes>\n {/* footer component */}\n </>\n );\n}\n`;\n}\n"]}
|
|
@@ -9,10 +9,15 @@ function compositionsFile({
|
|
|
9
9
|
namePascalCase: Name
|
|
10
10
|
}) {
|
|
11
11
|
return `import React from 'react';
|
|
12
|
+
import { MemoryRouter } from 'react-router-dom';
|
|
12
13
|
import { ${Name}App } from './app';
|
|
13
14
|
|
|
14
15
|
export const ${Name}Basic = () => {
|
|
15
|
-
return
|
|
16
|
+
return (
|
|
17
|
+
<MemoryRouter>
|
|
18
|
+
<${Name}App />
|
|
19
|
+
</MemoryRouter>
|
|
20
|
+
);
|
|
16
21
|
};
|
|
17
22
|
`;
|
|
18
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["compositions.ts"],"names":["compositionsFile","namePascalCase","Name"],"mappings":";;;;;;;AAEO,SAASA,gBAAT,CAA0B;AAAEC,EAAAA,cAAc,EAAEC;AAAlB,CAA1B,EAAsE;AAC3E,SAAQ;AACV,WAAWA,IAAK;AAChB;AACA,eAAeA,IAAK;AACpB,
|
|
1
|
+
{"version":3,"sources":["compositions.ts"],"names":["compositionsFile","namePascalCase","Name"],"mappings":";;;;;;;AAEO,SAASA,gBAAT,CAA0B;AAAEC,EAAAA,cAAc,EAAEC;AAAlB,CAA1B,EAAsE;AAC3E,SAAQ;AACV;AACA,WAAWA,IAAK;AAChB;AACA,eAAeA,IAAK;AACpB;AACA;AACA,SAASA,IAAK;AACd;AACA;AACA;AACA,CAXE;AAYD","sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function compositionsFile({ namePascalCase: Name }: ComponentContext) {\n return `import React from 'react';\nimport { MemoryRouter } from 'react-router-dom';\nimport { ${Name}App } from './app';\n\nexport const ${Name}Basic = () => {\n return (\n <MemoryRouter>\n <${Name}App />\n </MemoryRouter>\n );\n};\n`;\n}\n"]}
|
|
@@ -76,12 +76,13 @@ const reactComponent = {
|
|
|
76
76
|
description: 'a basic react component',
|
|
77
77
|
generateFiles: context => {
|
|
78
78
|
return [(0, _indexFile().indexFile)(context), (0, _component().componentFile)(context), (0, _composition().compositionFile)(context), (0, _docs().docsFile)(context), (0, _test().testFile)(context)];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
},
|
|
80
|
+
config: {
|
|
81
|
+
'teambit.react/react': {},
|
|
82
|
+
'teambit.envs/envs': {
|
|
83
|
+
env: 'teambit.react/react'
|
|
84
|
+
}
|
|
85
|
+
}
|
|
85
86
|
};
|
|
86
87
|
exports.reactComponent = reactComponent;
|
|
87
88
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["reactComponent","name","description","generateFiles","context","deprecatedReactComponent","hidden"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEO,MAAMA,cAAiC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,OADyC;AAE/CC,EAAAA,WAAW,EAAE,yBAFkC;AAG/CC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CAAC,4BAAUA,OAAV,CAAD,EAAqB,gCAAcA,OAAd,CAArB,EAA6C,oCAAgBA,OAAhB,CAA7C,EAAuE,sBAASA,OAAT,CAAvE,EAA0F,sBAASA,OAAT,CAA1F,CAAP;AACD,GAL8C,
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["reactComponent","name","description","generateFiles","context","config","env","deprecatedReactComponent","hidden"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEO,MAAMA,cAAiC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,OADyC;AAE/CC,EAAAA,WAAW,EAAE,yBAFkC;AAG/CC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CAAC,4BAAUA,OAAV,CAAD,EAAqB,gCAAcA,OAAd,CAArB,EAA6C,oCAAgBA,OAAhB,CAA7C,EAAuE,sBAASA,OAAT,CAAvE,EAA0F,sBAASA,OAAT,CAA1F,CAAP;AACD,GAL8C;AAM/CC,EAAAA,MAAM,EAAE;AACN,2BAAuB,EADjB;AAEN,yBAAqB;AACnBC,MAAAA,GAAG,EAAE;AADc;AAFf;AANuC,CAA1C;;;AAcA,MAAMC,wBAA2C,mCACnDP,cADmD;AAEtDC,EAAAA,IAAI,EAAE,iBAFgD;AAGtDO,EAAAA,MAAM,EAAE;AAH8C,EAAjD","sourcesContent":["import { ComponentTemplate, ComponentContext } from '@teambit/generator';\nimport { componentFile } from './files/component';\nimport { compositionFile } from './files/composition';\nimport { docsFile } from './files/docs';\nimport { testFile } from './files/test';\nimport { indexFile } from './files/index-file';\n\nexport const reactComponent: ComponentTemplate = {\n name: 'react',\n description: 'a basic react component',\n generateFiles: (context: ComponentContext) => {\n return [indexFile(context), componentFile(context), compositionFile(context), docsFile(context), testFile(context)];\n },\n config: {\n 'teambit.react/react': {},\n 'teambit.envs/envs': {\n env: 'teambit.react/react',\n },\n },\n};\n\nexport const deprecatedReactComponent: ComponentTemplate = {\n ...reactComponent,\n name: 'react-component',\n hidden: true,\n};\n"]}
|
|
@@ -75,12 +75,13 @@ const reactComponentJS = {
|
|
|
75
75
|
`
|
|
76
76
|
};
|
|
77
77
|
return [indexFile, (0, _component().componentFile)(context), (0, _composition().compositionFile)(context), (0, _docs().docsFile)(context), (0, _test().testFile)(context)];
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
},
|
|
79
|
+
config: {
|
|
80
|
+
'teambit.react/react': {},
|
|
81
|
+
'teambit.envs/envs': {
|
|
82
|
+
env: 'teambit.react/react'
|
|
83
|
+
}
|
|
84
|
+
}
|
|
84
85
|
};
|
|
85
86
|
exports.reactComponentJS = reactComponentJS;
|
|
86
87
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["reactComponentJS","name","description","generateFiles","context","namePascalCase","Name","indexFile","relativePath","content","deprecatedReactComponentJS","hidden"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEO,MAAMA,gBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,UAD2C;AAEjDC,EAAAA,WAAW,EAAE,+BAFoC;AAIjDC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,UAAM;AAAEH,MAAAA,IAAF;AAAQI,MAAAA,cAAc,EAAEC;AAAxB,QAAiCF,OAAvC;AACA,UAAMG,SAAS,GAAG;AAChBC,MAAAA,YAAY,EAAE,UADE;AAEhBC,MAAAA,OAAO,EAAG,YAAWH,IAAK,cAAaL,IAAK;AAClD;AAHsB,KAAlB;AAKA,WAAO,CAACM,SAAD,EAAY,gCAAcH,OAAd,CAAZ,EAAoC,oCAAgBA,OAAhB,CAApC,EAA8D,sBAASA,OAAT,CAA9D,EAAiF,sBAASA,OAAT,CAAjF,CAAP;AACD,GAZgD,
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["reactComponentJS","name","description","generateFiles","context","namePascalCase","Name","indexFile","relativePath","content","config","env","deprecatedReactComponentJS","hidden"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEO,MAAMA,gBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,UAD2C;AAEjDC,EAAAA,WAAW,EAAE,+BAFoC;AAIjDC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,UAAM;AAAEH,MAAAA,IAAF;AAAQI,MAAAA,cAAc,EAAEC;AAAxB,QAAiCF,OAAvC;AACA,UAAMG,SAAS,GAAG;AAChBC,MAAAA,YAAY,EAAE,UADE;AAEhBC,MAAAA,OAAO,EAAG,YAAWH,IAAK,cAAaL,IAAK;AAClD;AAHsB,KAAlB;AAKA,WAAO,CAACM,SAAD,EAAY,gCAAcH,OAAd,CAAZ,EAAoC,oCAAgBA,OAAhB,CAApC,EAA8D,sBAASA,OAAT,CAA9D,EAAiF,sBAASA,OAAT,CAAjF,CAAP;AACD,GAZgD;AAajDM,EAAAA,MAAM,EAAE;AACN,2BAAuB,EADjB;AAEN,yBAAqB;AACnBC,MAAAA,GAAG,EAAE;AADc;AAFf;AAbyC,CAA5C;;;AAqBA,MAAMC,0BAA6C,mCACrDZ,gBADqD;AAExDC,EAAAA,IAAI,EAAE,oBAFkD;AAGxDY,EAAAA,MAAM,EAAE;AAHgD,EAAnD","sourcesContent":["import { ComponentTemplate, ComponentContext } from '@teambit/generator';\nimport { componentFile } from './files/component';\nimport { compositionFile } from './files/composition';\nimport { docsFile } from './files/docs';\nimport { testFile } from './files/test';\n\nexport const reactComponentJS: ComponentTemplate = {\n name: 'react-js',\n description: 'a basic react component in js',\n\n generateFiles: (context: ComponentContext) => {\n const { name, namePascalCase: Name } = context;\n const indexFile = {\n relativePath: 'index.js',\n content: `export { ${Name} } from './${name}';\n`,\n };\n return [indexFile, componentFile(context), compositionFile(context), docsFile(context), testFile(context)];\n },\n config: {\n 'teambit.react/react': {},\n 'teambit.envs/envs': {\n env: 'teambit.react/react',\n },\n },\n};\n\nexport const deprecatedReactComponentJS: ComponentTemplate = {\n ...reactComponentJS,\n name: 'react-component-js',\n hidden: true,\n};\n"]}
|
|
@@ -70,12 +70,13 @@ const reactContext = {
|
|
|
70
70
|
description: 'a react context component',
|
|
71
71
|
generateFiles: context => {
|
|
72
72
|
return [(0, _indexFile().indexFile)(context), (0, _context().contextFile)(context), (0, _contextProvider().contextProviderFile)(context), (0, _composition().compositionFile)(context), (0, _docs().docsFile)(context), (0, _test().testFile)(context)];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
},
|
|
74
|
+
config: {
|
|
75
|
+
'teambit.react/react': {},
|
|
76
|
+
'teambit.envs/envs': {
|
|
77
|
+
env: 'teambit.react/react'
|
|
78
|
+
}
|
|
79
|
+
}
|
|
79
80
|
};
|
|
80
81
|
exports.reactContext = reactContext;
|
|
81
82
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["reactContext","name","description","generateFiles","context"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,YAA+B,GAAG;AAC7CC,EAAAA,IAAI,EAAE,eADuC;AAE7CC,EAAAA,WAAW,EAAE,2BAFgC;AAI7CC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CACL,4BAAUA,OAAV,CADK,EAEL,4BAAYA,OAAZ,CAFK,EAGL,4CAAoBA,OAApB,CAHK,EAIL,oCAAgBA,OAAhB,CAJK,EAKL,sBAASA,OAAT,CALK,EAML,sBAASA,OAAT,CANK,CAAP;AAQD,GAb4C,
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["reactContext","name","description","generateFiles","context","config","env"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,YAA+B,GAAG;AAC7CC,EAAAA,IAAI,EAAE,eADuC;AAE7CC,EAAAA,WAAW,EAAE,2BAFgC;AAI7CC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CACL,4BAAUA,OAAV,CADK,EAEL,4BAAYA,OAAZ,CAFK,EAGL,4CAAoBA,OAApB,CAHK,EAIL,oCAAgBA,OAAhB,CAJK,EAKL,sBAASA,OAAT,CALK,EAML,sBAASA,OAAT,CANK,CAAP;AAQD,GAb4C;AAc7CC,EAAAA,MAAM,EAAE;AACN,2BAAuB,EADjB;AAEN,yBAAqB;AACnBC,MAAAA,GAAG,EAAE;AADc;AAFf;AAdqC,CAAxC","sourcesContent":["import { ComponentTemplate, ComponentContext } from '@teambit/generator';\nimport { contextFile } from './files/context';\nimport { contextProviderFile } from './files/context-provider';\nimport { compositionFile } from './files/composition';\nimport { docsFile } from './files/docs';\nimport { testFile } from './files/test';\nimport { indexFile } from './files/index-file';\n\nexport const reactContext: ComponentTemplate = {\n name: 'react-context',\n description: 'a react context component',\n\n generateFiles: (context: ComponentContext) => {\n return [\n indexFile(context),\n contextFile(context),\n contextProviderFile(context),\n compositionFile(context),\n docsFile(context),\n testFile(context),\n ];\n },\n config: {\n 'teambit.react/react': {},\n 'teambit.envs/envs': {\n env: 'teambit.react/react',\n },\n },\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["reactEnvTemplate","name","description","generateFiles","context","relativePath","content","isMain","config","env"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,gBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,WAD2C;AAEjDC,EAAAA,WAAW,EAAE,0DAFoC;AAGjDC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CACL;AACEC,MAAAA,YAAY,EAAE,UADhB;AAEEC,MAAAA,OAAO,EAAE,wBAAUF,OAAV,CAFX;AAGEG,MAAAA,MAAM,EAAE;AAHV,KADK,EAML;AACEF,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,WADhC;AAEEK,MAAAA,OAAO,EAAE,oBAAQF,OAAR;AAFX,KANK,EAUL;AACEC,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,kBADhC;AAEEK,MAAAA,OAAO,EAAE,6BAAgBF,OAAhB;AAFX,KAVK,EAcL;AACEC,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,qBADhC;AAEEK,MAAAA,OAAO,EAAE,mCAAmBF,OAAnB;AAFX,KAdK,EAkBL;AACEC,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,YADhC;AAEEK,MAAAA,OAAO,EAAE,0BAAWF,OAAX;AAFX,KAlBK,EAsBL;AACEC,MAAAA,YAAY,EAAG,iCADjB;AAEEC,MAAAA,OAAO,EAAE;AAFX,KAtBK,EA0BL;AACED,MAAAA,YAAY,EAAG,0BADjB;AAEEC,MAAAA,OAAO,EAAE;AAFX,KA1BK,EA8BL;AACED,MAAAA,YAAY,EAAG,qBADjB;AAEEC,MAAAA,OAAO,EAAE;AAFX,KA9BK,CAAP;AAmCD,GAvCgD;AAwCjDE,EAAAA,MAAM,EAAE;AACN,
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["reactEnvTemplate","name","description","generateFiles","context","relativePath","content","isMain","config","env"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,gBAAmC,GAAG;AACjDC,EAAAA,IAAI,EAAE,WAD2C;AAEjDC,EAAAA,WAAW,EAAE,0DAFoC;AAGjDC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CACL;AACEC,MAAAA,YAAY,EAAE,UADhB;AAEEC,MAAAA,OAAO,EAAE,wBAAUF,OAAV,CAFX;AAGEG,MAAAA,MAAM,EAAE;AAHV,KADK,EAML;AACEF,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,WADhC;AAEEK,MAAAA,OAAO,EAAE,oBAAQF,OAAR;AAFX,KANK,EAUL;AACEC,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,kBADhC;AAEEK,MAAAA,OAAO,EAAE,6BAAgBF,OAAhB;AAFX,KAVK,EAcL;AACEC,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,qBADhC;AAEEK,MAAAA,OAAO,EAAE,mCAAmBF,OAAnB;AAFX,KAdK,EAkBL;AACEC,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACH,IAAK,YADhC;AAEEK,MAAAA,OAAO,EAAE,0BAAWF,OAAX;AAFX,KAlBK,EAsBL;AACEC,MAAAA,YAAY,EAAG,iCADjB;AAEEC,MAAAA,OAAO,EAAE;AAFX,KAtBK,EA0BL;AACED,MAAAA,YAAY,EAAG,0BADjB;AAEEC,MAAAA,OAAO,EAAE;AAFX,KA1BK,EA8BL;AACED,MAAAA,YAAY,EAAG,qBADjB;AAEEC,MAAAA,OAAO,EAAE;AAFX,KA9BK,CAAP;AAmCD,GAvCgD;AAwCjDE,EAAAA,MAAM,EAAE;AACN,2BAAuB,EADjB;AAEN,yBAAqB;AACnBC,MAAAA,GAAG,EAAE;AADc;AAFf;AAxCyC,CAA5C","sourcesContent":["import { ComponentContext, ComponentTemplate } from '@teambit/generator';\nimport { indexFile } from './files/index';\nimport { docFile } from './files/doc';\nimport { mainRuntimeFile } from './files/main.runtime';\nimport { previewRuntimeFile } from './files/preview.runtime';\nimport { aspectFile } from './files/aspect';\nimport { webpackConfigFile } from './files/webpack.config';\nimport { typescriptConfigFile } from './files/typescript.config';\nimport { jestConfigFile } from './files/jest.config';\n\nexport const reactEnvTemplate: ComponentTemplate = {\n name: 'react-env',\n description: 'customize the base React env with your configs and tools',\n generateFiles: (context: ComponentContext) => {\n return [\n {\n relativePath: 'index.ts',\n content: indexFile(context),\n isMain: true,\n },\n {\n relativePath: `${context.name}.docs.mdx`,\n content: docFile(context),\n },\n {\n relativePath: `${context.name}.main.runtime.ts`,\n content: mainRuntimeFile(context),\n },\n {\n relativePath: `${context.name}.preview.runtime.ts`,\n content: previewRuntimeFile(context),\n },\n {\n relativePath: `${context.name}.aspect.ts`,\n content: aspectFile(context),\n },\n {\n relativePath: `webpack/webpack-transformers.ts`,\n content: webpackConfigFile(),\n },\n {\n relativePath: `typescript/tsconfig.json`,\n content: typescriptConfigFile(),\n },\n {\n relativePath: `jest/jest.config.js`,\n content: jestConfigFile(),\n },\n ];\n },\n config: {\n 'teambit.react/react': {},\n 'teambit.envs/envs': {\n env: 'teambit.envs/env',\n },\n },\n};\n"]}
|
|
@@ -60,12 +60,13 @@ const reactHook = {
|
|
|
60
60
|
description: 'a react hook component',
|
|
61
61
|
generateFiles: context => {
|
|
62
62
|
return [(0, _indexFile().indexFile)(context), (0, _component().componentFile)(context), (0, _composition().compositionFile)(context), (0, _docs().docsFile)(context), (0, _test().testFile)(context)];
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
},
|
|
64
|
+
config: {
|
|
65
|
+
'teambit.react/react': {},
|
|
66
|
+
'teambit.envs/envs': {
|
|
67
|
+
env: 'teambit.react/react'
|
|
68
|
+
}
|
|
69
|
+
}
|
|
69
70
|
};
|
|
70
71
|
exports.reactHook = reactHook;
|
|
71
72
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["reactHook","name","description","generateFiles","context"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,SAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAE,YADoC;AAE1CC,EAAAA,WAAW,EAAE,wBAF6B;AAI1CC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CAAC,4BAAUA,OAAV,CAAD,EAAqB,gCAAcA,OAAd,CAArB,EAA6C,oCAAgBA,OAAhB,CAA7C,EAAuE,sBAASA,OAAT,CAAvE,EAA0F,sBAASA,OAAT,CAA1F,CAAP;AACD,GANyC,
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["reactHook","name","description","generateFiles","context","config","env"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,SAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAE,YADoC;AAE1CC,EAAAA,WAAW,EAAE,wBAF6B;AAI1CC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CAAC,4BAAUA,OAAV,CAAD,EAAqB,gCAAcA,OAAd,CAArB,EAA6C,oCAAgBA,OAAhB,CAA7C,EAAuE,sBAASA,OAAT,CAAvE,EAA0F,sBAASA,OAAT,CAA1F,CAAP;AACD,GANyC;AAO1CC,EAAAA,MAAM,EAAE;AACN,2BAAuB,EADjB;AAEN,yBAAqB;AACnBC,MAAAA,GAAG,EAAE;AADc;AAFf;AAPkC,CAArC","sourcesContent":["import { ComponentTemplate, ComponentContext } from '@teambit/generator';\nimport { componentFile } from './files/component';\nimport { compositionFile } from './files/composition';\nimport { docsFile } from './files/docs';\nimport { testFile } from './files/test';\nimport { indexFile } from './files/index-file';\n\nexport const reactHook: ComponentTemplate = {\n name: 'react-hook',\n description: 'a react hook component',\n\n generateFiles: (context: ComponentContext) => {\n return [indexFile(context), componentFile(context), compositionFile(context), docsFile(context), testFile(context)];\n },\n config: {\n 'teambit.react/react': {},\n 'teambit.envs/envs': {\n env: 'teambit.react/react',\n },\n },\n};\n"]}
|
|
@@ -24,27 +24,20 @@ const reactWorkspaceTemplate = {
|
|
|
24
24
|
return (0, _workspaceCommon().generateFiles)(context);
|
|
25
25
|
},
|
|
26
26
|
importComponents: () => {
|
|
27
|
-
return [{
|
|
28
|
-
id: 'teambit.react/templates/envs/my-react',
|
|
29
|
-
targetName: 'envs/my-react',
|
|
30
|
-
path: 'demo/envs/my-react'
|
|
31
|
-
|
|
32
|
-
id: 'teambit.react/templates/ui/text',
|
|
33
|
-
targetName: 'ui/
|
|
34
|
-
path: 'demo/ui/
|
|
35
|
-
|
|
36
|
-
id: 'teambit.react/templates/
|
|
37
|
-
targetName: '
|
|
38
|
-
path: 'demo/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
targetName: 'ui/card',
|
|
42
|
-
path: 'demo/ui/card'
|
|
43
|
-
}, {
|
|
44
|
-
id: 'teambit.react/templates/pages/welcome',
|
|
45
|
-
targetName: 'pages/welcome',
|
|
46
|
-
path: 'demo/pages/welcome'
|
|
47
|
-
}];
|
|
27
|
+
return [// {
|
|
28
|
+
// id: 'teambit.react/templates/envs/my-react',
|
|
29
|
+
// targetName: 'envs/my-react',
|
|
30
|
+
// path: 'demo/envs/my-react',
|
|
31
|
+
// },
|
|
32
|
+
// { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },
|
|
33
|
+
// { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },
|
|
34
|
+
// { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },
|
|
35
|
+
// {
|
|
36
|
+
// id: 'teambit.react/templates/pages/welcome',
|
|
37
|
+
// targetName: 'pages/welcome',
|
|
38
|
+
// path: 'demo/pages/welcome',
|
|
39
|
+
// },
|
|
40
|
+
];
|
|
48
41
|
}
|
|
49
42
|
};
|
|
50
43
|
exports.reactWorkspaceTemplate = reactWorkspaceTemplate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["reactWorkspaceTemplate","name","description","generateFiles","context","importComponents"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["reactWorkspaceTemplate","name","description","generateFiles","context","importComponents"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,sBAAyC,GAAG;AACvDC,EAAAA,IAAI,EAAE,OADiD;AAEvDC,EAAAA,WAAW,EAAE,sCAF0C;AAGvDC,EAAAA,aAAa,EAAE,MAAOC,OAAP,IAAqC;AAClD,WAAO,sCAAoBA,OAApB,CAAP;AACD,GALsD;AAMvDC,EAAAA,gBAAgB,EAAE,MAAM;AACtB,WAAO,CACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbK,KAAP;AAeD;AAtBsD,CAAlD","sourcesContent":["import { WorkspaceContext, WorkspaceTemplate } from '@teambit/generator';\nimport { generateFiles as generateCommonFiles } from '../workspace-common';\n\nexport const reactWorkspaceTemplate: WorkspaceTemplate = {\n name: 'react',\n description: 'React workspace with demo components',\n generateFiles: async (context: WorkspaceContext) => {\n return generateCommonFiles(context);\n },\n importComponents: () => {\n return [\n // {\n // id: 'teambit.react/templates/envs/my-react',\n // targetName: 'envs/my-react',\n // path: 'demo/envs/my-react',\n // },\n // { id: 'teambit.react/templates/ui/text', targetName: 'ui/text', path: 'demo/ui/text' },\n // { id: 'teambit.react/templates/ui/heading', targetName: 'ui/heading', path: 'demo/ui/heading' },\n // { id: 'teambit.react/templates/ui/card', targetName: 'ui/card', path: 'demo/ui/card' },\n // {\n // id: 'teambit.react/templates/pages/welcome',\n // targetName: 'pages/welcome',\n // path: 'demo/pages/welcome',\n // },\n ];\n },\n};\n"]}
|
|
@@ -31,7 +31,7 @@ async function workspaceConfig({
|
|
|
31
31
|
name,
|
|
32
32
|
defaultScope
|
|
33
33
|
}) {
|
|
34
|
-
const scope = defaultScope || '
|
|
34
|
+
const scope = defaultScope || 'my-org.my-scope';
|
|
35
35
|
const configParsed = await (0, _config().getWorkspaceConfigTemplateParsed)();
|
|
36
36
|
configParsed['teambit.workspace/workspace'].name = name;
|
|
37
37
|
configParsed['teambit.workspace/workspace'].defaultScope = scope;
|
|
@@ -54,37 +54,7 @@ async function workspaceConfig({
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
const variants = {
|
|
57
|
-
'teambit.workspace/variants': (0, _commentJson().parse)(`{
|
|
58
|
-
/**
|
|
59
|
-
* configures all components with namespaces 'ui', 'blocks', 'pages' and 'themes'
|
|
60
|
-
* to use the default React development environment.
|
|
61
|
-
*
|
|
62
|
-
*/
|
|
63
|
-
"{ui/**}, {blocks/**}, {pages/**}, {themes/**}": {
|
|
64
|
-
"teambit.react/react": {}
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* configures components with namespaces 'entities', 'modules' and 'functions' to use the
|
|
69
|
-
* default NodeJS dev environment.
|
|
70
|
-
*/
|
|
71
|
-
"{entities/**}, {modules/**}, {functions/**}": {
|
|
72
|
-
"teambit.harmony/node": {}
|
|
73
|
-
},
|
|
74
|
-
/**
|
|
75
|
-
* configures components with namespace 'content' to use the MDX dev environment.
|
|
76
|
-
*/
|
|
77
|
-
"{content/**}": {
|
|
78
|
-
"teambit.mdx/mdx": {}
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* configures components with namespaces 'envs' and 'aspects' to use the default Aspect development environment.
|
|
83
|
-
*/
|
|
84
|
-
"{envs/**}, {aspects/**}, {apps/**}": {
|
|
85
|
-
"teambit.harmony/aspect": {}
|
|
86
|
-
}
|
|
87
|
-
}`)
|
|
57
|
+
'teambit.workspace/variants': (0, _commentJson().parse)(`{}`)
|
|
88
58
|
};
|
|
89
59
|
const configMerged = (0, _commentJson().assign)(configParsed, variants);
|
|
90
60
|
return (0, _config().stringifyWorkspaceConfig)(configMerged);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["workspace-config.ts"],"names":["workspaceConfig","name","defaultScope","scope","configParsed","packageManager","policy","dependencies","peerDependencies","react","variants","configMerged"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,eAAeA,eAAf,CAA+B;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAA/B,EAAyE;AAC9E,QAAMC,KAAK,GAAGD,YAAY,IAAI,
|
|
1
|
+
{"version":3,"sources":["workspace-config.ts"],"names":["workspaceConfig","name","defaultScope","scope","configParsed","packageManager","policy","dependencies","peerDependencies","react","variants","configMerged"],"mappings":";;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,eAAeA,eAAf,CAA+B;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAA/B,EAAyE;AAC9E,QAAMC,KAAK,GAAGD,YAAY,IAAI,iBAA9B;AACA,QAAME,YAAY,GAAG,MAAM,iDAA3B;AACAA,EAAAA,YAAY,CAAC,6BAAD,CAAZ,CAA4CH,IAA5C,GAAmDA,IAAnD;AACAG,EAAAA,YAAY,CAAC,6BAAD,CAAZ,CAA4CF,YAA5C,GAA2DC,KAA3D;AACAC,EAAAA,YAAY,CAAC,0CAAD,CAAZ,CAAyDC,cAAzD,GAA0E,2BAA1E;AACAD,EAAAA,YAAY,CAAC,0CAAD,CAAZ,CAAyDE,MAAzD,GAAkE;AAChEC,IAAAA,YAAY,EAAE;AACZ,0CAAoC,UADxB;AAEZ,0CAAoC,QAFxB;AAGZ,qCAA+B,OAHnB;AAIZ,8BAAwB,QAJZ;AAKZ,4BAAsB,QALV;AAMZ,gCAA0B,OANd;AAOZ,2BAAqB,QAPT;AAQZ,6BAAuB;AARX,KADkD;AAWhEC,IAAAA,gBAAgB,EAAE;AAChB,gCAA0B,QADV;AAEhBC,MAAAA,KAAK,EAAE,QAFS;AAGhB,mBAAa;AAHG;AAX8C,GAAlE;AAkBA,QAAMC,QAAQ,GAAG;AACf,kCAA8B,0BAAO,IAAP;AADf,GAAjB;AAIA,QAAMC,YAAY,GAAG,2BAAOP,YAAP,EAAqBM,QAArB,CAArB;AAEA,SAAO,wCAAyBC,YAAzB,CAAP;AACD","sourcesContent":["import { WorkspaceContext } from '@teambit/generator';\nimport { getWorkspaceConfigTemplateParsed, stringifyWorkspaceConfig } from '@teambit/config';\nimport { parse, assign } from 'comment-json';\n\nexport async function workspaceConfig({ name, defaultScope }: WorkspaceContext) {\n const scope = defaultScope || 'my-org.my-scope';\n const configParsed = await getWorkspaceConfigTemplateParsed();\n configParsed['teambit.workspace/workspace'].name = name;\n configParsed['teambit.workspace/workspace'].defaultScope = scope;\n configParsed['teambit.dependencies/dependency-resolver'].packageManager = 'teambit.dependencies/pnpm';\n configParsed['teambit.dependencies/dependency-resolver'].policy = {\n dependencies: {\n '@teambit/eslint-config-bit-react': '~0.0.367',\n '@typescript-eslint/eslint-plugin': '4.29.3',\n 'eslint-import-resolver-node': '0.3.6',\n 'eslint-plugin-import': '2.22.1',\n 'eslint-plugin-jest': '24.4.0',\n 'eslint-plugin-jsx-a11y': '6.4.1',\n 'eslint-plugin-mdx': '1.15.0',\n 'eslint-plugin-react': '7.25.1',\n },\n peerDependencies: {\n '@testing-library/react': '12.0.0',\n react: '17.0.2',\n 'react-dom': '17.0.2',\n },\n };\n\n const variants = {\n 'teambit.workspace/variants': parse(`{}`),\n };\n\n const configMerged = assign(configParsed, variants);\n\n return stringifyWorkspaceConfig(configMerged);\n}\n"]}
|
|
File without changes
|
|
Binary file
|