This repository has been archived by the owner on Jun 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
generate.js
53 lines (53 loc) · 2.2 KB
/
generate.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
exports.__esModule = true;
var cli_1 = require("protobufjs/cli");
var fs = __importStar(require("fs"));
fs.readdir('proto', function (err, data) {
data.forEach(function (x) {
if (!x.endsWith('.proto'))
return;
console.log(x);
cli_1.pbjs.main(['--target', 'static-module', "./proto/" + x], function (err, output) {
if (err)
throw err;
var name = x.replace('.proto', '');
fs.writeFileSync("./js/" + name + ".js", output);
cli_1.pbts.main(["./js/" + name + ".js"], function (err, output) {
if (err)
throw err;
fs.writeFileSync("./js/" + name + ".d.ts", output);
});
});
cli_1.pbjs.main(['--target', 'json', "./proto/" + x], function (err, output) {
if (err)
throw err;
var name = x.replace('.proto', '');
fs.writeFileSync("./json/" + name + ".json", output);
var obj = JSON.parse(output);
var keys = Object.keys(obj.nested);
var byname = {};
keys.forEach(function (v, i) { return byname[v] = i; });
fs.writeFileSync("./idmap/" + name + ".json", JSON.stringify(keys));
fs.writeFileSync("./idmap/" + name + "-byname.json", JSON.stringify(byname));
});
});
});