Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .clean-publish
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"withoutPublish": true,
"tempDir": "package",
"files": ["**/*.spec.d.ts", "**/*.spec.d.ts.map"]
"tempDir": "package"
}
3 changes: 2 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@
},
"parserOptions": {
"tsconfigRootDir": "./",
"project": ["./tsconfig.json"]
"project": ["./tsconfig.json", "./test/tsconfig.json"]
},
"rules": {
"@typescript-eslint/no-magic-numbers": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-misused-promises": "off",
"array-element-newline": "off",
"prefer-destructuring": "off"
},
Expand Down
16 changes: 8 additions & 8 deletions examples/EXAMPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,23 @@ not dead
```json
{
"scripts": {
"supportedBrowsers": "echo \"module.exports = $(browserslist-useragent-regexp --allowHigherVersions);\" > supportedBrowsers.js"
"supportedBrowsers": "echo \"export default $(browserslist-useragent-regexp --allowHigherVersions);\" > supportedBrowsers.js"
}
}
```

3) Run this script, to compile RegExp:
3) Run this script, to compile regex:

```bash
npm run supportedBrowsers
# or
yarn supportedBrowsers
```

4) Import RegExp from created file:
4) Import regex from created file:

```js
const supportedBrowsers = require('./supportedBrowsers');
import supportedBrowsers from './supportedBrowsers.js';

if (supportedBrowsers.test(navigator.userAgent)) {
alert('Your browser is supported.');
Expand All @@ -55,23 +55,23 @@ dead
```json
{
"scripts": {
"supportedBrowsers": "echo \"module.exports = $(BROWSERSLIST_ENV=unsupported browserslist-useragent-regexp);\" > supportedBrowsers.js"
"supportedBrowsers": "echo \"export default $(BROWSERSLIST_ENV=unsupported browserslist-useragent-regexp);\" > supportedBrowsers.js"
}
}
```

3) Run this script, to compile RegExp:
3) Run this script, to compile regex:

```bash
npm run supportedBrowsers
# or
yarn supportedBrowsers
```

4) Import RegExp from created file:
4) Import regex from created file:

```js
const unsupportedBrowsers = require('./unsupportedBrowsers');
import unsupportedBrowsers from './unsupportedBrowsers.js';

