#!/usr/bin/env node /* jshint esversion: 6 */ const fs = require('fs'); const PATH = { main : { src : 'src/ua-parser.js', dest : 'src/module/ua-parser.mjs', title : '' }, enum : { src : 'src/ua-parser-enum.js', dest :'src/module/ua-parser-enum.mjs', title : 'enum' }, extension : { src : 'src/ua-parser-extension.js', dest : 'src/module/ua-parser-extension.mjs', title : 'extension' } }; const generateMJS = (module, replacers) => { const { src, dest, title } = PATH[module]; let text = fs.readFileSync(src, 'utf-8'); replacers.forEach(replacer => { text = text.replace(replacer[0], replacer[1]); }); console.log(`Generate ${dest}`); fs.writeFileSync(dest, `// Generated ESM version of UAParser.js ${title} // DO NOT EDIT THIS FILE! // Source: /src/ua-parser.js ${text}`, 'utf-8'); }; if (!fs.existsSync('src/module')) { fs.mkdirSync('src/module', { recursive: true }); } // ua-parser.mjs generateMJS('main', [ [/\(func[\s\S]+strict\';/ig, ''], [/esversion\: 3/ig, 'esversion: 6'], [/\/[\/\s]+export[\s\S]+/ig,'export {UAParser};'] ]); // ua-parser-enum.mjs generateMJS('enum', [[/module\.exports =/ig, 'export']]); // ua-parser-extension.mjs generateMJS('extension', [[/module\.exports =/ig, 'export']]);