@teambit/compiler 1.0.106 → 1.0.108

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.
@@ -0,0 +1,9 @@
1
+ import { EnvHandler } from '@teambit/envs';
2
+ import { Compiler } from './types';
3
+
4
+ export interface CompilerEnv {
5
+ /**
6
+ * return a compiler instance.
7
+ */
8
+ compiler(): EnvHandler<Compiler>;
9
+ }
@@ -0,0 +1,5 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+
3
+ export const CompilerAspect = Aspect.create({
4
+ id: 'teambit.compilation/compiler',
5
+ });
@@ -0,0 +1,121 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { Logger } from '@teambit/logger';
3
+ import type { PubsubMain, BitBaseEvent } from '@teambit/pubsub';
4
+ import chalk from 'chalk';
5
+ import prettyTime from 'pretty-time';
6
+ import { Component } from '@teambit/component';
7
+ import { formatCompileResults } from './output-formatter';
8
+ import { CompileError, WorkspaceCompiler, CompileOptions } from './workspace-compiler';
9
+ import { CompilationInitiator } from './types';
10
+
11
+ // IDs & events
12
+ import { CompilerAspect } from './compiler.aspect';
13
+ import { ComponentCompilationOnDoneEvent } from './events';
14
+
15
+ export type ComponentsStatus = {
16
+ buildResults: string[];
17
+ component: Component;
18
+ errors: CompileError[];
19
+ };
20
+
21
+ export class CompileCmd implements Command {
22
+ componentsStatus: ComponentsStatus[] = [];
23
+ name = 'compile [component-names...]';
24
+ description = 'compile components in the workspace';
25
+ helpUrl = 'reference/compiling/compiler-overview';
26
+ arguments = [
27
+ {
28
+ name: 'component-names...',
29
+ description: 'a list of component names or component IDs (defaults to all components)',
30
+ },
31
+ ];
32
+ alias = '';
33
+ group = 'development';
34
+ options = [
35
+ ['c', 'changed', 'compile only new and modified components'],
36
+ ['v', 'verbose', 'show more data, such as, dist paths'],
37
+ ['j', 'json', 'return the compile results in json format'],
38
+ ['d', 'delete-dist-dir', 'delete existing dist folder before writing new compiled files'],
39
+ ] as CommandOptions;
40
+
41
+ constructor(private compile: WorkspaceCompiler, private logger: Logger, private pubsub: PubsubMain) {}
42
+
43
+ async report([components = []]: [string[]], compilerOptions: CompileOptions) {
44
+ const startTimestamp = process.hrtime();
45
+ this.logger.setStatusLine('Compiling your components, hold tight.');
46
+ this.pubsub.sub(CompilerAspect.id, this.onComponentCompilationDone.bind(this));
47
+
48
+ let outputString = '';
49
+ await this.compile.compileComponents(components, {
50
+ ...compilerOptions,
51
+ initiator: CompilationInitiator.CmdReport,
52
+ });
53
+ const compileTimeLength = process.hrtime(startTimestamp);
54
+
55
+ outputString += '\n';
56
+ outputString += ` ${chalk.underline('STATUS')}\t${chalk.underline('COMPONENT ID')}\n`;
57
+ outputString += formatCompileResults(this.componentsStatus, !!compilerOptions.verbose);
58
+ outputString += '\n';
59
+
60
+ outputString += this.getStatusLine(this.componentsStatus, compileTimeLength);
61
+
62
+ this.logger.clearStatusLine();
63
+
64
+ return {
65
+ data: outputString,
66
+ code: this.getExitCode(this.componentsStatus),
67
+ };
68
+ }
69
+
70
+ async json([components]: [string[]], compilerOptions: CompileOptions) {
71
+ compilerOptions.deleteDistDir = true;
72
+ // @ts-ignore
73
+ const compileResults = await this.compile.compileComponents(components, {
74
+ ...compilerOptions,
75
+ initiator: CompilationInitiator.CmdJson,
76
+ });
77
+ return {
78
+ data: compileResults,
79
+ // @todo: fix the code once compile is ready.
80
+ code: 0,
81
+ };
82
+ }
83
+
84
+ private failedComponents(componentsStatus: ComponentsStatus[]): ComponentsStatus[] {
85
+ return componentsStatus.filter((component) => component.errors.length);
86
+ }
87
+
88
+ private getSummaryIcon(componentsStatus: ComponentsStatus[]) {
89
+ switch (this.failedComponents(componentsStatus).length) {
90
+ case 0:
91
+ return chalk.green('✔');
92
+ case componentsStatus.length:
93
+ return chalk.red('✗');
94
+ default:
95
+ return chalk.yellow('⍻');
96
+ }
97
+ }
98
+
99
+ private getExitCode(componentsStatus: ComponentsStatus[]) {
100
+ return this.failedComponents(componentsStatus).length ? 1 : 0;
101
+ }
102
+
103
+ private getStatusLine(componentsStatus: ComponentsStatus[], compileTimeLength) {
104
+ const numberOfComponents = componentsStatus.length;
105
+ const numberOfFailingComponents = this.failedComponents(componentsStatus).length;
106
+ const numberOfSuccessfulComponents = componentsStatus.filter((component) => !component.errors.length).length;
107
+
108
+ const icon = this.getSummaryIcon(componentsStatus);
109
+ const summaryLine = numberOfFailingComponents
110
+ ? `${icon} ${numberOfFailingComponents}/${numberOfComponents} components failed to compile.`
111
+ : `${icon} ${numberOfSuccessfulComponents}/${numberOfComponents} components compiled successfully.`;
112
+
113
+ return `${summaryLine}\nFinished. (${prettyTime(compileTimeLength)})`;
114
+ }
115
+
116
+ private onComponentCompilationDone(event: BitBaseEvent<any>) {
117
+ if (event.type === ComponentCompilationOnDoneEvent.TYPE) {
118
+ this.componentsStatus.push(event.data);
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,191 @@
1
+ import * as path from 'path';
2
+ import fs from 'fs-extra';
3
+ import AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';
4
+ import { BuilderAspect, BuilderMain } from '@teambit/builder';
5
+ import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';
6
+ import { IssuesClasses } from '@teambit/component-issues';
7
+ import IssuesAspect, { IssuesMain } from '@teambit/issues';
8
+ import { Component } from '@teambit/component';
9
+ import { DEFAULT_DIST_DIRNAME } from '@teambit/legacy/dist/constants';
10
+ import WatcherAspect, { WatcherMain } from '@teambit/watcher';
11
+ import { EnvsAspect, EnvsMain, ExecutionContext } from '@teambit/envs';
12
+ import { ComponentID } from '@teambit/component-id';
13
+ import { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';
14
+ import { LoggerAspect, LoggerMain } from '@teambit/logger';
15
+ import { GeneratorAspect, GeneratorMain } from '@teambit/generator';
16
+ import { PubsubAspect, PubsubMain } from '@teambit/pubsub';
17
+ import UIAspect, { UiMain } from '@teambit/ui';
18
+ import { Workspace, WorkspaceAspect } from '@teambit/workspace';
19
+ import { CompilerAspect } from './compiler.aspect';
20
+ import { CompileCmd } from './compiler.cmd';
21
+ import { CompilerService } from './compiler.service';
22
+ import { CompilerTask } from './compiler.task';
23
+ import { DistArtifact } from './dist-artifact';
24
+ import { DistArtifactNotFound } from './exceptions';
25
+ import { CompilationInitiator, Compiler } from './types';
26
+ import { CompileOptions, WorkspaceCompiler } from './workspace-compiler';
27
+ import { compilerTemplate } from './templates/compiler';
28
+
29
+ export class CompilerMain {
30
+ constructor(
31
+ private pubsub: PubsubMain,
32
+ private workspaceCompiler: WorkspaceCompiler,
33
+ private envs: EnvsMain,
34
+ private builder: BuilderMain,
35
+ private workspace: Workspace,
36
+ private dependencyResolver: DependencyResolverMain,
37
+ private compilerService: CompilerService
38
+ ) {}
39
+
40
+ getCompiler(context: ExecutionContext): Compiler {
41
+ return this.compilerService.getCompiler(context);
42
+ }
43
+
44
+ /**
45
+ * Run compilation on `bit new` and when new components are imported
46
+ */
47
+ compileOnWorkspace(
48
+ componentsIds: string[] | ComponentID[] | ComponentID[] = [], // when empty, it compiles all
49
+ options: CompileOptions = { initiator: CompilationInitiator.ComponentAdded }
50
+ ) {
51
+ return this.workspaceCompiler.compileComponents(componentsIds, options);
52
+ }
53
+ /**
54
+ * API to create a new compiler task, it facilitates the usage of multiple compilers.
55
+ * with this method you can create any number of compilers and add them to the buildPipeline.
56
+ */
57
+ createTask(name: string, compiler: Compiler): CompilerTask {
58
+ return new CompilerTask(CompilerAspect.id, name, compiler, this.dependencyResolver);
59
+ }
60
+
61
+ /**
62
+ * find the compiler configured on the workspace and ask for the dist path.
63
+ */
64
+ getDistPathBySrcPath(component: Component, srcPath: string): string | null {
65
+ const environment = this.envs.getEnv(component).env;
66
+ const compilerInstance = environment.getCompiler?.();
67
+ if (!compilerInstance) return null;
68
+ return compilerInstance.getDistPathBySrcPath(srcPath);
69
+ }
70
+
71
+ /**
72
+ * find the compiler configured on the workspace and ask for the dist folder path.
73
+ */
74
+ getRelativeDistFolder(component: Component): string {
75
+ const environment = this.envs.getOrCalculateEnv(component).env;
76
+ const compilerInstance: Compiler | undefined = environment.getCompiler?.();
77
+ if (!compilerInstance || !compilerInstance.getDistDir) return DEFAULT_DIST_DIRNAME;
78
+ return compilerInstance.getDistDir();
79
+ }
80
+
81
+ /**
82
+ * Check if the dist folder (in the component package under node_modules) exist
83
+ * @param component
84
+ * @returns
85
+ */
86
+ async isDistDirExists(component: Component): Promise<boolean> {
87
+ const packageDir = await this.workspace.getComponentPackagePath(component);
88
+ const distDir = this.getRelativeDistFolder(component);
89
+ const pathToCheck = path.join(packageDir, distDir);
90
+ return fs.existsSync(pathToCheck);
91
+ }
92
+
93
+ async getDistsFiles(component: Component): Promise<DistArtifact> {
94
+ const artifacts = await this.builder.getArtifactsVinylByAspect(component, CompilerAspect.id);
95
+ if (!artifacts.length) throw new DistArtifactNotFound(component.id);
96
+
97
+ return new DistArtifact(artifacts);
98
+ }
99
+
100
+ async addMissingDistsIssue(components: Component[], issuesToIgnore: string[]): Promise<void> {
101
+ if (issuesToIgnore.includes(IssuesClasses.MissingDists.name)) return;
102
+ await Promise.all(
103
+ components.map(async (component) => {
104
+ const exist = await this.isDistDirExists(component);
105
+ if (!exist) {
106
+ component.state.issues.getOrCreate(IssuesClasses.MissingDists).data = true;
107
+ }
108
+ })
109
+ );
110
+ }
111
+
112
+ static runtime = MainRuntime;
113
+
114
+ static dependencies = [
115
+ CLIAspect,
116
+ WorkspaceAspect,
117
+ EnvsAspect,
118
+ LoggerAspect,
119
+ PubsubAspect,
120
+ AspectLoaderAspect,
121
+ BuilderAspect,
122
+ UIAspect,
123
+ GeneratorAspect,
124
+ DependencyResolverAspect,
125
+ WatcherAspect,
126
+ IssuesAspect,
127
+ ];
128
+
129
+ static async provider([
130
+ cli,
131
+ workspace,
132
+ envs,
133
+ loggerMain,
134
+ pubsub,
135
+ aspectLoader,
136
+ builder,
137
+ ui,
138
+ generator,
139
+ dependencyResolver,
140
+ watcher,
141
+ issues,
142
+ ]: [
143
+ CLIMain,
144
+ Workspace,
145
+ EnvsMain,
146
+ LoggerMain,
147
+ PubsubMain,
148
+ AspectLoaderMain,
149
+ BuilderMain,
150
+ UiMain,
151
+ GeneratorMain,
152
+ DependencyResolverMain,
153
+ WatcherMain,
154
+ IssuesMain
155
+ ]) {
156
+ const logger = loggerMain.createLogger(CompilerAspect.id);
157
+ const compilerService = new CompilerService();
158
+
159
+ const workspaceCompiler = new WorkspaceCompiler(
160
+ workspace,
161
+ envs,
162
+ pubsub,
163
+ aspectLoader,
164
+ ui,
165
+ logger,
166
+ dependencyResolver,
167
+ watcher
168
+ );
169
+ envs.registerService(compilerService);
170
+ const compilerMain = new CompilerMain(
171
+ pubsub,
172
+ workspaceCompiler,
173
+ envs,
174
+ builder,
175
+ workspace,
176
+ dependencyResolver,
177
+ compilerService
178
+ );
179
+ cli.register(new CompileCmd(workspaceCompiler, logger, pubsub));
180
+ if (issues) {
181
+ issues.registerAddComponentsIssues(compilerMain.addMissingDistsIssue.bind(compilerMain));
182
+ }
183
+ if (generator) generator.registerComponentTemplate([compilerTemplate]);
184
+
185
+ return compilerMain;
186
+ }
187
+ }
188
+
189
+ CompilerAspect.addRuntime(CompilerMain);
190
+
191
+ export default CompilerMain;
@@ -0,0 +1,104 @@
1
+ import { BuildContext, BuiltTaskResult, BuildTask, TaskResultsList } from '@teambit/builder';
2
+ import { Capsule } from '@teambit/isolator';
3
+ import { hardLinkDirectory } from '@teambit/toolbox.fs.hard-link-directory';
4
+ import { EnvContext, EnvHandler } from '@teambit/envs';
5
+ import { DependencyResolverMain } from '@teambit/dependency-resolver';
6
+ import fs from 'fs-extra';
7
+ import path from 'path';
8
+ import { Compiler } from './types';
9
+ import { CompilerAspect } from './compiler.aspect';
10
+
11
+ export type CompilerTaskOptions = {
12
+ /**
13
+ * instance of compiler to use.
14
+ */
15
+ compiler: EnvHandler<Compiler>;
16
+
17
+ /**
18
+ * name of compiler task
19
+ */
20
+ name?: string;
21
+ };
22
+
23
+ /**
24
+ * compiler build task. Allows to compile components during component build.
25
+ */
26
+ export class CompilerTask implements BuildTask {
27
+ readonly description = 'compile components';
28
+ constructor(
29
+ readonly aspectId: string,
30
+ readonly name: string,
31
+ private compilerInstance: Compiler,
32
+ private dependencyResolver: DependencyResolverMain
33
+ ) {
34
+ if (compilerInstance.artifactName) {
35
+ this.description += ` for artifact ${compilerInstance.artifactName}`;
36
+ }
37
+ }
38
+
39
+ async preBuild(context: BuildContext) {
40
+ await Promise.all(
41
+ context.capsuleNetwork.seedersCapsules.map((capsule) =>
42
+ this.copyNonSupportedFiles(capsule, this.compilerInstance)
43
+ )
44
+ );
45
+ if (!this.compilerInstance.preBuild) return;
46
+ await this.compilerInstance.preBuild(context);
47
+ }
48
+
49
+ async execute(context: BuildContext): Promise<BuiltTaskResult> {
50
+ const buildResults = await this.compilerInstance.build(context);
51
+ await this._hardLinkBuildArtifactsOnCapsules(context);
52
+ return buildResults;
53
+ }
54
+
55
+ /**
56
+ * This function hard links the compiled artifacts to the `node_modules` of other component capsules.
57
+ * For instance, if we have a `button` component that is a dependency of the `card` component,
58
+ * then the `dist` folder of the `button` component will be copied to `<card_capsule>/node_modules/button/dist`.
59
+ */
60
+ private async _hardLinkBuildArtifactsOnCapsules(context: BuildContext): Promise<void> {
61
+ await Promise.all(
62
+ context.capsuleNetwork.seedersCapsules.map(async (capsule) => {
63
+ const relCompDir = path.relative(context.capsuleNetwork.capsulesRootDir, capsule.path).replace(/\\/g, '/');
64
+ const injectedDirs = await this.dependencyResolver.getInjectedDirs(
65
+ context.capsuleNetwork.capsulesRootDir,
66
+ relCompDir,
67
+ this.dependencyResolver.getPackageName(capsule.component)
68
+ );
69
+ return hardLinkDirectory(
70
+ capsule.path,
71
+ injectedDirs.map((injectedDir) => path.join(context.capsuleNetwork.capsulesRootDir, injectedDir))
72
+ );
73
+ })
74
+ );
75
+ }
76
+
77
+ async postBuild?(context: BuildContext, tasksResults: TaskResultsList): Promise<void> {
78
+ if (!this.compilerInstance.postBuild) return;
79
+ await this.compilerInstance.postBuild(context, tasksResults);
80
+ }
81
+
82
+ async copyNonSupportedFiles(capsule: Capsule, compiler: Compiler) {
83
+ if (!compiler.shouldCopyNonSupportedFiles) {
84
+ return;
85
+ }
86
+ const component = capsule.component;
87
+ await Promise.all(
88
+ component.filesystem.files.map(async (file) => {
89
+ if (compiler.isFileSupported(file.path)) return;
90
+ const content = file.contents;
91
+ await fs.outputFile(path.join(capsule.path, compiler.distDir, file.relative), content);
92
+ })
93
+ );
94
+ }
95
+
96
+ static from(options: CompilerTaskOptions) {
97
+ return (context: EnvContext) => {
98
+ const aspectId = CompilerAspect.id;
99
+ const name = options.name || 'compiler-task';
100
+ const depResolve = context.getAspect<any>('teambit.dependencies/dependency-resolver');
101
+ return new CompilerTask(aspectId, name, options.compiler(context), depResolve);
102
+ };
103
+ }
104
+ }
@@ -3,7 +3,7 @@ import { Logger } from '@teambit/logger';
3
3
  import type { PubsubMain } from '@teambit/pubsub';
4
4
  import { Component } from '@teambit/component';
5
5
  import { CompileError, WorkspaceCompiler, CompileOptions } from './workspace-compiler';
6
- export declare type ComponentsStatus = {
6
+ export type ComponentsStatus = {
7
7
  buildResults: string[];
8
8
  component: Component;
9
9
  errors: CompileError[];
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
@@ -221,9 +221,8 @@ class CompilerMain {
221
221
  * find the compiler configured on the workspace and ask for the dist path.
222
222
  */
223
223
  getDistPathBySrcPath(component, srcPath) {
224
- var _environment$getCompi;
225
224
  const environment = this.envs.getEnv(component).env;
226
- const compilerInstance = (_environment$getCompi = environment.getCompiler) === null || _environment$getCompi === void 0 ? void 0 : _environment$getCompi.call(environment);
225
+ const compilerInstance = environment.getCompiler?.();
227
226
  if (!compilerInstance) return null;
228
227
  return compilerInstance.getDistPathBySrcPath(srcPath);
229
228
  }
@@ -232,9 +231,8 @@ class CompilerMain {
232
231
  * find the compiler configured on the workspace and ask for the dist folder path.
233
232
  */
234
233
  getRelativeDistFolder(component) {
235
- var _environment$getCompi2;
236
234
  const environment = this.envs.getOrCalculateEnv(component).env;
237
- const compilerInstance = (_environment$getCompi2 = environment.getCompiler) === null || _environment$getCompi2 === void 0 ? void 0 : _environment$getCompi2.call(environment);
235
+ const compilerInstance = environment.getCompiler?.();
238
236
  if (!compilerInstance || !compilerInstance.getDistDir) return _constants().DEFAULT_DIST_DIRNAME;
239
237
  return compilerInstance.getDistDir();
240
238
  }
@@ -1 +1 @@
1
- {"version":3,"names":["path","data","_interopRequireWildcard","require","_fsExtra","_interopRequireDefault","_aspectLoader","_builder","_cli","_componentIssues","_issues","_constants","_watcher","_envs","_dependencyResolver","_logger","_generator","_pubsub","_ui","_workspace","_compiler","_compiler2","_compiler3","_compiler4","_distArtifact","_exceptions","_types","_workspaceCompiler","_compiler5","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","CompilerMain","constructor","pubsub","workspaceCompiler","envs","builder","workspace","dependencyResolver","compilerService","getCompiler","context","compileOnWorkspace","componentsIds","options","initiator","CompilationInitiator","ComponentAdded","compileComponents","createTask","name","compiler","CompilerTask","CompilerAspect","id","getDistPathBySrcPath","component","srcPath","_environment$getCompi","environment","getEnv","env","compilerInstance","getRelativeDistFolder","_environment$getCompi2","getOrCalculateEnv","getDistDir","DEFAULT_DIST_DIRNAME","isDistDirExists","packageDir","getComponentPackagePath","distDir","pathToCheck","join","fs","existsSync","getDistsFiles","artifacts","getArtifactsVinylByAspect","length","DistArtifactNotFound","DistArtifact","addMissingDistsIssue","components","issuesToIgnore","includes","IssuesClasses","MissingDists","Promise","all","map","exist","state","issues","getOrCreate","provider","cli","loggerMain","aspectLoader","ui","generator","watcher","logger","createLogger","CompilerService","WorkspaceCompiler","registerService","compilerMain","register","CompileCmd","registerAddComponentsIssues","bind","registerComponentTemplate","compilerTemplate","exports","MainRuntime","CLIAspect","WorkspaceAspect","EnvsAspect","LoggerAspect","PubsubAspect","AspectLoaderAspect","BuilderAspect","UIAspect","GeneratorAspect","DependencyResolverAspect","WatcherAspect","IssuesAspect","addRuntime","_default"],"sources":["compiler.main.runtime.ts"],"sourcesContent":["import * as path from 'path';\nimport fs from 'fs-extra';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { Component } from '@teambit/component';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy/dist/constants';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport { EnvsAspect, EnvsMain, ExecutionContext } from '@teambit/envs';\nimport { ComponentID } from '@teambit/component-id';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { CompilerAspect } from './compiler.aspect';\nimport { CompileCmd } from './compiler.cmd';\nimport { CompilerService } from './compiler.service';\nimport { CompilerTask } from './compiler.task';\nimport { DistArtifact } from './dist-artifact';\nimport { DistArtifactNotFound } from './exceptions';\nimport { CompilationInitiator, Compiler } from './types';\nimport { CompileOptions, WorkspaceCompiler } from './workspace-compiler';\nimport { compilerTemplate } from './templates/compiler';\n\nexport class CompilerMain {\n constructor(\n private pubsub: PubsubMain,\n private workspaceCompiler: WorkspaceCompiler,\n private envs: EnvsMain,\n private builder: BuilderMain,\n private workspace: Workspace,\n private dependencyResolver: DependencyResolverMain,\n private compilerService: CompilerService\n ) {}\n\n getCompiler(context: ExecutionContext): Compiler {\n return this.compilerService.getCompiler(context);\n }\n\n /**\n * Run compilation on `bit new` and when new components are imported\n */\n compileOnWorkspace(\n componentsIds: string[] | ComponentID[] | ComponentID[] = [], // when empty, it compiles all\n options: CompileOptions = { initiator: CompilationInitiator.ComponentAdded }\n ) {\n return this.workspaceCompiler.compileComponents(componentsIds, options);\n }\n /**\n * API to create a new compiler task, it facilitates the usage of multiple compilers.\n * with this method you can create any number of compilers and add them to the buildPipeline.\n */\n createTask(name: string, compiler: Compiler): CompilerTask {\n return new CompilerTask(CompilerAspect.id, name, compiler, this.dependencyResolver);\n }\n\n /**\n * find the compiler configured on the workspace and ask for the dist path.\n */\n getDistPathBySrcPath(component: Component, srcPath: string): string | null {\n const environment = this.envs.getEnv(component).env;\n const compilerInstance = environment.getCompiler?.();\n if (!compilerInstance) return null;\n return compilerInstance.getDistPathBySrcPath(srcPath);\n }\n\n /**\n * find the compiler configured on the workspace and ask for the dist folder path.\n */\n getRelativeDistFolder(component: Component): string {\n const environment = this.envs.getOrCalculateEnv(component).env;\n const compilerInstance: Compiler | undefined = environment.getCompiler?.();\n if (!compilerInstance || !compilerInstance.getDistDir) return DEFAULT_DIST_DIRNAME;\n return compilerInstance.getDistDir();\n }\n\n /**\n * Check if the dist folder (in the component package under node_modules) exist\n * @param component\n * @returns\n */\n async isDistDirExists(component: Component): Promise<boolean> {\n const packageDir = await this.workspace.getComponentPackagePath(component);\n const distDir = this.getRelativeDistFolder(component);\n const pathToCheck = path.join(packageDir, distDir);\n return fs.existsSync(pathToCheck);\n }\n\n async getDistsFiles(component: Component): Promise<DistArtifact> {\n const artifacts = await this.builder.getArtifactsVinylByAspect(component, CompilerAspect.id);\n if (!artifacts.length) throw new DistArtifactNotFound(component.id);\n\n return new DistArtifact(artifacts);\n }\n\n async addMissingDistsIssue(components: Component[], issuesToIgnore: string[]): Promise<void> {\n if (issuesToIgnore.includes(IssuesClasses.MissingDists.name)) return;\n await Promise.all(\n components.map(async (component) => {\n const exist = await this.isDistDirExists(component);\n if (!exist) {\n component.state.issues.getOrCreate(IssuesClasses.MissingDists).data = true;\n }\n })\n );\n }\n\n static runtime = MainRuntime;\n\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n EnvsAspect,\n LoggerAspect,\n PubsubAspect,\n AspectLoaderAspect,\n BuilderAspect,\n UIAspect,\n GeneratorAspect,\n DependencyResolverAspect,\n WatcherAspect,\n IssuesAspect,\n ];\n\n static async provider([\n cli,\n workspace,\n envs,\n loggerMain,\n pubsub,\n aspectLoader,\n builder,\n ui,\n generator,\n dependencyResolver,\n watcher,\n issues,\n ]: [\n CLIMain,\n Workspace,\n EnvsMain,\n LoggerMain,\n PubsubMain,\n AspectLoaderMain,\n BuilderMain,\n UiMain,\n GeneratorMain,\n DependencyResolverMain,\n WatcherMain,\n IssuesMain\n ]) {\n const logger = loggerMain.createLogger(CompilerAspect.id);\n const compilerService = new CompilerService();\n\n const workspaceCompiler = new WorkspaceCompiler(\n workspace,\n envs,\n pubsub,\n aspectLoader,\n ui,\n logger,\n dependencyResolver,\n watcher\n );\n envs.registerService(compilerService);\n const compilerMain = new CompilerMain(\n pubsub,\n workspaceCompiler,\n envs,\n builder,\n workspace,\n dependencyResolver,\n compilerService\n );\n cli.register(new CompileCmd(workspaceCompiler, logger, pubsub));\n if (issues) {\n issues.registerAddComponentsIssues(compilerMain.addMissingDistsIssue.bind(compilerMain));\n }\n if (generator) generator.registerComponentTemplate([compilerTemplate]);\n\n return compilerMain;\n }\n}\n\nCompilerAspect.addRuntime(CompilerMain);\n\nexport default CompilerMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["path","data","_interopRequireWildcard","require","_fsExtra","_interopRequireDefault","_aspectLoader","_builder","_cli","_componentIssues","_issues","_constants","_watcher","_envs","_dependencyResolver","_logger","_generator","_pubsub","_ui","_workspace","_compiler","_compiler2","_compiler3","_compiler4","_distArtifact","_exceptions","_types","_workspaceCompiler","_compiler5","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_defineProperty","key","value","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","CompilerMain","constructor","pubsub","workspaceCompiler","envs","builder","workspace","dependencyResolver","compilerService","getCompiler","context","compileOnWorkspace","componentsIds","options","initiator","CompilationInitiator","ComponentAdded","compileComponents","createTask","name","compiler","CompilerTask","CompilerAspect","id","getDistPathBySrcPath","component","srcPath","environment","getEnv","env","compilerInstance","getRelativeDistFolder","getOrCalculateEnv","getDistDir","DEFAULT_DIST_DIRNAME","isDistDirExists","packageDir","getComponentPackagePath","distDir","pathToCheck","join","fs","existsSync","getDistsFiles","artifacts","getArtifactsVinylByAspect","length","DistArtifactNotFound","DistArtifact","addMissingDistsIssue","components","issuesToIgnore","includes","IssuesClasses","MissingDists","Promise","all","map","exist","state","issues","getOrCreate","provider","cli","loggerMain","aspectLoader","ui","generator","watcher","logger","createLogger","CompilerService","WorkspaceCompiler","registerService","compilerMain","register","CompileCmd","registerAddComponentsIssues","bind","registerComponentTemplate","compilerTemplate","exports","MainRuntime","CLIAspect","WorkspaceAspect","EnvsAspect","LoggerAspect","PubsubAspect","AspectLoaderAspect","BuilderAspect","UIAspect","GeneratorAspect","DependencyResolverAspect","WatcherAspect","IssuesAspect","addRuntime","_default"],"sources":["compiler.main.runtime.ts"],"sourcesContent":["import * as path from 'path';\nimport fs from 'fs-extra';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport IssuesAspect, { IssuesMain } from '@teambit/issues';\nimport { Component } from '@teambit/component';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy/dist/constants';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport { EnvsAspect, EnvsMain, ExecutionContext } from '@teambit/envs';\nimport { ComponentID } from '@teambit/component-id';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { PubsubAspect, PubsubMain } from '@teambit/pubsub';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { CompilerAspect } from './compiler.aspect';\nimport { CompileCmd } from './compiler.cmd';\nimport { CompilerService } from './compiler.service';\nimport { CompilerTask } from './compiler.task';\nimport { DistArtifact } from './dist-artifact';\nimport { DistArtifactNotFound } from './exceptions';\nimport { CompilationInitiator, Compiler } from './types';\nimport { CompileOptions, WorkspaceCompiler } from './workspace-compiler';\nimport { compilerTemplate } from './templates/compiler';\n\nexport class CompilerMain {\n constructor(\n private pubsub: PubsubMain,\n private workspaceCompiler: WorkspaceCompiler,\n private envs: EnvsMain,\n private builder: BuilderMain,\n private workspace: Workspace,\n private dependencyResolver: DependencyResolverMain,\n private compilerService: CompilerService\n ) {}\n\n getCompiler(context: ExecutionContext): Compiler {\n return this.compilerService.getCompiler(context);\n }\n\n /**\n * Run compilation on `bit new` and when new components are imported\n */\n compileOnWorkspace(\n componentsIds: string[] | ComponentID[] | ComponentID[] = [], // when empty, it compiles all\n options: CompileOptions = { initiator: CompilationInitiator.ComponentAdded }\n ) {\n return this.workspaceCompiler.compileComponents(componentsIds, options);\n }\n /**\n * API to create a new compiler task, it facilitates the usage of multiple compilers.\n * with this method you can create any number of compilers and add them to the buildPipeline.\n */\n createTask(name: string, compiler: Compiler): CompilerTask {\n return new CompilerTask(CompilerAspect.id, name, compiler, this.dependencyResolver);\n }\n\n /**\n * find the compiler configured on the workspace and ask for the dist path.\n */\n getDistPathBySrcPath(component: Component, srcPath: string): string | null {\n const environment = this.envs.getEnv(component).env;\n const compilerInstance = environment.getCompiler?.();\n if (!compilerInstance) return null;\n return compilerInstance.getDistPathBySrcPath(srcPath);\n }\n\n /**\n * find the compiler configured on the workspace and ask for the dist folder path.\n */\n getRelativeDistFolder(component: Component): string {\n const environment = this.envs.getOrCalculateEnv(component).env;\n const compilerInstance: Compiler | undefined = environment.getCompiler?.();\n if (!compilerInstance || !compilerInstance.getDistDir) return DEFAULT_DIST_DIRNAME;\n return compilerInstance.getDistDir();\n }\n\n /**\n * Check if the dist folder (in the component package under node_modules) exist\n * @param component\n * @returns\n */\n async isDistDirExists(component: Component): Promise<boolean> {\n const packageDir = await this.workspace.getComponentPackagePath(component);\n const distDir = this.getRelativeDistFolder(component);\n const pathToCheck = path.join(packageDir, distDir);\n return fs.existsSync(pathToCheck);\n }\n\n async getDistsFiles(component: Component): Promise<DistArtifact> {\n const artifacts = await this.builder.getArtifactsVinylByAspect(component, CompilerAspect.id);\n if (!artifacts.length) throw new DistArtifactNotFound(component.id);\n\n return new DistArtifact(artifacts);\n }\n\n async addMissingDistsIssue(components: Component[], issuesToIgnore: string[]): Promise<void> {\n if (issuesToIgnore.includes(IssuesClasses.MissingDists.name)) return;\n await Promise.all(\n components.map(async (component) => {\n const exist = await this.isDistDirExists(component);\n if (!exist) {\n component.state.issues.getOrCreate(IssuesClasses.MissingDists).data = true;\n }\n })\n );\n }\n\n static runtime = MainRuntime;\n\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n EnvsAspect,\n LoggerAspect,\n PubsubAspect,\n AspectLoaderAspect,\n BuilderAspect,\n UIAspect,\n GeneratorAspect,\n DependencyResolverAspect,\n WatcherAspect,\n IssuesAspect,\n ];\n\n static async provider([\n cli,\n workspace,\n envs,\n loggerMain,\n pubsub,\n aspectLoader,\n builder,\n ui,\n generator,\n dependencyResolver,\n watcher,\n issues,\n ]: [\n CLIMain,\n Workspace,\n EnvsMain,\n LoggerMain,\n PubsubMain,\n AspectLoaderMain,\n BuilderMain,\n UiMain,\n GeneratorMain,\n DependencyResolverMain,\n WatcherMain,\n IssuesMain\n ]) {\n const logger = loggerMain.createLogger(CompilerAspect.id);\n const compilerService = new CompilerService();\n\n const workspaceCompiler = new WorkspaceCompiler(\n workspace,\n envs,\n pubsub,\n aspectLoader,\n ui,\n logger,\n dependencyResolver,\n watcher\n );\n envs.registerService(compilerService);\n const compilerMain = new CompilerMain(\n pubsub,\n workspaceCompiler,\n envs,\n builder,\n workspace,\n dependencyResolver,\n compilerService\n );\n cli.register(new CompileCmd(workspaceCompiler, logger, pubsub));\n if (issues) {\n issues.registerAddComponentsIssues(compilerMain.addMissingDistsIssue.bind(compilerMain));\n }\n if (generator) generator.registerComponentTemplate([compilerTemplate]);\n\n return compilerMain;\n }\n}\n\nCompilerAspect.addRuntime(CompilerMain);\n\nexport default CompilerMain;\n"],"mappings":"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"}
@@ -1,18 +1,18 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { EnvService, EnvDefinition, Env, EnvContext, ServiceTransformationMap, ExecutionContext } from '@teambit/envs';
3
3
  import { Compiler } from './types';
4
- export declare type CompilerDescriptor = {
4
+ export type CompilerDescriptor = {
5
5
  id: string;
6
6
  icon?: string;
7
7
  config?: string;
8
8
  };
9
- declare type CompilerTransformationMap = ServiceTransformationMap & {
9
+ type CompilerTransformationMap = ServiceTransformationMap & {
10
10
  getCompiler: () => Compiler;
11
11
  };
12
12
  export declare class CompilerService implements EnvService<{}, CompilerDescriptor> {
13
13
  name: string;
14
14
  getCompiler(context: ExecutionContext): Compiler;
15
- render(env: EnvDefinition): React.JSX.Element;
15
+ render(env: EnvDefinition): JSX.Element;
16
16
  transform(env: Env, context: EnvContext): CompilerTransformationMap | undefined;
17
17
  getDescriptor(env: EnvDefinition): {
18
18
  id: any;
@@ -20,6 +20,6 @@ export declare class CompilerService implements EnvService<{}, CompilerDescripto
20
20
  config: any;
21
21
  version: any;
22
22
  displayName: any;
23
- } | undefined;
23
+ };
24
24
  }
25
25
  export {};
@@ -40,19 +40,19 @@ class CompilerService {
40
40
  render(env) {
41
41
  const descriptor = this.getDescriptor(env);
42
42
  return /*#__PURE__*/_react().default.createElement(_ink().Text, {
43
- key: descriptor === null || descriptor === void 0 ? void 0 : descriptor.id
43
+ key: descriptor?.id
44
44
  }, /*#__PURE__*/_react().default.createElement(_ink().Text, {
45
45
  color: "cyan"
46
- }, "configured compiler: "), /*#__PURE__*/_react().default.createElement(_ink().Text, null, descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, " (", descriptor === null || descriptor === void 0 ? void 0 : descriptor.displayName, " @ ", descriptor === null || descriptor === void 0 ? void 0 : descriptor.version, ")"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, {
46
+ }, "configured compiler: "), /*#__PURE__*/_react().default.createElement(_ink().Text, null, descriptor?.id, " (", descriptor?.displayName, " @ ", descriptor?.version, ")"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, {
47
47
  color: "cyan"
48
- }, "compiler config:"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, null, (descriptor === null || descriptor === void 0 ? void 0 : descriptor.config) && (0, _cliHighlight().default)(descriptor === null || descriptor === void 0 ? void 0 : descriptor.config, {
48
+ }, "compiler config:"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, null, descriptor?.config && (0, _cliHighlight().default)(descriptor?.config, {
49
49
  language: 'javascript',
50
50
  ignoreIllegals: true
51
51
  })), /*#__PURE__*/_react().default.createElement(_ink().Newline, null));
52
52
  }
53
53
  transform(env, context) {
54
54
  // Old env
55
- if (!(env !== null && env !== void 0 && env.compiler)) return undefined;
55
+ if (!env?.compiler) return undefined;
56
56
  return {
57
57
  getCompiler: () => env.compiler()(context)
58
58
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_ink","_cliHighlight","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","CompilerService","constructor","getCompiler","context","compiler","env","render","descriptor","getDescriptor","createElement","Text","id","color","displayName","version","Newline","config","highlight","language","ignoreIllegals","transform","undefined","icon","displayConfig","exports"],"sources":["compiler.service.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, EnvDefinition, Env, EnvContext, ServiceTransformationMap, ExecutionContext } from '@teambit/envs';\nimport highlight from 'cli-highlight';\nimport { Compiler } from './types';\n\nexport type CompilerDescriptor = {\n id: string;\n icon?: string;\n config?: string;\n};\n\ntype CompilerTransformationMap = ServiceTransformationMap & {\n getCompiler: () => Compiler;\n};\n\nexport class CompilerService implements EnvService<{}, CompilerDescriptor> {\n name = 'Compile';\n\n getCompiler(context: ExecutionContext): Compiler {\n const compiler: Compiler = context.env.getCompiler();\n return compiler;\n }\n\n render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured compiler: </Text>\n <Text>\n {descriptor?.id} ({descriptor?.displayName} @ {descriptor?.version})\n </Text>\n <Newline />\n <Text color=\"cyan\">compiler config:</Text>\n <Newline />\n <Text>\n {descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, context: EnvContext): CompilerTransformationMap | undefined {\n // Old env\n if (!env?.compiler) return undefined;\n return {\n getCompiler: () => env.compiler()(context),\n };\n }\n\n getDescriptor(env: EnvDefinition) {\n if (!env.env.getCompiler) return undefined;\n const compiler = env.env.getCompiler();\n\n return {\n id: compiler.id,\n icon: compiler.icon,\n config: compiler.displayConfig ? compiler.displayConfig() : undefined,\n version: compiler.version ? compiler.version() : '?',\n displayName: compiler.displayName ? compiler.displayName : '?',\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_ink","_cliHighlight","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","CompilerService","constructor","getCompiler","context","compiler","env","render","descriptor","getDescriptor","createElement","Text","id","color","displayName","version","Newline","config","highlight","language","ignoreIllegals","transform","undefined","icon","displayConfig","exports"],"sources":["compiler.service.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, EnvDefinition, Env, EnvContext, ServiceTransformationMap, ExecutionContext } from '@teambit/envs';\nimport highlight from 'cli-highlight';\nimport { Compiler } from './types';\n\nexport type CompilerDescriptor = {\n id: string;\n icon?: string;\n config?: string;\n};\n\ntype CompilerTransformationMap = ServiceTransformationMap & {\n getCompiler: () => Compiler;\n};\n\nexport class CompilerService implements EnvService<{}, CompilerDescriptor> {\n name = 'Compile';\n\n getCompiler(context: ExecutionContext): Compiler {\n const compiler: Compiler = context.env.getCompiler();\n return compiler;\n }\n\n render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured compiler: </Text>\n <Text>\n {descriptor?.id} ({descriptor?.displayName} @ {descriptor?.version})\n </Text>\n <Newline />\n <Text color=\"cyan\">compiler config:</Text>\n <Newline />\n <Text>\n {descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, context: EnvContext): CompilerTransformationMap | undefined {\n // Old env\n if (!env?.compiler) return undefined;\n return {\n getCompiler: () => env.compiler()(context),\n };\n }\n\n getDescriptor(env: EnvDefinition) {\n if (!env.env.getCompiler) return undefined;\n const compiler = env.env.getCompiler();\n\n return {\n id: compiler.id,\n icon: compiler.icon,\n config: compiler.displayConfig ? compiler.displayConfig() : undefined,\n version: compiler.version ? compiler.version() : '?',\n displayName: compiler.displayName ? compiler.displayName : '?',\n };\n }\n}\n"],"mappings":"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"}