refactor(ivy): make `ReflectionHost` a parameter of `Renderer` (#25406)
PR Close #25406
This commit is contained in:
parent
ea68ba048a
commit
29705dd8f2
|
@ -7,13 +7,10 @@
|
||||||
*/
|
*/
|
||||||
import * as ts from 'typescript';
|
import * as ts from 'typescript';
|
||||||
import MagicString from 'magic-string';
|
import MagicString from 'magic-string';
|
||||||
import {NgccReflectionHost} from '../host/ngcc_host';
|
|
||||||
import {AnalyzedClass} from '../analyzer';
|
import {AnalyzedClass} from '../analyzer';
|
||||||
import {Renderer} from './renderer';
|
import {Renderer} from './renderer';
|
||||||
|
|
||||||
export class Esm2015Renderer extends Renderer {
|
export class Esm2015Renderer extends Renderer {
|
||||||
constructor(protected host: NgccReflectionHost) { super(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the imports at the top of the file
|
* Add the imports at the top of the file
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -5,12 +5,6 @@
|
||||||
* Use of this source code is governed by an MIT-style license that can be
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
import * as ts from 'typescript';
|
|
||||||
import MagicString from 'magic-string';
|
|
||||||
import {NgccReflectionHost} from '../host/ngcc_host';
|
|
||||||
import {AnalyzedClass, AnalyzedFile} from '../analyzer';
|
|
||||||
import {Esm2015Renderer} from './esm2015_renderer';
|
import {Esm2015Renderer} from './esm2015_renderer';
|
||||||
|
|
||||||
export class Esm5Renderer extends Esm2015Renderer {
|
export class Esm5Renderer extends Esm2015Renderer {}
|
||||||
constructor(host: NgccReflectionHost) { super(host); }
|
|
||||||
}
|
|
||||||
|
|
|
@ -5,16 +5,17 @@
|
||||||
* Use of this source code is governed by an MIT-style license that can be
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
import {ConstantPool, Expression, Statement, WrappedNodeExpr, WritePropExpr} from '@angular/compiler';
|
||||||
|
import {SourceMapConverter, commentRegex, fromJSON, fromMapFileSource, fromObject, fromSource, generateMapFileComment, mapFileCommentRegex, removeComments, removeMapFileComments} from 'convert-source-map';
|
||||||
|
import MagicString from 'magic-string';
|
||||||
import {dirname} from 'path';
|
import {dirname} from 'path';
|
||||||
|
import {SourceMapConsumer, SourceMapGenerator, RawSourceMap} from 'source-map';
|
||||||
import * as ts from 'typescript';
|
import * as ts from 'typescript';
|
||||||
|
|
||||||
import MagicString from 'magic-string';
|
|
||||||
import {commentRegex, mapFileCommentRegex, fromJSON, fromSource, fromMapFileSource, fromObject, generateMapFileComment, removeComments, removeMapFileComments, SourceMapConverter} from 'convert-source-map';
|
|
||||||
import {SourceMapConsumer, SourceMapGenerator, RawSourceMap} from 'source-map';
|
|
||||||
import {ConstantPool, Expression, Statement, WrappedNodeExpr, WritePropExpr} from '@angular/compiler';
|
|
||||||
import {AnalyzedClass, AnalyzedFile} from '../analyzer';
|
|
||||||
import {Decorator} from '../../../ngtsc/host';
|
import {Decorator} from '../../../ngtsc/host';
|
||||||
import {ImportManager, translateStatement} from '../../../ngtsc/transform';
|
import {ImportManager, translateStatement} from '../../../ngtsc/transform';
|
||||||
|
import {AnalyzedClass, AnalyzedFile} from '../analyzer';
|
||||||
|
import {NgccReflectionHost} from '../host/ngcc_host';
|
||||||
|
|
||||||
interface SourceMapInfo {
|
interface SourceMapInfo {
|
||||||
source: string;
|
source: string;
|
||||||
|
@ -55,12 +56,14 @@ export interface FileInfo {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A base-class for rendering an `AnalyzedClass`.
|
* A base-class for rendering an `AnalyzedFile`.
|
||||||
* Package formats have output files that must be rendered differently,
|
*
|
||||||
* Concrete sub-classes must implement the `addImports`, `addDefinitions` and
|
* Package formats have output files that must be rendered differently. Concrete sub-classes must
|
||||||
* `removeDecorators` abstract methods.
|
* implement the `addImports`, `addDefinitions` and `removeDecorators` abstract methods.
|
||||||
*/
|
*/
|
||||||
export abstract class Renderer {
|
export abstract class Renderer {
|
||||||
|
constructor(protected host: NgccReflectionHost) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render the source code and source-map for an Analyzed file.
|
* Render the source code and source-map for an Analyzed file.
|
||||||
* @param file The analyzed file to render.
|
* @param file The analyzed file to render.
|
||||||
|
|
|
@ -32,7 +32,7 @@ class TestRenderer extends Renderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createTestRenderer() {
|
function createTestRenderer() {
|
||||||
const renderer = new TestRenderer();
|
const renderer = new TestRenderer({} as Esm2015ReflectionHost);
|
||||||
spyOn(renderer, 'addImports').and.callThrough();
|
spyOn(renderer, 'addImports').and.callThrough();
|
||||||
spyOn(renderer, 'addDefinitions').and.callThrough();
|
spyOn(renderer, 'addDefinitions').and.callThrough();
|
||||||
spyOn(renderer, 'removeDecorators').and.callThrough();
|
spyOn(renderer, 'removeDecorators').and.callThrough();
|
||||||
|
@ -183,4 +183,4 @@ describe('Renderer', () => {
|
||||||
expect(result.map !.contents).toEqual(MERGED_OUTPUT_PROGRAM_MAP.toJSON());
|
expect(result.map !.contents).toEqual(MERGED_OUTPUT_PROGRAM_MAP.toJSON());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue