Skip to content

Commit 332b7d8

Browse files
authored
refactor: rename js api, ua-regexes-lite instead of useragents (#1454)
New naming, new regexes. BREAKING CHANGE: regexp -> regex in JS API naming, new regexes from ua-regexes-lite
1 parent 4bcff45 commit 332b7d8

67 files changed

Lines changed: 1446 additions & 2193 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clean-publish

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{
22
"withoutPublish": true,
3-
"tempDir": "package",
4-
"files": ["**/*.spec.d.ts", "**/*.spec.d.ts.map"]
3+
"tempDir": "package"
54
}

.eslintrc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
},
1313
"parserOptions": {
1414
"tsconfigRootDir": "./",
15-
"project": ["./tsconfig.json"]
15+
"project": ["./tsconfig.json", "./test/tsconfig.json"]
1616
},
1717
"rules": {
1818
"@typescript-eslint/no-magic-numbers": "off",
1919
"@typescript-eslint/no-unsafe-argument": "off",
20+
"@typescript-eslint/no-misused-promises": "off",
2021
"array-element-newline": "off",
2122
"prefer-destructuring": "off"
2223
},

examples/EXAMPLES.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,23 @@ not dead
1414
```json
1515
{
1616
"scripts": {
17-
"supportedBrowsers": "echo \"module.exports = $(browserslist-useragent-regexp --allowHigherVersions);\" > supportedBrowsers.js"
17+
"supportedBrowsers": "echo \"export default $(browserslist-useragent-regexp --allowHigherVersions);\" > supportedBrowsers.js"
1818
}
1919
}
2020
```
2121

22-
3) Run this script, to compile RegExp:
22+
3) Run this script, to compile regex:
2323

2424
```bash
2525
npm run supportedBrowsers
2626
# or
2727
yarn supportedBrowsers
2828
```
2929

30-
4) Import RegExp from created file:
30+
4) Import regex from created file:
3131

3232
```js
33-
const supportedBrowsers = require('./supportedBrowsers');
33+
import supportedBrowsers from './supportedBrowsers.js';
3434

3535
if (supportedBrowsers.test(navigator.userAgent)) {
3636
alert('Your browser is supported.');
@@ -55,23 +55,23 @@ dead
5555
```json
5656
{
5757
"scripts": {
58-
"supportedBrowsers": "echo \"module.exports = $(BROWSERSLIST_ENV=unsupported browserslist-useragent-regexp);\" > supportedBrowsers.js"
58+
"supportedBrowsers": "echo \"export default $(BROWSERSLIST_ENV=unsupported browserslist-useragent-regexp);\" > supportedBrowsers.js"
5959
}
6060
}
6161
```
6262

63-
3) Run this script, to compile RegExp:
63+
3) Run this script, to compile regex:
6464

6565
```bash
6666
npm run supportedBrowsers
6767
# or
6868
yarn supportedBrowsers
6969
```
7070

71-
4) Import RegExp from created file:
71+
4) Import regex from created file:
7272

7373
```js
74-
const unsupportedBrowsers = require('./unsupportedBrowsers');
74+
import unsupportedBrowsers from './unsupportedBrowsers.js';
7575

