@@ -5,20 +5,66 @@ const path = require('path');
55// Import the require hook. Enables us to require TS files natively.
66require ( 'ts-node/register' ) ;
77
8-
98const Angular2App = require ( 'angular-cli/lib/broccoli/angular2-app' ) ;
109const Funnel = require ( 'broccoli-funnel' ) ;
1110const MergeTree = require ( 'broccoli-merge-trees' ) ;
1211const autoPrefixerTree = require ( 'broccoli-autoprefixer' ) ;
1312
1413
1514module . exports = function ( defaults ) {
16- var angularAppTree = new Angular2App ( defaults , {
17- sourceDir : 'src/' ,
15+ const appTree = buildAppTree ( defaults ) ;
16+ const cssAutoprefixed = autoPrefixerTree ( new Funnel ( appTree , {
17+ include : [ '**/*.css' ]
18+ } ) ) ;
19+
20+ return new MergeTree ( [
21+ new Funnel ( 'src/demo-app' , { include : [ '**/*.scss' ] } ) ,
22+ appTree ,
23+ cssAutoprefixed
24+ ] , { overwrite : true } ) ;
25+ } ;
26+
27+
28+ function buildAppTree ( defaults ) {
29+ let inputNode = new MergeTree ( [
30+ new Funnel ( 'typings' , {
31+ destDir : 'typings'
32+ } ) ,
33+ new Funnel ( 'src' , {
34+ include : [ 'components/**/*' , 'core/**/*' ] ,
35+ destDir : 'src'
36+ } ) ,
37+ new Funnel ( 'src/demo-app' , {
38+ destDir : 'src/demo-app'
39+ } )
40+ ] ) ;
41+
42+ const getCoreAndComponentPath = function ( name ) {
43+ if ( name . startsWith ( 'src/core' ) ) {
44+ return name . replace ( / ^ s r c \/ c o r e / , 'src/demo-app/core' ) ;
45+ } else if ( name . startsWith ( 'src/components' ) ) {
46+ return name . replace ( / ^ s r c \/ c o m p o n e n t s / , 'src/demo-app/components' ) ;
47+ }
48+ return name ;
49+ } ;
50+
51+ return new Angular2App ( defaults , inputNode , {
52+ assets : {
53+ getDestinationPath : getCoreAndComponentPath
54+ } ,
55+ sourceDir : 'src/demo-app' ,
56+ tsCompiler : {
57+ additionalFiles : [
58+ 'src/core/**/*.ts' ,
59+ 'src/components/**/*.ts'
60+ ] ,
61+ getDestinationPath : getCoreAndComponentPath
62+ } ,
1863 sassCompiler : {
1964 includePaths : [
2065 'src/core/style'
21- ]
66+ ] ,
67+ getDestinationPath : getCoreAndComponentPath
2268 } ,
2369 vendorNpmFiles : [
2470 'systemjs/dist/system-polyfills.js' ,
@@ -30,14 +76,4 @@ module.exports = function(defaults) {
3076 '@angular/**/*.js' ,
3177 ]
3278 } ) ;
33-
34- const cssAutoprefixed = autoPrefixerTree ( new Funnel ( angularAppTree , {
35- include : [ '**/*.css' ]
36- } ) ) ;
37-
38- return new MergeTree ( [
39- new Funnel ( 'src' , { include : [ '**/*.scss' ] } ) ,
40- angularAppTree ,
41- cssAutoprefixed ,
42- ] , { overwrite : true } ) ;
43- } ;
79+ }
0 commit comments