mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-06 16:51:46 +00:00

* Initial tools/ts setup. * Mach commands for buidling xpcom related typelibs. * Mach command for updating the typelib references. * Mach command for type-checking js projects. Also included the dom typelib for reference. Differential Revision: https://phabricator.services.mozilla.com/D197620
36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
"use strict";
|
|
|
|
/**
|
|
* Update: <srcdir>/tools/@types/index.d.ts,
|
|
*
|
|
* reference: <objdir>/dist/@types/lib.gecko.*.d.json,
|
|
* generated by a ts build lib step.
|
|
*/
|
|
|
|
const fs = require("fs");
|
|
const libs = ["dom", "nsresult", "services", "xpcom"];
|
|
|
|
function main(index_dts, lib_dir) {
|
|
let index = fs.readFileSync(index_dts, "utf8");
|
|
|
|
for (let lib of libs) {
|
|
let file = `lib.gecko.${lib}.d.ts`;
|
|
let path = `${lib_dir}/${file}`;
|
|
let found = fs.existsSync(path);
|
|
console.log(`[INFO] ${path} (found: ${found})`);
|
|
|
|
if (found) {
|
|
let re = RegExp(` types=".+/${file}" />`);
|
|
index = index.replace(re, ` types="${path}" />`);
|
|
}
|
|
}
|
|
|
|
console.log(`[INFO] ${index_dts} (${index.length.toLocaleString()} bytes)`);
|
|
fs.writeFileSync(index_dts, index);
|
|
}
|
|
|
|
main(...process.argv.slice(2));
|