1
1
var fs = require ( "fs" ) ;
2
2
var pkg = require ( './package.json' ) ;
3
3
var gulp = require ( 'gulp' ) ;
4
- var replace = require ( 'gulp-replace' ) ;
5
- var sourcemaps = require ( 'gulp-sourcemaps' ) ;
4
+ var $ = require ( 'gulp-load-plugins' ) ( { lazy :true } ) ;
6
5
var tsProject = require ( 'tsproject' ) ;
6
+ var eventStream = require ( 'event-stream' ) ;
7
7
8
8
gulp . task ( 'clean' , function ( ) {
9
9
var del = require ( 'del' ) ;
@@ -23,24 +23,20 @@ gulp.task('typescript.node', function () {
23
23
} ) ;
24
24
25
25
gulp . task ( 'exceptionless.umd' , [ 'typescript' , 'typescript.integrations' ] , function ( ) {
26
- var umd = require ( 'gulp-wrap-umd' ) ;
27
26
return gulp . src ( 'dist/temp/src/exceptionless.js' )
28
- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
29
- . pipe ( umd ( {
27
+ . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
28
+ . pipe ( $ . wrapUmd ( {
30
29
exports : 'exports' ,
31
30
globalName : 'exceptionless' ,
32
31
namespace : 'exceptionless' ,
33
32
deps : [ 'TraceKit' ] ,
34
33
template : fs . readFileSync ( './umd.template.jst' , 'utf8' )
35
34
} ) )
36
- . pipe ( sourcemaps . write ( '.' ) )
35
+ . pipe ( $ . sourcemaps . write ( '.' ) )
37
36
. pipe ( gulp . dest ( 'dist/temp' ) ) ;
38
37
} ) ;
39
38
40
39
gulp . task ( 'exceptionless' , [ 'exceptionless.umd' ] , function ( ) {
41
- var uglify = require ( 'gulp-uglify' ) ;
42
- var concat = require ( 'gulp-concat' ) ;
43
-
44
40
gulp . src ( 'dist/temp/src/exceptionless.d.ts' )
45
41
. pipe ( gulp . dest ( 'dist' ) ) ;
46
42
var integrations = [
@@ -56,18 +52,18 @@ gulp.task('exceptionless', ['exceptionless.umd'], function () {
56
52
] ;
57
53
58
54
gulp . src ( files )
59
- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
60
- . pipe ( concat ( 'exceptionless.js' ) )
61
- . pipe ( replace ( 'exceptionless-js/1.0.0.0' , 'exceptionless-js/' + pkg . version ) )
62
- . pipe ( sourcemaps . write ( '.' ) )
55
+ . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
56
+ . pipe ( $ . concat ( 'exceptionless.js' ) )
57
+ . pipe ( $ . replace ( 'exceptionless-js/1.0.0.0' , 'exceptionless-js/' + pkg . version ) )
58
+ . pipe ( $ . sourcemaps . write ( '.' ) )
63
59
. pipe ( gulp . dest ( 'dist' ) ) ;
64
60
65
61
return gulp . src ( files )
66
- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
67
- . pipe ( concat ( 'exceptionless.min.js' ) )
68
- . pipe ( replace ( 'exceptionless-js/1.0.0.0' , 'exceptionless-js/' + pkg . version ) )
69
- . pipe ( uglify ( { output : { beautify : false } } ) )
70
- . pipe ( sourcemaps . write ( '.' ) )
62
+ . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
63
+ . pipe ( $ . concat ( 'exceptionless.min.js' ) )
64
+ . pipe ( $ . replace ( 'exceptionless-js/1.0.0.0' , 'exceptionless-js/' + pkg . version ) )
65
+ . pipe ( $ . uglify ( { output : { beautify : false } } ) )
66
+ . pipe ( $ . sourcemaps . write ( '.' ) )
71
67
. pipe ( gulp . dest ( 'dist' ) )
72
68
} ) ;
73
69
@@ -79,9 +75,9 @@ gulp.task('exceptionless.node', ['typescript.node'], function () {
79
75
] ;
80
76
81
77
gulp . src ( files )
82
- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
83
- . pipe ( replace ( 'exceptionless-js/1.0.0.0' , 'exceptionless-node/' + pkg . version ) )
84
- . pipe ( sourcemaps . write ( '.' ) )
78
+ . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
79
+ . pipe ( $ . replace ( 'exceptionless-js/1.0.0.0' , 'exceptionless-node/' + pkg . version ) )
80
+ . pipe ( $ . sourcemaps . write ( '.' ) )
85
81
. pipe ( gulp . dest ( 'dist' ) ) ;
86
82
} ) ;
87
83
@@ -90,10 +86,9 @@ gulp.task('watch', ['build'], function () {
90
86
} ) ;
91
87
92
88
gulp . task ( 'lint' , function ( ) {
93
- var tslint = require ( 'gulp-tslint' ) ;
94
89
return gulp . src ( [ 'src/**/*.ts' , '!src/typings/**/*.ts' ] )
95
- . pipe ( tslint ( { formatter : 'verbose' } ) )
96
- . pipe ( tslint . report ( ) ) ;
90
+ . pipe ( $ . tslint ( { formatter : 'verbose' } ) )
91
+ . pipe ( $ . tslint . report ( ) ) ;
97
92
} ) ;
98
93
99
94
gulp . task ( 'build' , [ 'clean' , 'lint' , 'exceptionless' , 'exceptionless.node' ] ) ;
@@ -103,35 +98,50 @@ gulp.task('typescript.test', function () {
103
98
} ) ;
104
99
105
100
gulp . task ( 'exceptionless.test.umd' , [ 'typescript.test' ] , function ( ) {
106
- var umd = require ( 'gulp-wrap-umd' ) ;
107
- return gulp . src ( 'dist/temp/src/exceptionless-spec.js' )
108
- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
109
- . pipe ( umd ( {
101
+ var wrap = function ( filename ) {
102
+ return gulp . src ( filename )
103
+ . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
104
+ . pipe ( $ . wrapUmd ( {
110
105
exports : 'exports' ,
111
106
globalName : 'exceptionless' ,
112
107
namespace : 'exceptionless'
113
108
} ) )
114
- . pipe ( replace ( '}(this, function(require, exports, module) {' , '}(this, function(require, exports, module) {\nif (!exports) {\n\tvar exports = {};\n}\n' ) )
115
- . pipe ( sourcemaps . write ( '.' ) )
109
+ . pipe ( $ . replace ( '}(this, function(require, exports, module) {' , '}(this, function(require, exports, module) {\nif (!exports) {\n\tvar exports = {};\n}\n' ) )
110
+ . pipe ( $ . sourcemaps . write ( '.' ) )
116
111
. pipe ( gulp . dest ( 'dist/temp' ) ) ;
112
+ } ;
113
+
114
+ return eventStream . merge (
115
+ wrap ( 'dist/temp/src/exceptionless-nodespec.js' ) ,
116
+ wrap ( 'dist/temp/src/exceptionless-browserspec.js' ) ) ;
117
117
} ) ;
118
118
119
- gulp . task ( 'test' , [ 'exceptionless.test.umd' ] , function ( done ) {
120
- var mocha = require ( 'gulp-mocha' ) ;
121
- return gulp . src ( 'dist/temp/exceptionless-spec.js' , { read : false } )
122
- . pipe ( mocha ( {
119
+ gulp . task ( 'test-node' , [ 'exceptionless.test.umd' ] , function ( done ) {
120
+ return gulp . src ( 'dist/temp/exceptionless-nodespec.js' , { read : false } )
121
+ . pipe ( $ . mocha ( {
123
122
require : [ 'source-map-support/register' ]
124
123
} ) )
125
124
. once ( 'end' , function ( ) {
126
125
process . exit ( ) ;
127
126
} ) ;
128
127
} ) ;
129
128
129
+ gulp . task ( 'test-browser' , [ 'exceptionless.test.umd' ] , function ( ) {
130
+ return gulp
131
+ . src ( 'testrunner.html' )
132
+ . pipe ( $ . mochaPhantomjs ( ) ) ;
133
+ } ) ;
134
+
135
+ gulp . task ( 'test' , function ( ) {
136
+ // test-node calls process.exit(), so run browser tests before node tests
137
+ var runSequence = require ( 'run-sequence' ) ;
138
+ runSequence ( 'test-browser' , 'test-node' ) ;
139
+ } ) ;
140
+
130
141
gulp . task ( 'format' , function ( ) {
131
- var exec = require ( 'gulp-exec' ) ;
132
142
return gulp . src ( [ 'src/**/*.ts' , '!src/typings/**/*.ts' ] )
133
- . pipe ( exec ( 'node_modules/typescript-formatter/bin/tsfmt -r <%= file.path %>' ) )
134
- . pipe ( exec . reporter ( ) ) ;
143
+ . pipe ( $ . exec ( 'node_modules/typescript-formatter/bin/tsfmt -r <%= file.path %>' ) )
144
+ . pipe ( $ . exec . reporter ( ) ) ;
135
145
} ) ;
136
146
137
147
gulp . task ( 'default' , [ 'watch' , 'build' , 'test' ] ) ;
0 commit comments