summaryrefslogtreecommitdiffstats
path: root/tools/ts/update_refs.js
blob: 7b74d63bc84b7f065bcd11f2c3faa4047bd57b4d (plain)
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
/* 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));