![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/metras.v32.1/node_modules/es-abstract/operations/ |
#!/usr/bin/env node var fs = require('fs'); var path = require('path'); var execSync = require('child_process').execSync; var $ = require('cheerio'); var fromEntries = require('object.fromentries'); if (process.argv.length !== 3) { throw new RangeError('please provide a year'); } var year = parseInt(process.argv[2]); if (year < 2016) { throw new RangeError('ES2016+ only'); } var edition = year - 2009; var specHTMLurl = new URL('https://raw.githubusercontent.com/tc39/ecma262/es' + year + '/spec.html'); var specHTML = String(execSync('curl --silent ' + specHTMLurl)); var root = $(specHTML); var aOps = root.filter('[aoid]').add(root.find('[aoid]')); var missings = []; var entries = aOps.toArray().map(function (x) { var op = $(x); var aoid = op.attr('aoid'); var id = op.attr('id'); if (!id) { id = op.closest('[id]').attr('id'); } if (!id) { missings.push(aoid); } return [ aoid, 'https://ecma-international.org/ecma-262/' + edition + '.0/#' + id ]; }); if (missings.length > 0) { console.error('Missing URLs:', missings); process.exit(1); } entries.sort(function (a, b) { return a[0].localeCompare(b[0]); }); var obj = fromEntries(entries); var outputPath = path.join('operations', year + '.js'); fs.writeFileSync(outputPath, '\'use strict\';\n\nmodule.exports = ' + JSON.stringify(obj, null, '\t')+ ';\n'); console.log('npx eslint --quiet --fix ' + outputPath); execSync('npx eslint --quiet --fix ' + outputPath);