diff options
author | Josh Haberman <jhaberman@gmail.com> | 2016-02-04 10:29:27 -0800 |
---|---|---|
committer | Josh Haberman <jhaberman@gmail.com> | 2016-02-18 10:30:21 -0800 |
commit | e9f31ee3d7cf7c0f370607e54dbea01ba7240a77 (patch) | |
tree | 67eb860493c5e1c3d9aaa51386f484dd3eefe493 /js/rewrite_tests_for_commonjs.js | |
parent | 55cc3aa987159bcdb491550d864115c1e8daeebb (diff) | |
download | protobuf-e9f31ee3d7cf7c0f370607e54dbea01ba7240a77.tar.gz protobuf-e9f31ee3d7cf7c0f370607e54dbea01ba7240a77.tar.bz2 protobuf-e9f31ee3d7cf7c0f370607e54dbea01ba7240a77.zip |
CommonJS tests are now passing.
Diffstat (limited to 'js/rewrite_tests_for_commonjs.js')
-rw-r--r-- | js/rewrite_tests_for_commonjs.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/js/rewrite_tests_for_commonjs.js b/js/rewrite_tests_for_commonjs.js new file mode 100644 index 00000000..4dc0a22d --- /dev/null +++ b/js/rewrite_tests_for_commonjs.js @@ -0,0 +1,45 @@ +/** + * @fileoverview Description of this file. + */ + +var lineReader = require('readline').createInterface({ + input: process.stdin, + output: process.stdout +}); + +var module = null; +lineReader.on('line', function(line) { + var is_require = line.match(/goog\.require\('([^']*\.)([^'.]+)'\)/); + var is_loadfromfile = line.match(/CommonJS-LoadFromFile: (.*)/); + var is_settestonly = line.match(/goog.setTestOnly()/); + if (is_settestonly) { + // Remove this line. + } else if (is_require) { + if (module) { // Skip goog.require() lines before the first directive. + var pkg = is_require[1]; + var sym = is_require[2]; + console.log("google_protobuf.exportSymbol('" + pkg + sym + "', " + module + "." + sym + ', global);'); + } + } else if (is_loadfromfile) { + if (!module) { + console.log("var asserts = require('closure_asserts_commonjs');"); + console.log("var global = Function('return this')();"); + console.log(""); + console.log("// Bring asserts into the global namespace."); + console.log("for (var key in asserts) {"); + console.log(" if (asserts.hasOwnProperty(key)) {"); + console.log(" global[key] = asserts[key];"); + console.log(" }"); + console.log("}"); + console.log(""); + console.log("var google_protobuf = require('google-protobuf');"); + } + module = is_loadfromfile[1].replace("-", "_"); + + if (module != "google_protobuf") { // We unconditionally require this in the header. + console.log("var " + module + " = require('" + is_loadfromfile[1] + "');"); + } + } else { + console.log(line); + } +}); |