| "use strict"; |
| var fs = require("fs"), |
| path = require("path"), |
| pbjs = require("../cli/pbjs"), |
| pbts = require("../cli/pbts"); |
| |
| [ |
| { file: "tests/data/comments.proto", flags: [] }, |
| { file: "tests/data/convert.proto", flags: [] }, |
| { file: "tests/data/mapbox/vector_tile.proto", flags: [] }, |
| { file: "tests/data/package.proto", flags: [] }, |
| { file: "tests/data/rpc.proto", flags: [ "es6" ] }, |
| { file: "tests/data/rpc.proto", flags: [] }, |
| { file: "tests/data/rpc-reserved.proto", flags: [] }, |
| { file: "tests/data/test.proto", flags: [] }, |
| { file: "tests/data/type_url.proto", flags: [] }, |
| { file: "bench/data/bench.proto", flags: ["no-create", "no-verify", "no-delimited", "no-convert", "no-verify", "no-typeurl", "no-comments"], out: "bench/data/static_pbjs.js" } |
| ] |
| .forEach(function({ file, flags, out }) { |
| var basename = file.replace(/\.proto$/, ""); |
| if (!out) |
| out = [ basename ].concat(flags).join("-") + ".js"; |
| pbjs.main([ |
| "--target", "static-module", |
| "--wrap", flags.includes('es6') ? 'es6' : "commonjs", |
| "--root", "test_" + path.basename(basename, ".js"), |
| file |
| ].concat(flags.map(function(flag) { |
| return "--" + flag; |
| })), function(err, output) { |
| if (err) |
| throw err; |
| var pathToProtobufjs = path.relative(path.dirname(out), "minimal").replace(/\\/g, "/"); |
| fs.writeFileSync(out, output.replace(/"protobufjs\/minimal"/g, JSON.stringify(pathToProtobufjs))); |
| process.stdout.write("pbjs: " + file + " -> " + out + "\n"); |
| try { |
| require(path.join(__dirname, "..", out)); |
| } catch (err) { |
| if (!flags.includes("es6")) { |
| process.stderr.write("ERROR: " + err.message + "\n"); |
| } |
| } |
| }); |
| }); |
| |
| process.stdout.write("\n"); |
| |
| [ |
| { file: "tests/data/comments.js" }, |
| { file: "tests/data/convert.js" }, |
| { file: "tests/data/mapbox/vector_tile.js" }, |
| { file: "tests/data/package.js" }, |
| { file: "tests/data/rpc.js" }, |
| { file: "tests/data/rpc-es6.js" }, |
| { file: "tests/data/rpc-reserved.js" }, |
| { file: "tests/data/test.js" }, |
| { file: "ext/descriptor/index.js", ext: true } |
| ] |
| .forEach(function({ file, ext }) { |
| var out = file.replace(/\.js$/, ".d.ts"), |
| args = [ "--no-comments" ]; |
| pbts.main(args.concat(file), function(err, output) { |
| if (err) |
| throw err; |
| var pathToProtobufjs = path.relative(path.dirname(out), "").replace(/\\/g, "/"); |
| output = output.replace(/"protobufjs"/g, JSON.stringify(pathToProtobufjs)); |
| fs.writeFileSync(out, output); |
| process.stdout.write("pbts: " + file + " -> " + out + "\n"); |
| }); |
| }); |