mirror of
https://github.com/angular/angular-cli.git
synced 2025-05-17 11:03:53 +08:00
fix(@angular-devkit/architect): temporary workaround for TS bug with UMDs
The TS bug is https://github.com/microsoft/TypeScript/issues/36780. The workaround is needed because `ts_library` emits UMDs currently. This will change with https://github.com/bazelbuild/rules_typescript/pull/492 and https://github.com/bazelbuild/rules_nodejs/pull/1687.
This commit is contained in:
parent
18ade225ba
commit
aaf2d802a8
@ -143,7 +143,11 @@ export class WorkspaceNodeModulesArchitectHost implements ArchitectHost<NodeModu
|
|||||||
}
|
}
|
||||||
|
|
||||||
async loadBuilder(info: NodeModulesBuilderInfo): Promise<Builder> {
|
async loadBuilder(info: NodeModulesBuilderInfo): Promise<Builder> {
|
||||||
const builder = (await import(info.import)).default;
|
// f1 const is a temporary workaround for a TS bug with UMDs.
|
||||||
|
// See microsoft/TypeScript#36780. Should be removed when
|
||||||
|
// https://github.com/bazelbuild/rules_typescript/pull/492 goes in.
|
||||||
|
const f1 = info.import;
|
||||||
|
const builder = (await import(f1)).default;
|
||||||
if (builder[BuilderSymbol]) {
|
if (builder[BuilderSymbol]) {
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,11 @@ export class TestingArchitectHost implements ArchitectHost {
|
|||||||
this._builderMap.set(builderName, { builderName, description, optionSchema });
|
this._builderMap.set(builderName, { builderName, description, optionSchema });
|
||||||
}
|
}
|
||||||
async addBuilderFromPackage(packageName: string) {
|
async addBuilderFromPackage(packageName: string) {
|
||||||
const packageJson = await import(packageName + '/package.json');
|
// f1 const is a temporary workaround for a TS bug with UMDs.
|
||||||
|
// See microsoft/TypeScript#36780. Should be removed when
|
||||||
|
// https://github.com/bazelbuild/rules_typescript/pull/492 goes in.
|
||||||
|
const f1 = packageName + '/package.json';
|
||||||
|
const packageJson = await import(f1);
|
||||||
if (!('builders' in packageJson)) {
|
if (!('builders' in packageJson)) {
|
||||||
throw new Error('Invalid package.json, builders key not found.');
|
throw new Error('Invalid package.json, builders key not found.');
|
||||||
}
|
}
|
||||||
@ -56,8 +60,13 @@ export class TestingArchitectHost implements ArchitectHost {
|
|||||||
const b = builders[builderName];
|
const b = builders[builderName];
|
||||||
// TODO: remove this check as v1 is not supported anymore.
|
// TODO: remove this check as v1 is not supported anymore.
|
||||||
if (!b.implementation) { continue; }
|
if (!b.implementation) { continue; }
|
||||||
const handler = (await import(builderJsonPath + '/../' + b.implementation)).default;
|
// f2 and f3 consts are a temporary workaround for a TS bug with UMDs.
|
||||||
const optionsSchema = await import(builderJsonPath + '/../' + b.schema);
|
// See microsoft/TypeScript#36780. Should be removed when
|
||||||
|
// https://github.com/bazelbuild/rules_typescript/pull/492 goes in.
|
||||||
|
const f2 = builderJsonPath + '/../' + b.implementation;
|
||||||
|
const handler = (await import(f2)).default;
|
||||||
|
const f3 = builderJsonPath + '/../' + b.schema;
|
||||||
|
const optionsSchema = await import(f3);
|
||||||
this.addBuilder(`${packageJson.name}:${builderName}`, handler, b.description, optionsSchema);
|
this.addBuilder(`${packageJson.name}:${builderName}`, handler, b.description, optionsSchema);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user