if (unsupportedBrowsers.test(navigator.userAgent)) {
alert('Your browser is unsupported.');
Expand Down
50 changes: 25 additions & 25 deletions examples/buildDemo.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {
getUserAgentRegExps,
getUserAgentRegExp
getUserAgentRegexes,
getUserAgentRegex
} from '../dist/index.js'

function renderStyles() {
Expand Down Expand Up @@ -56,12 +56,12 @@ th, td {
}

function renderScript() {
const modernBrowsers = getUserAgentRegExp({
const modernBrowsers = getUserAgentRegex({
browsers: 'last 2 versions and last 1 year',
allowHigherVersions: true,
allowZeroSubverions: true
})
const actualBrowsers = getUserAgentRegExp({
const actualBrowsers = getUserAgentRegex({
browsers: 'last 2 years and not last 2 versions',
allowHigherVersions: true,
allowZeroSubverions: true
Expand Down Expand Up @@ -122,33 +122,33 @@ function renderHtml(body) {
</html>`
}

function renderUserAgentRegExp({
function renderUserAgentRegex({
family,
sourceRegExpString,
regExpString,
sourceRegexString,
regexString,
requestVersionsStrings,
resultFixedVersion,
resultMinVersion,
resultMaxVersion
version,
minVersion,
maxVersion
}, query) {
let regExpBrowsersVersion = ''
let regexBrowsersVersion = ''

if (resultMinVersion) {
regExpBrowsersVersion = resultMinVersion.join('.')
if (minVersion) {
regexBrowsersVersion = minVersion.join('.')
} else {
regExpBrowsersVersion = '...'
regexBrowsersVersion = '...'
}

regExpBrowsersVersion += ' - '
regexBrowsersVersion += ' - '

if (resultMaxVersion) {
regExpBrowsersVersion += resultMaxVersion.join('.')
if (maxVersion) {
regexBrowsersVersion += maxVersion.join('.')
} else {
regExpBrowsersVersion += '...'
regexBrowsersVersion += '...'
}

return `<li>
<input type="checkbox" onclick="return false" readonly data-for-query="${query}" data-regexp="${regExpString.replace(/([^\\])"/g, '$1\\"')}">
<input type="checkbox" onclick="return false" readonly data-for-query="${query}" data-regex="${regexString.replace(/([^\\])"/g, '$1\\"')}">
<table>
<tr>
<th>Family:</th><td>${family}</td>
Expand All @@ -157,23 +157,23 @@ function renderUserAgentRegExp({
<th>Versions:</th><td>${requestVersionsStrings.join(' ')}</td>
</tr>
<tr>
<th>Source RegExp:</th><td><pre>${sourceRegExpString}</pre></td>
<th>Source regex:</th><td><pre>${sourceRegexString}</pre></td>
</tr>
<tr>
<th>Source RegExp fixed version:</th><td>${resultFixedVersion ? resultFixedVersion.join('.') : '...'}</td>
<th>Source regex fixed version:</th><td>${version ? version.join('.') : '...'}</td>
</tr>
<tr>
<th>Source RegExp browsers versions:</th><td>${regExpBrowsersVersion}</td>
<th>Source regex browsers versions:</th><td>${regexBrowsersVersion}</td>
</tr>
<tr>
<th>Versioned RegExp:</th><td><pre>${regExpString}</pre></td>
<th>Versioned regex:</th><td><pre>${regexString}</pre></td>
</tr>
</table>
</li>`
}

function renderQuery(query) {
const result = getUserAgentRegExps({
const result = getUserAgentRegexes({
browsers: query,
allowHigherVersions: true,
allowZeroSubverions: true
Expand All @@ -185,7 +185,7 @@ function renderQuery(query) {
<pre>${query}</pre>
</h2>
<ul>
${result.map(_ => renderUserAgentRegExp(_, query)).join('\n')}
${result.map(_ => renderUserAgentRegex(_, query)).join('\n')}
</ul>
</div>`
}
Expand Down
5 changes: 0 additions & 5 deletions examples/demojs/index.old.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/* eslint-disable */
function forEach(elements, handler) {

for (var i = 0, len = elements.length; i < len; i++) {
handler(elements[i]);
}
}

function findByAttribute(attribute, value) {

var hasValue = typeof value !== 'undefined';

if (typeof document.querySelectorAll === 'function') {
Expand All @@ -21,7 +19,6 @@ function findByAttribute(attribute, value) {
var result = [];

forEach(document.all, function (element) {

if (!hasValue && element.hasAttribute(attribute)
|| hasValue && element.getAttribute(attribute) === value
) {
Expand All @@ -35,14 +32,12 @@ function findByAttribute(attribute, value) {
document.getElementById('useragent').innerText = navigator.userAgent;

forEach(findByAttribute('data-query'), function (input) {

var queryDiv = input.parentElement.parentElement;
var queriesDiv = queryDiv.parentElement;
var query = input.getAttribute('data-query');
var some = false;

forEach(findByAttribute('data-for-query', query), function (input) {

var li = input.parentElement;
var ul = li.parentElement;
var checked = new RegExp(input.getAttribute('data-regexp')).test(navigator.userAgent);
Expand Down
9 changes: 4 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
"build": "run -p [ rollup -c ] emitDeclarations",
"lint": "eslint './*{js,ts}' './src/**/*.{js,ts}' './examples/**/*.{js,ts}'",
"test:unit": "vitest run --coverage",
"test:unit:watch": "vitest watch",
"test:size": "size-limit",
"test": "run -p lint test:unit",
"build:demo": "node examples/buildDemo > ./docs/demo.html && cp -R examples/demojs/ docs/demojs/",
Expand All @@ -59,10 +60,10 @@
"browserslist": ">=4.0.0"
},
"dependencies": {
"argue-cli": "^1.2.0",
"chalk": "^4.0.0",
"argue-cli": "^2.1.0",
"easy-table": "^1.1.1",
"useragent": "^2.3.0"
"picocolors": "^1.0.0",
"ua-regexes-lite": "^1.1.1"
},
"devDependencies": {
"@commitlint/cli": "^17.1.2",
Expand All @@ -78,7 +79,6 @@
"@types/node": "^18.8.4",
"@vitest/coverage-c8": "^0.24.1",
"browserslist": "^4.21.4",
"browserslist-useragent": "^3.0.0",
"clean-publish": "^4.0.1",
"commitizen": "^4.2.5",
"del-cli": "^4.0.1",
Expand All @@ -92,7 +92,6 @@
"size-limit": "^8.1.0",
"standard-version": "^9.5.0",
"typescript": "^4.8.4",
"user-agents": "^1.0.213",
"vite": "^3.1.7",
"vitest": "^0.24.1"
}
Expand Down
Loading