Rearrange the structure of src folders

This commit is contained in:
Faisal Salman 2023-04-21 09:47:51 +07:00
parent 29fb85658a
commit 9102871dea
10 changed files with 55 additions and 51 deletions

View File

@ -142,20 +142,21 @@
"Zach Bjornson <zbbjornson@gmail.com>"
],
"type": "commonjs",
"main": "src/ua-parser.js",
"module": "src/module/ua-parser.mjs",
"main": "src/main/ua-parser.js",
"module": "src/main/ua-parser.mjs",
"browser": "dist/ua-parser.pack.js",
"exports": {
".": {
"require": "./src/ua-parser.js",
"import": "./src/module/ua-parser.mjs"
"require": "./src/main/ua-parser.js",
"import": "./src/main/ua-parser.mjs"
},
"./enums": {
"require": "./src/ua-parser-enum.js",
"import": "./src/module/ua-parser-enum.mjs"
"require": "./src/enums/ua-parser-enums.js",
"import": "./src/enums/ua-parser-enums.mjs"
},
"./extensions": {
"require": "./src/ua-parser-extension.js",
"import": "./src/module/ua-parser-extension.mjs"
"require": "./src/extensions/ua-parser-extensions.js",
"import": "./src/extensions/ua-parser-extensions.mjs"
}
},
"files": [

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
SRC_PATH="src/ua-parser.js"
SRC_PATH="src/main/ua-parser.js"
MIN_PATH="dist/ua-parser.min.js"
PACK_PATH="dist/ua-parser.pack.js"

View File

@ -3,19 +3,19 @@
const fs = require('fs');
const PATH = {
main : {
src : 'src/ua-parser.js',
dest : 'src/module/ua-parser.mjs',
src : 'src/main/ua-parser.js',
dest : 'src/main/ua-parser.mjs',
title : ''
},
enum : {
src : 'src/ua-parser-enum.js',
dest :'src/module/ua-parser-enum.mjs',
title : 'enum'
enums : {
src : 'src/enums/ua-parser-enums.js',
dest :'src/enums/ua-parser-enums.mjs',
title : 'enums'
},
extension : {
src : 'src/ua-parser-extension.js',
dest : 'src/module/ua-parser-extension.mjs',
title : 'extension'
extensions : {
src : 'src/extensions/ua-parser-extensions.js',
dest : 'src/extensions/ua-parser-extensions.mjs',
title : 'extensions'
}
};
const generateMJS = (module, replacers) => {
@ -30,15 +30,11 @@ const generateMJS = (module, replacers) => {
fs.writeFileSync(dest,
`// Generated ESM version of UAParser.js ${title}
// DO NOT EDIT THIS FILE!
// Source: /src/ua-parser.js
// Source: /${src}
${text}`, 'utf-8');
};
if (!fs.existsSync('src/module')) {
fs.mkdirSync('src/module', { recursive: true });
}
// ua-parser.mjs
generateMJS('main', [
[/\(func[\s\S]+strict\';/ig, ''],
@ -47,7 +43,7 @@ generateMJS('main', [
]);
// ua-parser-enum.mjs
generateMJS('enum', [[/module\.exports =/ig, 'export']]);
generateMJS('enums', [[/module\.exports =/ig, 'export']]);
// ua-parser-extension.mjs
generateMJS('extension', [[/module\.exports =/ig, 'export']]);
generateMJS('extensions', [[/module\.exports =/ig, 'export']]);

View File

@ -1,6 +1,6 @@
// Generated ESM version of UAParser.js enums
// DO NOT EDIT THIS FILE!
// Source: /src/ua-parser-enum.js
// Source: /src/enums/ua-parser-enums.js
///////////////////////////////////////////////
/* Enums for UAParser.js v2.0.0-alpha.2

View File

@ -1,6 +1,6 @@
// Generated ESM version of UAParser.js extensions
// DO NOT EDIT THIS FILE!
// Source: /src/ua-parser-extension.js
// Source: /src/extensions/ua-parser-extensions.js
///////////////////////////////////////////////
/* Extensions for UAParser.js v2.0.0-alpha.2
@ -19,10 +19,19 @@ const VERSION = 'version';
const MOBILE = 'mobile';
const TABLET = 'tablet';
const Apps = Object.freeze({
browser : [
[/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, 'app']]
]
});
const Bots = Object.freeze({
browser : [
// Googlebot / BingBot / MSNBot / FacebookBot
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
// Googlebot / BingBot / MSNBot / FacebookBot
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
// Slackbot - https://api.slack.com/robots
[/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
]
});
@ -111,16 +120,17 @@ const Emails = Object.freeze({
]
});
const Tools = Object.freeze({
const CLI = Object.freeze({
browser : [
// wget / curl / lynx
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'tool']]
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
]
});
export {
Apps,
Bots,
ExtraDevices,
Emails,
Tools
CLI
};

View File

@ -1,6 +1,6 @@
// Generated ESM version of UAParser.js
// DO NOT EDIT THIS FILE!
// Source: /src/ua-parser.js
// Source: /src/main/ua-parser.js
/////////////////////////////////////////////////////////////////////////////////
/* UAParser.js v2.0.0-alpha.2
@ -734,7 +734,7 @@
// iOS/macOS
/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS
/ios;fbsv\/([\d\.]+)/i,
/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
/cfnetwork\/.+darwin/i
], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [
/(mac os x) ?([\w\. ]*)/i,
@ -920,10 +920,10 @@
// Constructor
////////////////
function UACHData (uach, isHTTP_UACH) {
function UACHData (uach, isHttpUACH) {
uach = uach || {};
setProps.call(this, CH_ALL_VALUES);
if (isHTTP_UACH) {
if (isHttpUACH) {
setProps.call(this, [
[BRANDS, itemListToArray(uach[CH_HEADER])],
[FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],
@ -1108,15 +1108,12 @@
return new UAParser(ua, extensions, headers).getResult();
}
var userAgent = ua ||
((NAVIGATOR && NAVIGATOR.userAgent) ?
NAVIGATOR.userAgent :
(headers && headers[USER_AGENT] ?
headers[USER_AGENT] :
EMPTY)),
HTTP_UACH = new UACHData(headers, true),
var userAgent = typeof ua === STR_TYPE ? ua : // Passed user-agent string
((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent
(headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers
EMPTY)), // empty string
httpUACH = new UACHData(headers, true),
regexMap = extensions ?
extend(defaultRegexes, extensions) :
defaultRegexes,
@ -1124,7 +1121,7 @@
createItemFunc = function (itemType) {
if (itemType == UA_RESULT) {
return function () {
return new UAItem(itemType, userAgent, regexMap, HTTP_UACH)
return new UAItem(itemType, userAgent, regexMap, httpUACH)
.set('ua', userAgent)
.set(UA_BROWSER, this.getBrowser())
.set(UA_CPU, this.getCPU())
@ -1135,7 +1132,7 @@
};
} else {
return function () {
return new UAItem(itemType, userAgent, regexMap[itemType], HTTP_UACH)
return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)
.parseUA()
.get();
};

View File

@ -4,7 +4,7 @@ var assert = require('assert');
var requirejs = require('requirejs');
var parseJS = require('@babel/parser').parse;
var traverse = require('@babel/traverse').default;
var UAParser = require('../src/ua-parser');
var UAParser = require('ua-parser-js');
var browsers = require('./specs/browser-all.json');
var cpus = require('./specs/cpu-all.json');
var devices = require('./specs/device-all.json');
@ -159,7 +159,7 @@ describe('Testing regexes', function () {
var regexes;
before('Read main js file', function () {
var code = fs.readFileSync('src/ua-parser.js', 'utf8').toString();
var code = fs.readFileSync('src/main/ua-parser.js', 'utf8').toString();
var ast = parseJS(code, { sourceType: "script" });
regexes = [];
traverse(ast, {