feat(bazel): allow passing a custom bazel compiler host to ngc compile (#31341)
Enable users to pass a custom Bazel CompilerHost to use for an Angular compilation. This supports users who must override the TypeScript compiler host. PR Close #31341
This commit is contained in:
parent
0de5d79bf6
commit
a29dc961a2
|
@ -145,13 +145,15 @@ export function relativeToRootDirs(filePath: string, rootDirs: string[]): string
|
||||||
}
|
}
|
||||||
|
|
||||||
export function compile({allDepsCompiledWithBazel = true, compilerOpts, tsHost, bazelOpts, files,
|
export function compile({allDepsCompiledWithBazel = true, compilerOpts, tsHost, bazelOpts, files,
|
||||||
inputs, expectedOuts, gatherDiagnostics}: {
|
inputs, expectedOuts, gatherDiagnostics, bazelHost}: {
|
||||||
allDepsCompiledWithBazel?: boolean,
|
allDepsCompiledWithBazel?: boolean,
|
||||||
compilerOpts: ng.CompilerOptions,
|
compilerOpts: ng.CompilerOptions,
|
||||||
tsHost: ts.CompilerHost, inputs?: {[path: string]: string},
|
tsHost: ts.CompilerHost, inputs?: {[path: string]: string},
|
||||||
bazelOpts: BazelOptions,
|
bazelOpts: BazelOptions,
|
||||||
files: string[],
|
files: string[],
|
||||||
expectedOuts: string[], gatherDiagnostics?: (program: ng.Program) => ng.Diagnostics
|
expectedOuts: string[],
|
||||||
|
gatherDiagnostics?: (program: ng.Program) => ng.Diagnostics,
|
||||||
|
bazelHost?: CompilerHost,
|
||||||
}): {diagnostics: ng.Diagnostics, program: ng.Program} {
|
}): {diagnostics: ng.Diagnostics, program: ng.Program} {
|
||||||
let fileLoader: FileLoader;
|
let fileLoader: FileLoader;
|
||||||
|
|
||||||
|
@ -244,8 +246,10 @@ export function compile({allDepsCompiledWithBazel = true, compilerOpts, tsHost,
|
||||||
moduleName, containingFile, compilerOptions, generatedFileModuleResolverHost);
|
moduleName, containingFile, compilerOptions, generatedFileModuleResolverHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bazelHost = new CompilerHost(
|
if (!bazelHost) {
|
||||||
|
bazelHost = new CompilerHost(
|
||||||
files, compilerOpts, bazelOpts, tsHost, fileLoader, generatedFileModuleResolver);
|
files, compilerOpts, bazelOpts, tsHost, fileLoader, generatedFileModuleResolver);
|
||||||
|
}
|
||||||
|
|
||||||
// Also need to disable decorator downleveling in the BazelHost in Ivy mode.
|
// Also need to disable decorator downleveling in the BazelHost in Ivy mode.
|
||||||
if (isInIvyMode) {
|
if (isInIvyMode) {
|
||||||
|
|
Loading…
Reference in New Issue