fix(ivy): properly rewrite imports in generated factory shims (#27998)

Generated factory shims can import from @angular/core. However, we have
special logic in place to rewrite self-imports when generating code for
@angular/core.

This commit leverages the new standalone ImportRewriter interface to
properly rewrite imports in generated factory shims. Before this fix,
a generated factory file for core would look like:

```typescript
import * as i0 from './r3_symbols';

export var ApplicationModuleNgFactory = new ɵNgModuleFactory(...);
```

This is invalid, as ɵNgModuleFactory is just NgModuleFactory when imported
via r3_symbols.

FW-881 #resolve

PR Close #27998
This commit is contained in:
Alex Rickabaugh
2019-01-08 13:02:11 -08:00
committed by Andrew Kushnir
parent 3cf1b62722
commit 6003145422
4 changed files with 80 additions and 14 deletions

View File

@ -239,7 +239,7 @@ export class NgtscProgram implements api.Program {
if (this.factoryToSourceInfo !== null) {
beforeTransforms.push(
generatedFactoryTransform(this.factoryToSourceInfo, this.coreImportsFrom));
generatedFactoryTransform(this.factoryToSourceInfo, this.importRewriter));
}
if (this.isCore) {
beforeTransforms.push(ivySwitchTransform);