@teambit/compiler 1.0.107 → 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.
- package/compiler-env-type.ts +9 -0
- package/compiler.aspect.ts +5 -0
- package/compiler.cmd.ts +121 -0
- package/compiler.main.runtime.ts +191 -0
- package/compiler.task.ts +104 -0
- package/dist/compiler.cmd.d.ts +1 -1
- package/dist/compiler.composition.d.ts +2 -2
- package/dist/compiler.main.runtime.js +2 -4
- package/dist/compiler.main.runtime.js.map +1 -1
- package/dist/compiler.service.d.ts +5 -5
- package/dist/compiler.service.js +4 -4
- package/dist/compiler.service.js.map +1 -1
- package/dist/compiler.task.d.ts +1 -1
- package/dist/dist-artifact.d.ts +1 -1
- package/dist/output-formatter.js +1 -2
- package/dist/output-formatter.js.map +1 -1
- package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
- package/dist/types.d.ts +4 -4
- package/dist/workspace-compiler.d.ts +5 -5
- package/dist/workspace-compiler.js +8 -13
- package/dist/workspace-compiler.js.map +1 -1
- package/dist-artifact.ts +12 -0
- package/index.ts +15 -0
- package/output-formatter.ts +20 -0
- package/package.json +29 -36
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
- package/types.ts +154 -0
- package/workspace-compiler.ts +398 -0
package/compiler.cmd.ts
ADDED
|
@@ -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;
|
package/compiler.task.ts
ADDED
|
@@ -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
|
+
}
|
package/dist/compiler.cmd.d.ts
CHANGED
|
@@ -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
|
|
6
|
+
export type ComponentsStatus = {
|
|
7
7
|
buildResults: string[];
|
|
8
8
|
component: Component;
|
|
9
9
|
errors: CompileError[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const Logo: () =>
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { EnvService, EnvDefinition, Env, EnvContext, ServiceTransformationMap, ExecutionContext } from '@teambit/envs';
|
|
3
3
|
import { Compiler } from './types';
|
|
4
|
-
export
|
|
4
|
+
export type CompilerDescriptor = {
|
|
5
5
|
id: string;
|
|
6
6
|
icon?: string;
|
|
7
7
|
config?: string;
|
|
8
8
|
};
|
|
9
|
-
|
|
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):
|
|
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
|
-
}
|
|
23
|
+
};
|
|
24
24
|
}
|
|
25
25
|
export {};
|
package/dist/compiler.service.js
CHANGED
|
@@ -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
|
|
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
|
|
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,
|
|
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 (!
|
|
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":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,KAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,cAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,aAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAa/B,MAAMW,eAAe,CAA+C;EAAAC,YAAA;IAAArB,eAAA,eAClE,SAAS;EAAA;EAEhBsB,WAAWA,CAACC,OAAyB,EAAY;IAC/C,MAAMC,QAAkB,GAAGD,OAAO,CAACE,GAAG,CAACH,WAAW,CAAC,CAAC;IACpD,OAAOE,QAAQ;EACjB;EAEAE,MAAMA,CAACD,GAAkB,EAAE;IACzB,MAAME,UAAU,GAAG,IAAI,CAACC,aAAa,CAACH,GAAG,CAAC;IAE1C,oBACElC,MAAA,GAAAQ,OAAA,CAAA8B,aAAA,CAAClC,IAAA,GAAAmC,IAAI;MAAC7B,GAAG,EAAE0B,UAAU,
|
|
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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"}
|