| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -e -o pipefail | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd `dirname $0` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-19 15:28:25 -07:00
										 |  |  | export NODE_PATH=${NODE_PATH}:$(pwd)/dist/all:$(pwd)/dist/tools | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | rm -rf ./dist/all/ | 
					
						
							| 
									
										
										
										
											2016-05-11 10:11:59 -07:00
										 |  |  | mkdir -p ./dist/all/ | 
					
						
							| 
									
										
										
										
											2016-05-01 22:54:19 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-19 15:28:25 -07:00
										 |  |  | TSCONFIG=./tools/tsconfig.json | 
					
						
							|  |  |  | echo "====== (all)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} =====" | 
					
						
							|  |  |  | $(npm bin)/tsc -p ${TSCONFIG} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "====== Copying files needed for e2e tests =====" | 
					
						
							| 
									
										
										
										
											2016-05-01 22:54:19 -07:00
										 |  |  | cp -r ./modules/playground ./dist/all/ | 
					
						
							|  |  |  | cp -r ./modules/playground/favicon.ico ./dist/ | 
					
						
							|  |  |  | #rsync -aP ./modules/playground/* ./dist/all/playground/ | 
					
						
							|  |  |  | mkdir ./dist/all/playground/vendor | 
					
						
							|  |  |  | cd ./dist/all/playground/vendor | 
					
						
							|  |  |  | ln -s ../../../../node_modules/es6-shim/es6-shim.js . | 
					
						
							|  |  |  | ln -s ../../../../node_modules/zone.js/dist/zone.js . | 
					
						
							|  |  |  | ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js . | 
					
						
							|  |  |  | ln -s ../../../../node_modules/systemjs/dist/system.src.js . | 
					
						
							|  |  |  | ln -s ../../../../node_modules/base64-js/lib/b64.js . | 
					
						
							|  |  |  | ln -s ../../../../node_modules/reflect-metadata/Reflect.js . | 
					
						
							| 
									
										
										
										
											2016-05-13 13:22:29 -07:00
										 |  |  | ln -s ../../../../node_modules/rxjs . | 
					
						
							| 
									
										
										
										
											2016-05-01 22:54:19 -07:00
										 |  |  | ln -s ../../../../node_modules/angular/angular.js . | 
					
						
							|  |  |  | cd - | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-19 15:28:25 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | TSCONFIG=./modules/tsconfig.json | 
					
						
							|  |  |  | echo "====== (all)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} =====" | 
					
						
							| 
									
										
										
										
											2016-05-01 22:54:19 -07:00
										 |  |  | # compile ts code | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  | # TODO: Right now we have a cycle in that the compiler_cli depends on Angular | 
					
						
							|  |  |  | # but we need it to compile Angular. | 
					
						
							|  |  |  | # The solution right now is to do 2 compilation runs. | 
					
						
							|  |  |  | # Fix this by separating the metadata extraction into a separate binary that does | 
					
						
							|  |  |  | # not depend on Angular. | 
					
						
							|  |  |  | $(npm bin)/tsc -p ${TSCONFIG} | 
					
						
							|  |  |  | NG_TC="node dist/all/@angular/compiler_cli/src/main" | 
					
						
							|  |  |  | $NG_TC -p modules/tsconfig.json | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | rm -rf ./dist/packages-dist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for PACKAGE in \
 | 
					
						
							|  |  |  |   core \
 | 
					
						
							|  |  |  |   compiler \
 | 
					
						
							|  |  |  |   common \
 | 
					
						
							|  |  |  |   platform-browser \
 | 
					
						
							|  |  |  |   platform-server \
 | 
					
						
							|  |  |  |   http \
 | 
					
						
							|  |  |  |   router \
 | 
					
						
							| 
									
										
										
										
											2016-05-02 10:36:58 -07:00
										 |  |  |   router-deprecated \
 | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  |   upgrade \
 | 
					
						
							|  |  |  |   compiler_cli | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | do | 
					
						
							|  |  |  |   SRCDIR=./modules/@angular/${PACKAGE} | 
					
						
							|  |  |  |   DESTDIR=./dist/packages-dist/${PACKAGE} | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |   UMD_ES6_PATH=${DESTDIR}/esm/${PACKAGE}.umd.js | 
					
						
							|  |  |  |   UMD_ES5_PATH=${DESTDIR}/bundles/${PACKAGE}.umd.js | 
					
						
							|  |  |  |   UMD_ES5_MIN_PATH=${DESTDIR}/bundles/${PACKAGE}.umd.min.js | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:43:35 -06:00
										 |  |  |   if [[ ${PACKAGE} == "router-deprecated" ]]; then | 
					
						
							|  |  |  |     echo "======      COMPILING: \$(npm bin)/tsc -p ${SRCDIR}/tsconfig-es5.json        =====" | 
					
						
							|  |  |  |     $(npm bin)/tsc -p ${SRCDIR}/tsconfig-es5.json | 
					
						
							|  |  |  |   else | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  |     echo "======      COMPILING: ${NG_TC} -p ${SRCDIR}/tsconfig-es5.json        =====" | 
					
						
							|  |  |  |     $NG_TC -p ${SRCDIR}/tsconfig-es5.json | 
					
						
							| 
									
										
										
										
											2016-05-03 14:43:35 -06:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |   cp ${SRCDIR}/package.json ${DESTDIR}/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   echo "======      TSC 1.8 d.ts compat for ${DESTDIR}   =====" | 
					
						
							|  |  |  |   # safely strips 'readonly' specifier from d.ts files to make them compatible with tsc 1.8 | 
					
						
							|  |  |  |   if [[ ${TRAVIS} ]]; then | 
					
						
							|  |  |  |     find ${DESTDIR} -type f -name '*.d.ts' -print0 | xargs -0 sed -i    -e 's/\(^ *(static |private )*\)*readonly  */\1/g' | 
					
						
							| 
									
										
										
										
											2016-05-02 10:36:58 -07:00
										 |  |  |     find ${DESTDIR} -type f -name '*.d.ts' -print0 | xargs -0 sed -i    -E 's/^( +)abstract ([[:alnum:]]+\:)/\1\2/g' | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |   else | 
					
						
							|  |  |  |     find ${DESTDIR} -type f -name '*.d.ts' -print0 | xargs -0 sed -i '' -e 's/\(^ *(static |private )*\)*readonly  */\1/g' | 
					
						
							| 
									
										
										
										
											2016-05-02 10:36:58 -07:00
										 |  |  |     find ${DESTDIR} -type f -name '*.d.ts' -print0 | xargs -0 sed -i '' -E 's/^( +)abstract ([[:alnum:]]+\:)/\1\2/g' | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  |   if [[ ${PACKAGE} != compiler_cli ]]; then | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if [[ ${PACKAGE} == "router-deprecated" ]]; then | 
					
						
							|  |  |  |       echo "====== (esm)COMPILING: \$(npm bin)/tsc -p ${SRCDIR}/tsconfig-es2015.json =====" | 
					
						
							|  |  |  |       $(npm bin)/tsc -p ${SRCDIR}/tsconfig-es2015.json | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       echo "====== (esm)COMPILING: $NG_TC -p ${SRCDIR}/tsconfig-es2015.json =====" | 
					
						
							|  |  |  |       $NG_TC -p ${SRCDIR}/tsconfig-es2015.json | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     echo "======      BUNDLING: ${SRCDIR} =====" | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |     mkdir ${DESTDIR}/bundles | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  |     ( | 
					
						
							|  |  |  |       cd  ${SRCDIR} | 
					
						
							|  |  |  |       echo "..."  # here just to have grep match something and not exit with 1 | 
					
						
							|  |  |  |       ../../../node_modules/.bin/rollup -c rollup.config.js | 
					
						
							|  |  |  |     ) 2>&1 | grep -v "as external dependency" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $(npm bin)/tsc  \
 | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |         --out ${UMD_ES5_PATH} \
 | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  |         --target es5 \
 | 
					
						
							|  |  |  |         --allowJs \
 | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |         ${UMD_ES6_PATH} \
 | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  |         modules/\@angular/manual_typings/globals.d.ts \
 | 
					
						
							|  |  |  |         modules/\@angular/typings/es6-collections/es6-collections.d.ts \
 | 
					
						
							|  |  |  |         modules/\@angular/typings/es6-promise/es6-promise.d.ts | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |     rm ${UMD_ES6_PATH} | 
					
						
							| 
									
										
										
										
											2016-05-03 09:24:09 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |     cat ./modules/@angular/license-banner.txt > ${UMD_ES5_PATH}.tmp | 
					
						
							|  |  |  |     cat ${UMD_ES5_PATH} >> ${UMD_ES5_PATH}.tmp | 
					
						
							|  |  |  |     mv ${UMD_ES5_PATH}.tmp ${UMD_ES5_PATH} | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 09:08:39 -07:00
										 |  |  |     $(npm bin)/uglifyjs -c --screw-ie8 -o ${UMD_ES5_MIN_PATH} ${UMD_ES5_PATH} | 
					
						
							| 
									
										
										
										
											2016-05-03 14:43:35 -06:00
										 |  |  |   fi | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | done |