Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit 671a0a1

Browse files
committed
chore: switch packaging to rollup
1 parent 6e2f13c commit 671a0a1

File tree

6 files changed

+93
-82
lines changed

6 files changed

+93
-82
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ parsed-idl/
77
.idea
88
.vscode
99
npm-debug.log
10+
build-es6

gulpfile.js

+69-79
Original file line numberDiff line numberDiff line change
@@ -1,136 +1,126 @@
11
'use strict';
22

33
var gulp = require('gulp');
4+
var rollup = require('gulp-rollup');
5+
var rename = require("gulp-rename");
46
var gutil = require("gulp-util");
57
var webpack = require('webpack');
68
var rename = require('gulp-rename');
79
var uglify = require('gulp-uglify');
8-
var typescript = require('gulp-tsc');
10+
var pump = require('pump');
11+
var uglify = require('gulp-uglify');
12+
var path = require('path');
13+
var spawn = require('child_process').spawn;
914

1015

1116
var distFolder = './dist';
1217

13-
function generateBrowserScript(inFile, outFile, minify, callback) {
14-
var plugins = [];
18+
function generateScript(inFile, outFile, minify, callback) {
19+
inFile = path.join('./build-es6/', inFile).replace(/\.ts$/, '.js');
20+
var parts = [
21+
gulp.src('./build-es6/lib/**/*.js')
22+
.pipe(rollup({ entry: inFile}))
23+
.pipe(rename(outFile)),
24+
];
1525
if (minify) {
16-
plugins.push(new webpack.optimize.UglifyJsPlugin({
17-
mangle: {
18-
except: ['$super', '$', 'exports', 'require']
19-
}
20-
}));
26+
parts.push(uglify());
2127
}
22-
webpack({
23-
entry: inFile,
24-
plugins: plugins,
25-
output: {
26-
filename: 'dist/' + outFile
27-
},
28-
resolve: {
29-
extensions: ['', '.webpack.js', '.web.js', '.ts', '.js']
30-
},
31-
module: {
32-
loaders: [
33-
{test: /\.ts$/, loader: 'ts-loader', exclude: /node_modules/}
34-
]
35-
},
36-
node: {
37-
process: false
38-
}
39-
}, function(err, stats) {
40-
if(err) {
41-
callback(err);
42-
} else {
43-
gutil.log("[webpack]", stats.toString({
44-
// output meta
45-
}));
46-
callback();
47-
}
48-
});
28+
parts.push(gulp.dest('./dist'));
29+
pump(parts, callback);
30+
}
31+
32+
function tsc(config, cb) {
33+
spawn('./node_modules/.bin/tsc', ['-p', config], {stdio: 'inherit'})
34+
.on('close', function(exitCode) {
35+
if (exitCode) {
36+
var err = new Error('TypeScript compiler failed');
37+
// The stack is not useful in this context.
38+
err.showStack = false;
39+
cb(err);
40+
} else {
41+
cb();
42+
}
43+
});
4944
}
5045

5146
// This is equivalent to `npm run tsc`.
5247
gulp.task('compile', function(cb) {
53-
var spawn = require('child_process').spawn;
54-
spawn('./node_modules/.bin/tsc', {stdio: 'inherit'}).on('close', function(exitCode) {
55-
if (exitCode) {
56-
var err = new Error('TypeScript compiler failed');
57-
// The stack is not useful in this context.
58-
err.showStack = false;
59-
cb(err);
60-
} else {
61-
cb();
62-
}
63-
});
48+
tsc('tsconfig.json', cb);
49+
});
50+
51+
gulp.task('compile-es6', function(cb) {
52+
tsc('tsconfig-es6.json', cb);
6453
});
6554

66-
gulp.task('build/zone.js.d.ts', ['compile'], function() {
55+
gulp.task('build/zone.js.d.ts', ['compile-es6'], function() {
6756
return gulp.src('./build/lib/zone.d.ts').pipe(rename('zone.js.d.ts')).pipe(gulp.dest('./dist'));
6857
});
6958

7059
// Zone for Node.js environment.
71-
gulp.task('build/zone-node.js', function(cb) {
72-
return generateBrowserScript('./lib/node/node.ts', 'zone-node.js', false, cb);
60+
gulp.task('build/zone-node.js', ['compile-es6'], function(cb) {
61+
return generateScript('./lib/node/node.ts', 'zone-node.js', false, cb);
7362
});
7463

7564
// Zone for the browser.
76-
gulp.task('build/zone.js', function(cb) {
77-
return generateBrowserScript('./lib/browser/browser.ts', 'zone.js', false, cb);
65+
gulp.task('build/zone.js', ['compile-es6'], function(cb) {
66+
67+
return generateScript('./lib/browser/browser.ts', 'zone.js', false, cb);
7868
});
7969

80-
gulp.task('build/zone.min.js', function(cb) {
81-
return generateBrowserScript('./lib/browser/browser.ts', 'zone.min.js', true, cb);
70+
gulp.task('build/zone.min.js', ['compile-es6'], function(cb) {
71+
return generateScript('./lib/browser/browser.ts', 'zone.min.js', true, cb);
8272
});
8373

84-
gulp.task('build/jasmine-patch.js', function(cb) {
85-
return generateBrowserScript('./lib/jasmine/jasmine.ts', 'jasmine-patch.js', false, cb);
74+
gulp.task('build/jasmine-patch.js', ['compile-es6'], function(cb) {
75+
return generateScript('./lib/jasmine/jasmine.ts', 'jasmine-patch.js', false, cb);
8676
});
8777

88-
gulp.task('build/jasmine-patch.min.js', function(cb) {
89-
return generateBrowserScript('./lib/jasmine/jasmine.ts', 'jasmine-patch.min.js', true, cb);
78+
gulp.task('build/jasmine-patch.min.js', ['compile-es6'], function(cb) {
79+
return generateScript('./lib/jasmine/jasmine.ts', 'jasmine-patch.min.js', true, cb);
9080
});
9181

92-
gulp.task('build/long-stack-trace-zone.js', function(cb) {
93-
return generateBrowserScript('./lib/zone-spec/long-stack-trace.ts', 'long-stack-trace-zone.js', false, cb);
82+
gulp.task('build/long-stack-trace-zone.js', ['compile-es6'], function(cb) {
83+
return generateScript('./lib/zone-spec/long-stack-trace.ts', 'long-stack-trace-zone.js', false, cb);
9484
});
9585

96-
gulp.task('build/long-stack-trace-zone.min.js', function(cb) {
97-
return generateBrowserScript('./lib/zone-spec/long-stack-trace.ts', 'long-stack-trace-zone.min.js', true, cb);
86+
gulp.task('build/long-stack-trace-zone.min.js', ['compile-es6'], function(cb) {
87+
return generateScript('./lib/zone-spec/long-stack-trace.ts', 'long-stack-trace-zone.min.js', true, cb);
9888
});
9989

100-
gulp.task('build/proxy-zone.js', function(cb) {
101-
return generateBrowserScript('./lib/zone-spec/proxy.ts', 'proxy.js', false, cb);
90+
gulp.task('build/proxy-zone.js', ['compile-es6'], function(cb) {
91+
return generateScript('./lib/zone-spec/proxy.ts', 'proxy.js', false, cb);
10292
});
10393

104-
gulp.task('build/proxy-zone.min.js', function(cb) {
105-
return generateBrowserScript('./lib/zone-spec/proxy.ts', 'proxy.min.js', true, cb);
94+
gulp.task('build/proxy-zone.min.js', ['compile-es6'], function(cb) {
95+
return generateScript('./lib/zone-spec/proxy.ts', 'proxy.min.js', true, cb);
10696
});
10797

108-
gulp.task('build/task-tracking.js', function(cb) {
109-
return generateBrowserScript('./lib/zone-spec/task-tracking.ts', 'task-tracking.js', false, cb);
98+
gulp.task('build/task-tracking.js', ['compile-es6'], function(cb) {
99+
return generateScript('./lib/zone-spec/task-tracking.ts', 'task-tracking.js', false, cb);
110100
});
111101

112-
gulp.task('build/task-tracking.min.js', function(cb) {
113-
return generateBrowserScript('./lib/zone-spec/task-tracking.ts', 'task-tracking.min.js', true, cb);
102+
gulp.task('build/task-tracking.min.js', ['compile-es6'], function(cb) {
103+
return generateScript('./lib/zone-spec/task-tracking.ts', 'task-tracking.min.js', true, cb);
114104
});
115105

116-
gulp.task('build/wtf.js', function(cb) {
117-
return generateBrowserScript('./lib/zone-spec/wtf.ts', 'wtf.js', false, cb);
106+
gulp.task('build/wtf.js', ['compile-es6'], function(cb) {
107+
return generateScript('./lib/zone-spec/wtf.ts', 'wtf.js', false, cb);
118108
});
119109

120-
gulp.task('build/wtf.min.js', function(cb) {
121-
return generateBrowserScript('./lib/zone-spec/wtf.ts', 'wtf.min.js', true, cb);
110+
gulp.task('build/wtf.min.js', ['compile-es6'], function(cb) {
111+
return generateScript('./lib/zone-spec/wtf.ts', 'wtf.min.js', true, cb);
122112
});
123113

124-
gulp.task('build/async-test.js', function(cb) {
125-
return generateBrowserScript('./lib/zone-spec/async-test.ts', 'async-test.js', false, cb);
114+
gulp.task('build/async-test.js', ['compile-es6'], function(cb) {
115+
return generateScript('./lib/zone-spec/async-test.ts', 'async-test.js', false, cb);
126116
});
127117

128-
gulp.task('build/fake-async-test.js', function(cb) {
129-
return generateBrowserScript('./lib/zone-spec/fake-async-test.ts', 'fake-async-test.js', false, cb);
118+
gulp.task('build/fake-async-test.js', ['compile-es6'], function(cb) {
119+
return generateScript('./lib/zone-spec/fake-async-test.ts', 'fake-async-test.js', false, cb);
130120
});
131121

132-
gulp.task('build/sync-test.js', function(cb) {
133-
return generateBrowserScript('./lib/zone-spec/sync-test.ts', 'sync-test.js', false, cb);
122+
gulp.task('build/sync-test.js', ['compile-es6'], function(cb) {
123+
return generateScript('./lib/zone-spec/sync-test.ts', 'sync-test.js', false, cb);
134124
});
135125

136126
gulp.task('build', [

lib/browser/define-property.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function propertyPatch() {
2828
return obj;
2929
};
3030

31-
Object.create = function (obj, proto) {
31+
Object.create = <any>function (obj, proto) {
3232
if (typeof proto === 'object' && !Object.isFrozen(proto)) {
3333
Object.keys(proto).forEach(function (prop) {
3434
proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);

lib/node/node.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ if (crypto) {
4040
}.bind(crypto);
4141

4242
let nativePbkdf2 = crypto.pbkdf2;
43-
crypto.pbkdf2 = function pbkdf2Zone(...args) {
43+
crypto.pbkdf2 = function pbkdf2Zone(...args: any[]) {
4444
let fn = args[args.length - 1];
4545
if (typeof fn === 'function') {
4646
let zone = Zone.current;

test/common/util.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ describe('utils', function () {
3737
var Type = function() {};
3838
var method = Type.prototype.method = function () {};
3939
patchMethod(Type.prototype, 'method', (delegate) => {
40-
return function (self, args) { return delegate.apply(self, ['patch', ...args]); }
40+
return function (self, args: any[]) { return delegate.apply(self, ['patch', ...args]); }
4141
});
4242
var pMethod = Type.prototype.method;
4343
expect(pMethod).not.toBe(method);

tsconfig-es6.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"compilerOptions": {
3+
"module": "es2015",
4+
"target": "es5",
5+
"noImplicitAny": false,
6+
"outDir": "build-es6",
7+
"inlineSourceMap": false,
8+
"inlineSources": false,
9+
"declaration": true,
10+
"noEmitOnError": false,
11+
"stripInternal": true
12+
},
13+
"exclude": [
14+
"node_modules",
15+
"typings/main",
16+
"typings/main.d.ts",
17+
"build",
18+
"dist"
19+
]
20+
}

0 commit comments

Comments
 (0)