aboutsummaryrefslogtreecommitdiff
path: root/js/gulpfile.js
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2016-02-02 15:18:34 -0800
committerJosh Haberman <jhaberman@gmail.com>2016-02-18 10:30:21 -0800
commit55cc3aa987159bcdb491550d864115c1e8daeebb (patch)
tree0bd5a441d679ffa6b8b600a755c8284d79208b6c /js/gulpfile.js
parentc40f8c1f54f028b1ca73f3fb2dfdde500f94918f (diff)
downloadprotobuf-55cc3aa987159bcdb491550d864115c1e8daeebb.tar.gz
protobuf-55cc3aa987159bcdb491550d864115c1e8daeebb.tar.bz2
protobuf-55cc3aa987159bcdb491550d864115c1e8daeebb.zip
WIP.
Diffstat (limited to 'js/gulpfile.js')
-rw-r--r--js/gulpfile.js39
1 files changed, 34 insertions, 5 deletions
diff --git a/js/gulpfile.js b/js/gulpfile.js
index 79095d65..a548a826 100644
--- a/js/gulpfile.js
+++ b/js/gulpfile.js
@@ -1,25 +1,45 @@
var gulp = require('gulp');
var exec = require('child_process').exec;
-gulp.task('genproto', function (cb) {
+gulp.task('genproto_closure', function (cb) {
exec('../src/protoc --js_out=library=testproto_libs,binary:. -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto',
function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
-})
+});
+
+gulp.task('genproto_commonjs', function (cb) {
+ exec('mkdir -p commonjs_out && ../src/protoc --js_out=import_style=commonjs,binary:commonjs_out -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto',
+ function (err, stdout, stderr) {
+ console.log(stdout);
+ console.log(stderr);
+ cb(err);
+ });
+});
-gulp.task('deps', ['genproto'], function (cb) {
+gulp.task('dist', function (cb) {
+ // TODO(haberman): minify this more aggressively.
+ // Will require proper externs/exports.
+ exec('./node_modules/google-closure-library/closure/bin/calcdeps.py -i message.js -i binary/reader.js -i binary/writer.js -p . -p node_modules/google-closure-library/closure -o compiled --compiler_jar node_modules/google-closure-compiler/compiler.jar > google-protobuf.js',
+ function (err, stdout, stderr) {
+ console.log(stdout);
+ console.log(stderr);
+ cb(err);
+ });
+});
+
+gulp.task('deps', ['genproto_closure'], function (cb) {
exec('./node_modules/google-closure-library/closure/bin/build/depswriter.py *.js binary/*.js > deps.js',
function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
-})
+});
-gulp.task('test', ['genproto', 'deps'], function (cb) {
+gulp.task('test_closure', ['genproto_closure', 'deps'], function (cb) {
exec('JASMINE_CONFIG_PATH=jasmine.json ./node_modules/.bin/jasmine',
function (err, stdout, stderr) {
console.log(stdout);
@@ -27,3 +47,12 @@ gulp.task('test', ['genproto', 'deps'], function (cb) {
cb(err);
});
});
+
+gulp.task('test_commonjs', ['genproto_commonjs', 'dist'], function (cb) {
+ exec('JASMINE_CONFIG_PATH=jasmine.json cp jasmine_commonjs.json commonjs_out/jasmine.json && cd commonjs_out && ../node_modules/.bin/jasmine',
+ function (err, stdout, stderr) {
+ console.log(stdout);
+ console.log(stderr);
+ cb(err);
+ });
+});