7676
if (unsupportedBrowsers.test(navigator.userAgent)) {
7777
alert('Your browser is unsupported.');

examples/buildDemo.js

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {
2-
getUserAgentRegExps,
3-
getUserAgentRegExp
2+
getUserAgentRegexes,
3+
getUserAgentRegex
44
} from '../dist/index.js'
55

66
function renderStyles() {
@@ -56,12 +56,12 @@ th, td {
5656
}
5757

5858
function renderScript() {
59-
const modernBrowsers = getUserAgentRegExp({
59+
const modernBrowsers = getUserAgentRegex({
6060
browsers: 'last 2 versions and last 1 year',
6161
allowHigherVersions: true,
6262
allowZeroSubverions: true
6363
})
64-
const actualBrowsers = getUserAgentRegExp({
64+
const actualBrowsers = getUserAgentRegex({
6565
browsers: 'last 2 years and not last 2 versions',
6666
allowHigherVersions: true,
6767
allowZeroSubverions: true
@@ -122,33 +122,33 @@ function renderHtml(body) {
122122
</html>`
123123
}
124124

125-
function renderUserAgentRegExp({
125+
function renderUserAgentRegex({
126126
family,
127-
sourceRegExpString,
128-
regExpString,
127+
sourceRegexString,
128+
regexString,
129129
requestVersionsStrings,
130-
resultFixedVersion,
131-
resultMinVersion,
132-
resultMaxVersion
130+
version,
131+
minVersion,
132+
maxVersion
133133
}, query) {
134-
let regExpBrowsersVersion = ''
134+
let regexBrowsersVersion = ''
135135

136-
if (resultMinVersion) {
137-
regExpBrowsersVersion = resultMinVersion.join('.')
136+
if (minVersion) {
137+
regexBrowsersVersion = minVersion.join('.')
138138
} else {
139-
regExpBrowsersVersion = '...'
139+
regexBrowsersVersion = '...'
140140
}
141141

142-
regExpBrowsersVersion += ' - '
142+
regexBrowsersVersion += ' - '
143143

144-
if (resultMaxVersion) {
145-
regExpBrowsersVersion += resultMaxVersion.join('.')
144+
if (maxVersion) {
145+
regexBrowsersVersion += maxVersion.join('.')
146146
} else {
147-
regExpBrowsersVersion += '...'
147+
regexBrowsersVersion += '...'
148148
}
149149

150150
return `<li>
151-
<input type="checkbox" onclick="return false" readonly data-for-query="${query}" data-regexp="${regExpString.replace(/([^\\])"/g, '$1\\"')}">
151+
<input type="checkbox" onclick="return false" readonly data-for-query="${query}" data-regex="${regexString.replace(/([^\\])"/g, '$1\\"')}">
152152
<table>
153153
<tr>
154154
<th>Family:</th><td>${family}</td>
@@ -157,23 +157,23 @@ function renderUserAgentRegExp({
157157
<th>Versions:</th><td>${requestVersionsStrings.join(' ')}</td>
158158
</tr>
159159
<tr>
160-
<th>Source RegExp:</th><td><pre>${sourceRegExpString}</pre></td>
160+
<th>Source regex:</th><td><pre>${sourceRegexString}</pre></td>
161161
</tr>
162162
<tr>
163-
<th>Source RegExp fixed version:</th><td>${resultFixedVersion ? resultFixedVersion.join('.') : '...'}</td>
163+
<th>Source regex fixed version:</th><td>${version ? version.join('.') : '...'}</td>
164164
</tr>
165165
<tr>
166-
<th>Source RegExp browsers versions:</th><td>${regExpBrowsersVersion}</td>
166+
<th>Source regex browsers versions:</th><td>${regexBrowsersVersion}</td>
167167
</tr>
168168
<tr>
169-
<th>Versioned RegExp:</th><td><pre>${regExpString}</pre></td>
169+
<th>Versioned regex:</th><td><pre>${regexString}</pre></td>
170170
</tr>
171171
</table>
172172
</li>`
173173
}
174174

175175
function renderQuery(query) {
176-
const result = getUserAgentRegExps({
176+
const result = getUserAgentRegexes({
177177
browsers: query,
178178
allowHigherVersions: true,
179179
allowZeroSubverions: true
@@ -185,7 +185,7 @@ function renderQuery(query) {
185185
<pre>${query}</pre>
186186
</h2>
187187
<ul>
188-
${result.map(_ => renderUserAgentRegExp(_, query)).join('\n')}
188+
${result.map(_ => renderUserAgentRegex(_, query)).join('\n')}
189189
</ul>
190190
</div>`
191191
}

examples/demojs/index.old.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/* eslint-disable */
22
function forEach(elements, handler) {
3-
43
for (var i = 0, len = elements.length; i < len; i++) {
54
handler(elements[i]);
65
}
76
}
87

98
function findByAttribute(attribute, value) {
10-
119
var hasValue = typeof value !== 'undefined';
1210

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

2321
forEach(document.all, function (element) {
24-
2522
if (!hasValue && element.hasAttribute(attribute)
2623
|| hasValue && element.getAttribute(attribute) === value
2724
) {
@@ -35,14 +32,12 @@ function findByAttribute(attribute, value) {
3532
document.getElementById('useragent').innerText = navigator.userAgent;
3633

3734
forEach(findByAttribute('data-query'), function (input) {
38-
3935
var queryDiv = input.parentElement.parentElement;
4036
var queriesDiv = queryDiv.parentElement;
4137
var query = input.getAttribute('data-query');
4238
var some = false;
4339

4440
forEach(findByAttribute('data-for-query', query), function (input) {
45-
4641
var li = input.parentElement;
4742
var ul = li.parentElement;
4843
var checked = new RegExp(input.getAttribute('data-regexp')).test(navigator.userAgent);

package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"build": "run -p [ rollup -c ] emitDeclarations",
4646
"lint": "eslint './*{js,ts}' './src/**/*.{js,ts}' './examples/**/*.{js,ts}'",
4747
"test:unit": "vitest run --coverage",
48+
"test:unit:watch": "vitest watch",
4849
"test:size": "size-limit",
4950
"test": "run -p lint test:unit",
5051
"build:demo": "node examples/buildDemo > ./docs/demo.html && cp -R examples/demojs/ docs/demojs/",
@@ -59,10 +60,10 @@
5960
"browserslist": ">=4.0.0"
6061
},
6162
"dependencies": {
62-
"argue-cli": "^1.2.0",
63-
"chalk": "^4.0.0",
63+
"argue-cli": "^2.1.0",
6464
"easy-table": "^1.1.1",
65-
"useragent": "^2.3.0"
65+
"picocolors": "^1.0.0",
66+
"ua-regexes-lite": "^1.1.1"
6667
},
6768
"devDependencies": {
6869
"@commitlint/cli": "^17.1.2",
@@ -78,7 +79,6 @@
7879
"@types/node": "^18.8.4",
7980
"@vitest/coverage-c8": "^0.24.1",
8081
"browserslist": "^4.21.4",
81-
"browserslist-useragent": "^3.0.0",
8282
"clean-publish": "^4.0.1",
8383
"commitizen": "^4.2.5",
8484
"del-cli": "^4.0.1",
@@ -92,7 +92,6 @@
9292
"size-limit": "^8.1.0",
9393
"standard-version": "^9.5.0",
9494
"typescript": "^4.8.4",
95-
"user-agents": "^1.0.213",
9695
"vite": "^3.1.7",
9796
"vitest": "^0.24.1"
9897
}

0 commit comments

Comments
 (0)