| 
									
										
										
										
											2015-04-25 14:45:08 -07:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-14 08:10:31 -08:00
										 |  |  | // THIS CHECK SHOULD BE THE FIRST THING IN THIS FILE
 | 
					
						
							|  |  |  | // This is to ensure that we catch env issues before we error while requiring other dependencies.
 | 
					
						
							|  |  |  | require('./tools/check-environment')( | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  |     {requiredNpmVersion: '>=3.5.3 <4.0.0', requiredNodeVersion: '>=5.4.1 <6.0.0'}); | 
					
						
							| 
									
										
										
										
											2015-11-14 08:10:31 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  | const gulp = require('gulp'); | 
					
						
							|  |  |  | const path = require('path'); | 
					
						
							| 
									
										
										
										
											2015-11-26 23:45:40 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  | const srcsToFmt = ['tools/**/*.ts', 'modules/@angular/**/*.ts']; | 
					
						
							| 
									
										
										
										
											2015-11-26 23:45:40 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-26 13:33:53 -07:00
										 |  |  | gulp.task('format:enforce', () => { | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  |   const format = require('gulp-clang-format'); | 
					
						
							|  |  |  |   const clangFormat = require('clang-format'); | 
					
						
							|  |  |  |   return gulp.src(srcsToFmt).pipe( | 
					
						
							| 
									
										
										
										
											2016-05-26 13:33:53 -07:00
										 |  |  |     format.checkFormat('file', clangFormat, {verbose: true, fail: true})); | 
					
						
							| 
									
										
										
										
											2015-06-10 16:52:19 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  | gulp.task('format', () => { | 
					
						
							|  |  |  |   const format = require('gulp-clang-format'); | 
					
						
							|  |  |  |   const clangFormat = require('clang-format'); | 
					
						
							|  |  |  |   return gulp.src(srcsToFmt, { base: '.' }).pipe( | 
					
						
							|  |  |  |     format.format('file', clangFormat)).pipe(gulp.dest('.')); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-26 13:33:53 -07:00
										 |  |  | gulp.task('lint', ['format:enforce', 'tools:build'], () => { | 
					
						
							|  |  |  |   const tslint = require('gulp-tslint'); | 
					
						
							|  |  |  |   // Built-in rules are at
 | 
					
						
							|  |  |  |   // https://github.com/palantir/tslint#supported-rules
 | 
					
						
							|  |  |  |   const tslintConfig = require('./tslint.json'); | 
					
						
							|  |  |  |   return gulp.src(['modules/@angular/**/*.ts', '!modules/@angular/*/test/**']) | 
					
						
							|  |  |  |     .pipe(tslint({ | 
					
						
							|  |  |  |       tslint: require('tslint').default, | 
					
						
							|  |  |  |       configuration: tslintConfig, | 
					
						
							|  |  |  |       rulesDirectory: 'dist/tools/tslint' | 
					
						
							|  |  |  |     })) | 
					
						
							|  |  |  |     .pipe(tslint.report('prose', {emitError: true})); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  | gulp.task('tools:build', (done) => { tsc('tools/', done); }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-27 15:24:32 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-24 12:33:14 -07:00
										 |  |  | gulp.task('serve', () => { | 
					
						
							|  |  |  |   let connect = require('gulp-connect'); | 
					
						
							|  |  |  |   let cors = require('cors'); | 
					
						
							| 
									
										
										
										
											2015-11-26 23:45:40 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-24 12:33:14 -07:00
										 |  |  |   connect.server({ | 
					
						
							|  |  |  |     root: `${__dirname}/dist`, | 
					
						
							|  |  |  |     port: 8000, | 
					
						
							|  |  |  |     livereload: false, | 
					
						
							|  |  |  |     open: false, | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  |     middleware: (connect, opt) => [cors()] | 
					
						
							| 
									
										
										
										
											2016-04-28 21:57:16 -07:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-04-24 10:15:52 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-27 00:46:48 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-24 12:33:14 -07:00
										 |  |  | function tsc(projectPath, done) { | 
					
						
							|  |  |  |   let child_process = require('child_process'); | 
					
						
							| 
									
										
										
										
											2015-02-20 17:44:23 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-25 19:54:34 -07:00
										 |  |  |   child_process | 
					
						
							|  |  |  |       .spawn( | 
					
						
							|  |  |  |           `${__dirname}/node_modules/.bin/tsc`, ['-p', path.join(__dirname, projectPath)], | 
					
						
							|  |  |  |           {stdio: 'inherit'}) | 
					
						
							|  |  |  |       .on('close', (errorCode) => done(errorCode)); | 
					
						
							| 
									
										
										
										
											2015-08-27 10:39:39 -07:00
										 |  |  | } |