ua-parser-js/script/build-module.js
2023-04-15 00:01:49 +07:00

53 lines
1.3 KiB
JavaScript
Executable File

#!/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']]);