mirror of
https://github.com/protobufjs/protobuf.js.git
synced 2025-12-08 20:58:55 +00:00
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
var fs = require("fs"),
|
|
path = require("path"),
|
|
pkg = require("../package.json");
|
|
var dir = path.join(__dirname, "..", "types");
|
|
|
|
var header = [
|
|
'/// <reference types="node" />',
|
|
'/// <reference types="long" />',
|
|
"",
|
|
"/*",
|
|
" * protobuf.js v" + pkg.version + " TypeScript definitions",
|
|
" * Generated " + (new Date()).toUTCString().replace(/GMT/, "UTC"),
|
|
" */"
|
|
];
|
|
|
|
var dts = fs.readFileSync(path.join(dir, "types.d.ts"), "utf8");
|
|
|
|
// Fix generic promises
|
|
dts = dts.replace(/Promise\./g, "Promise");
|
|
|
|
// Fix classes
|
|
dts = dts.replace(/\(\(\) => any\)/g, "any");
|
|
|
|
// Fix multidimensional arrays
|
|
var found;
|
|
do {
|
|
found = false;
|
|
dts = dts.replace(/Array\.<([^>]+)>/g, function($0, $1) {
|
|
found = true;
|
|
return $1 + "[]";
|
|
});
|
|
} while (found);
|
|
|
|
// Remove declare statements and wrap everything in a module
|
|
dts = dts.replace(/\bdeclare\s/g, "");
|
|
dts = dts.replace(/^/mg, " ");
|
|
dts = header.join('\n')+"\ndeclare module \"protobufjs\" {\n\n" + dts + "\n}\n";
|
|
|
|
fs.writeFileSync(path.join(dir, "protobuf.js.d.ts"), dts);
|
|
fs.unlinkSync(path.join(dir, "types.d.ts"));
|