• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1let { writeFile } = require('fs');
2const { promisify } = require('util');
3const r2 = require('r2');
4const RadixTree = require('./radix-tree');
5const ArrayMappedRadixTree = require('./array-mapped-radix-tree');
6
7writeFile = promisify(writeFile);
8
9main();
10
11async function main() {
12    // NOTE: don't use r2.json directly due to https://github.com/mikeal/r2/issues/48
13    const res = await r2('https://html.spec.whatwg.org/multipage/entities.json').response;
14    const src = await res.json();
15    const radixTree = new RadixTree(src);
16    const arr = new ArrayMappedRadixTree(radixTree);
17
18    const data =
19        `'use strict';\n\n` +
20        `//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n` +
21        `//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\n` +
22        `module.exports = new Uint16Array(${JSON.stringify(arr)});`;
23
24    await writeFile('packages/parse5/lib/tokenizer/named-entity-data.js', data);
25}
26