@@ -9,10 +9,11 @@ import { tags } from '@angular-devkit/core'; // tslint:disable-line:no-implicit
9
9
import { createTypescriptContext , transformTypescript } from './ast_helpers' ;
10
10
import { replaceResources } from './replace_resources' ;
11
11
12
- function transform ( input : string , shouldTransform = true ) {
12
+ function transform ( input : string , shouldTransform = true , directTemplateLoading = true ) {
13
13
const { program } = createTypescriptContext ( input ) ;
14
14
const getTypeChecker = ( ) => program . getTypeChecker ( ) ;
15
- const transformer = replaceResources ( ( ) => shouldTransform , getTypeChecker ) ;
15
+ const transformer = replaceResources (
16
+ ( ) => shouldTransform , getTypeChecker , directTemplateLoading ) ;
16
17
17
18
return transformTypescript ( input , [ transformer ] ) ;
18
19
}
@@ -45,7 +46,7 @@ describe('@ngtools/webpack transformers', () => {
45
46
AppComponent = tslib_1.__decorate([
46
47
Component({
47
48
selector: 'app-root',
48
- template: require("./app.component.html"),
49
+ template: require("!raw-loader! ./app.component.html"),
49
50
styles: [require("./app.component.css"), require("./app.component.2.css")]
50
51
})
51
52
], AppComponent);
@@ -56,6 +57,75 @@ describe('@ngtools/webpack transformers', () => {
56
57
expect ( tags . oneLine `${ result } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
57
58
} ) ;
58
59
60
+ it ( 'should not replace resources when directTemplateLoading is false' , ( ) => {
61
+ const input = tags . stripIndent `
62
+ import { Component } from '@angular/core';
63
+
64
+ @Component({
65
+ selector: 'app-root',
66
+ templateUrl: './app.component.html',
67
+ styleUrls: ['./app.component.css', './app.component.2.css']
68
+ })
69
+ export class AppComponent {
70
+ title = 'app';
71
+ }
72
+ ` ;
73
+ const output = tags . stripIndent `
74
+ import * as tslib_1 from "tslib";
75
+ import { Component } from '@angular/core';
76
+ let AppComponent = class AppComponent {
77
+ constructor() {
78
+ this.title = 'app';
79
+ }
80
+ };
81
+ AppComponent = tslib_1.__decorate([
82
+ Component({
83
+ selector: 'app-root',
84
+ template: require("./app.component.html"),
85
+ styles: [require("./app.component.css"), require("./app.component.2.css")]
86
+ })
87
+ ], AppComponent);
88
+ export { AppComponent };
89
+ ` ;
90
+
91
+ const result = transform ( input , true , false ) ;
92
+ expect ( tags . oneLine `${ result } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
93
+ } ) ;
94
+
95
+
96
+ it ( 'should should support svg as templates' , ( ) => {
97
+ const input = tags . stripIndent `
98
+ import { Component } from '@angular/core';
99
+
100
+ @Component({
101
+ selector: 'app-root',
102
+ templateUrl: './app.component.svg'
103
+ })
104
+ export class AppComponent {
105
+ title = 'app';
106
+ }
107
+ ` ;
108
+ const output = tags . stripIndent `
109
+ import * as tslib_1 from "tslib";
110
+ import { Component } from '@angular/core';
111
+ let AppComponent = class AppComponent {
112
+ constructor() {
113
+ this.title = 'app';
114
+ }
115
+ };
116
+ AppComponent = tslib_1.__decorate([
117
+ Component({
118
+ selector: 'app-root',
119
+ template: require("!raw-loader!./app.component.svg")
120
+ })
121
+ ], AppComponent);
122
+ export { AppComponent };
123
+ ` ;
124
+
125
+ const result = transform ( input ) ;
126
+ expect ( tags . oneLine `${ result } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
127
+ } ) ;
128
+
59
129
it ( 'should merge styleUrls with styles' , ( ) => {
60
130
const input = tags . stripIndent `
61
131
import { Component } from '@angular/core';
@@ -81,7 +151,7 @@ describe('@ngtools/webpack transformers', () => {
81
151
AppComponent = tslib_1.__decorate([
82
152
Component({
83
153
selector: 'app-root',
84
- template: require("./app.component.html"),
154
+ template: require("!raw-loader! ./app.component.html"),
85
155
styles: ["a { color: red }", require("./app.component.css")]
86
156
})
87
157
], AppComponent);
@@ -116,7 +186,7 @@ describe('@ngtools/webpack transformers', () => {
116
186
AppComponent = tslib_1.__decorate([
117
187
Component({
118
188
selector: 'app-root',
119
- template: require("./app.component.html"),
189
+ template: require("!raw-loader! ./app.component.html"),
120
190
styles: [require("./app.component.css"), require("./app.component.2.css")]
121
191
})
122
192
], AppComponent);
@@ -151,7 +221,7 @@ describe('@ngtools/webpack transformers', () => {
151
221
AppComponent = tslib_1.__decorate([
152
222
NgComponent({
153
223
selector: 'app-root',
154
- template: require("./app.component.html"),
224
+ template: require("!raw-loader! ./app.component.html"),
155
225
styles: [require("./app.component.css"), require("./app.component.2.css")]
156
226
})
157
227
], AppComponent);
@@ -160,7 +230,7 @@ describe('@ngtools/webpack transformers', () => {
160
230
161
231
const { program } = createTypescriptContext ( input ) ;
162
232
const getTypeChecker = ( ) => program . getTypeChecker ( ) ;
163
- const transformer = replaceResources ( ( ) => true , getTypeChecker ) ;
233
+ const transformer = replaceResources ( ( ) => true , getTypeChecker , true ) ;
164
234
const result = transformTypescript ( input , [ transformer ] ) ;
165
235
166
236
expect ( tags . oneLine `${ result } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
@@ -190,7 +260,7 @@ describe('@ngtools/webpack transformers', () => {
190
260
AppComponent = tslib_1.__decorate([
191
261
ng.Component({
192
262
selector: 'app-root',
193
- template: require("./app.component.html"),
263
+ template: require("!raw-loader! ./app.component.html"),
194
264
styles: [require("./app.component.css"), require("./app.component.2.css")]
195
265
})
196
266
], AppComponent);
@@ -238,7 +308,7 @@ describe('@ngtools/webpack transformers', () => {
238
308
AppComponent = tslib_1.__decorate([
239
309
Component({
240
310
selector: 'app-root',
241
- template: require("./app.component.html"),
311
+ template: require("!raw-loader! ./app.component.html"),
242
312
styles: [require("./app.component.css")]
243
313
})
244
314
], AppComponent);
0 commit comments