mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-10-02 02:07:43 +03:00
Create build+test scripts
This commit is contained in:
73
script/build-module.js
Normal file → Executable file
73
script/build-module.js
Normal file → Executable file
@@ -1,40 +1,53 @@
|
||||
#!/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]);
|
||||
});
|
||||
|
||||
/*///////////////
|
||||
// ua-parser.mjs
|
||||
//////////////*/
|
||||
console.log(`Generate ${dest}`);
|
||||
|
||||
fs.writeFileSync('src/module/ua-parser.mjs',
|
||||
`// Generated ESM version of UAParser.js
|
||||
fs.writeFileSync(dest,
|
||||
`// Generated ESM version of UAParser.js ${title}
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser.js
|
||||
|
||||
` + fs.readFileSync('src/ua-parser.js','utf-8').replace(/\(func[\s\S]+strict\';/ig,'')
|
||||
.replace(/esversion\: 3/ig, 'esversion: 6')
|
||||
.replace(/\/[\/\s]+export[\s\S]+/ig,'export {UAParser};'),'utf-8');
|
||||
${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']]);
|
||||
|
||||
fs.writeFileSync('src/module/ua-parser-enum.mjs',
|
||||
`// Generated ESM version of UAParser.js enums
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser-enum.js
|
||||
|
||||
` + fs.readFileSync('src/ua-parser-enum.js','utf-8')
|
||||
.replace(/module\.exports =/ig,'export'),'utf-8');
|
||||
|
||||
/*//////////////////////////
|
||||
// ua-parser-extension.mjs
|
||||
/////////////////////////*/
|
||||
|
||||
fs.writeFileSync('src/module/ua-parser-extension.mjs',
|
||||
`// Generated ESM version of UAParser.js extensions
|
||||
// DO NOT EDIT THIS FILE!
|
||||
// Source: /src/ua-parser-extension.js
|
||||
|
||||
` + fs.readFileSync('src/ua-parser-extension.js','utf-8')
|
||||
.replace(/const UA.+\)/ig,'import UAParser from \'ua-parser-js\'')
|
||||
.replace(/module\.exports =/ig,'export'),'utf-8');
|
||||
// ua-parser-extension.mjs
|
||||
generateMJS('extension', [[/module\.exports =/ig, 'export']]);
|
Reference in New Issue
Block a user