'use strict'; // Build all.json by combining the miscs, modules, classes, globals, and methods // from the generated json files. const fs = require('fs'); const source = `${__dirname}/../../out/doc/api`; // Get a list of generated API documents. const jsonFiles = fs.readdirSync(source, 'utf8') .filter((name) => name.includes('.json') && name !== 'all.json'); // Read the table of contents. const toc = fs.readFileSync(source + '/index.html', 'utf8'); // Initialize results. Only these four data values will be collected. const results = { miscs: [], modules: [], classes: [], globals: [], methods: [] }; // Identify files that should be skipped. As files are processed, they // are added to this list to prevent dupes. const seen = { 'all.json': true, 'index.json': true }; // Extract (and concatenate) the selected data from each document. // Expand hrefs found in json to include source HTML file. for (const link of toc.match(//g)) { const href = /href="(.*?)"/.exec(link)[1]; const json = href.replace('.html', '.json'); if (!jsonFiles.includes(json) || seen[json]) continue; const data = JSON.parse( fs.readFileSync(source + '/' + json, 'utf8') .replace(/