@bitfiber/utils 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -127
- package/dist/cjs/arr/cnd/cnd.js +12 -4
- package/dist/cjs/arr/cnd/cnd.js.map +1 -1
- package/dist/cjs/arr/fill/fill.js.map +1 -1
- package/dist/cjs/arr/index-by/index-by.js.map +1 -1
- package/dist/cjs/arr/index.js.map +1 -1
- package/dist/cjs/common/copy/copy.js +4 -3
- package/dist/cjs/common/copy/copy.js.map +1 -1
- package/dist/cjs/common/equals/equals.js +2 -2
- package/dist/cjs/common/equals/equals.js.map +1 -1
- package/dist/cjs/common/for-each/for-each.js.map +1 -1
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/common/is/is.js +6 -3
- package/dist/cjs/common/is/is.js.map +1 -1
- package/dist/cjs/common/is-empty/is-empty.js.map +1 -1
- package/dist/cjs/common/to-sorted-string/to-sorted-string.js +11 -9
- package/dist/cjs/common/to-sorted-string/to-sorted-string.js.map +1 -1
- package/dist/cjs/dom/download-file/download-file.js +17 -18
- package/dist/cjs/dom/download-file/download-file.js.map +1 -1
- package/dist/cjs/dom/for-each-elements/for-each-elements.js.map +1 -1
- package/dist/cjs/dom/for-each-nodes/for-each-nodes.js.map +1 -1
- package/dist/cjs/dom/get-offset-from-parent/get-offset-from-parent.js.map +1 -1
- package/dist/cjs/dom/get-styles/get-styles.js.map +1 -1
- package/dist/cjs/dom/set-offset-from-parent/set-offset-from-parent.js +2 -1
- package/dist/cjs/dom/set-offset-from-parent/set-offset-from-parent.js.map +1 -1
- package/dist/cjs/env/get-browser/get-browser.js +36 -8
- package/dist/cjs/env/get-browser/get-browser.js.map +1 -1
- package/dist/cjs/env/get-os/get-os.js +15 -4
- package/dist/cjs/env/get-os/get-os.js.map +1 -1
- package/dist/cjs/env/get-platform/get-platform.js +11 -5
- package/dist/cjs/env/get-platform/get-platform.js.map +1 -1
- package/dist/cjs/env/index.js.map +1 -1
- package/dist/cjs/env/private/private.js +3 -1
- package/dist/cjs/env/private/private.js.map +1 -1
- package/dist/cjs/num/in-range/in-range.js +5 -1
- package/dist/cjs/num/in-range/in-range.js.map +1 -1
- package/dist/cjs/obj/extend/extend.js.map +1 -1
- package/dist/cjs/obj/for-each-obj/for-each-obj.js.map +1 -1
- package/dist/cjs/obj/map-obj/map-obj.js.map +1 -1
- package/dist/cjs/obj/map-obj-to-arr/map-obj-to-arr.js.map +1 -1
- package/dist/esm/arr/cnd/cnd.js +13 -5
- package/dist/esm/arr/cnd/cnd.js.map +1 -1
- package/dist/esm/arr/fill/fill.js.map +1 -1
- package/dist/esm/arr/index-by/index-by.js.map +1 -1
- package/dist/esm/arr/index.js.map +1 -1
- package/dist/esm/common/copy/copy.js +4 -3
- package/dist/esm/common/copy/copy.js.map +1 -1
- package/dist/esm/common/equals/equals.js +2 -2
- package/dist/esm/common/equals/equals.js.map +1 -1
- package/dist/esm/common/for-each/for-each.js +1 -1
- package/dist/esm/common/for-each/for-each.js.map +1 -1
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/common/is/is.js +6 -3
- package/dist/esm/common/is/is.js.map +1 -1
- package/dist/esm/common/is-empty/is-empty.js +1 -1
- package/dist/esm/common/is-empty/is-empty.js.map +1 -1
- package/dist/esm/common/to-sorted-string/to-sorted-string.js +12 -10
- package/dist/esm/common/to-sorted-string/to-sorted-string.js.map +1 -1
- package/dist/esm/dom/download-file/download-file.js +17 -18
- package/dist/esm/dom/download-file/download-file.js.map +1 -1
- package/dist/esm/dom/for-each-elements/for-each-elements.js.map +1 -1
- package/dist/esm/dom/for-each-nodes/for-each-nodes.js.map +1 -1
- package/dist/esm/dom/get-offset-from-parent/get-offset-from-parent.js +1 -1
- package/dist/esm/dom/get-offset-from-parent/get-offset-from-parent.js.map +1 -1
- package/dist/esm/dom/get-styles/get-styles.js.map +1 -1
- package/dist/esm/dom/set-offset-from-parent/set-offset-from-parent.js +2 -1
- package/dist/esm/dom/set-offset-from-parent/set-offset-from-parent.js.map +1 -1
- package/dist/esm/env/get-browser/get-browser.js +36 -8
- package/dist/esm/env/get-browser/get-browser.js.map +1 -1
- package/dist/esm/env/get-os/get-os.js +15 -4
- package/dist/esm/env/get-os/get-os.js.map +1 -1
- package/dist/esm/env/get-platform/get-platform.js +11 -5
- package/dist/esm/env/get-platform/get-platform.js.map +1 -1
- package/dist/esm/env/index.js.map +1 -1
- package/dist/esm/env/private/private.js +3 -1
- package/dist/esm/env/private/private.js.map +1 -1
- package/dist/esm/num/in-range/in-range.js +5 -1
- package/dist/esm/num/in-range/in-range.js.map +1 -1
- package/dist/esm/obj/extend/extend.js.map +1 -1
- package/dist/esm/obj/for-each-obj/for-each-obj.js.map +1 -1
- package/dist/esm/obj/map-obj/map-obj.js.map +1 -1
- package/dist/esm/obj/map-obj-to-arr/map-obj-to-arr.js.map +1 -1
- package/dist/types/arr/cnd/cnd.d.ts.map +1 -1
- package/dist/types/arr/fill/fill.d.ts.map +1 -1
- package/dist/types/arr/index-by/index-by.d.ts.map +1 -1
- package/dist/types/arr/index.d.ts.map +1 -1
- package/dist/types/common/copy/copy.d.ts.map +1 -1
- package/dist/types/common/equals/equals.d.ts.map +1 -1
- package/dist/types/common/for-each/for-each.d.ts.map +1 -1
- package/dist/types/common/index.d.ts.map +1 -1
- package/dist/types/common/is/is.d.ts.map +1 -1
- package/dist/types/common/is-empty/is-empty.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +12 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/dom/download-file/download-file.d.ts +2 -1
- package/dist/types/dom/download-file/download-file.d.ts.map +1 -1
- package/dist/types/dom/for-each-elements/for-each-elements.d.ts.map +1 -1
- package/dist/types/dom/for-each-nodes/for-each-nodes.d.ts.map +1 -1
- package/dist/types/dom/get-offset-from-parent/get-offset-from-parent.d.ts.map +1 -1
- package/dist/types/dom/get-styles/get-styles.d.ts.map +1 -1
- package/dist/types/dom/set-offset-from-parent/set-offset-from-parent.d.ts.map +1 -1
- package/dist/types/env/get-browser/get-browser.d.ts.map +1 -1
- package/dist/types/env/get-os/get-os.d.ts.map +1 -1
- package/dist/types/env/get-platform/get-platform.d.ts.map +1 -1
- package/dist/types/env/index.d.ts.map +1 -1
- package/dist/types/env/private/private.d.ts.map +1 -1
- package/dist/types/env/types.d.ts.map +1 -1
- package/dist/types/num/in-range/in-range.d.ts.map +1 -1
- package/dist/types/obj/extend/extend.d.ts.map +1 -1
- package/dist/types/obj/for-each-obj/for-each-obj.d.ts.map +1 -1
- package/dist/types/obj/map-obj/map-obj.d.ts.map +1 -1
- package/dist/types/obj/map-obj-to-arr/map-obj-to-arr.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/arr/cnd/cnd.ts +21 -8
- package/src/arr/fill/fill.ts +5 -1
- package/src/arr/index-by/index-by.ts +4 -1
- package/src/arr/index.ts +2 -1
- package/src/common/copy/copy.ts +7 -5
- package/src/common/equals/equals.ts +10 -4
- package/src/common/for-each/for-each.ts +8 -2
- package/src/common/index.ts +6 -4
- package/src/common/is/is.ts +6 -5
- package/src/common/is-empty/is-empty.ts +3 -1
- package/src/common/to-sorted-string/to-sorted-string.ts +12 -14
- package/src/common/types.ts +16 -6
- package/src/dom/download-file/download-file.ts +22 -22
- package/src/dom/for-each-elements/for-each-elements.ts +4 -2
- package/src/dom/for-each-nodes/for-each-nodes.ts +4 -1
- package/src/dom/get-offset-from-parent/get-offset-from-parent.ts +7 -2
- package/src/dom/get-styles/get-styles.ts +4 -2
- package/src/dom/set-offset-from-parent/set-offset-from-parent.ts +2 -1
- package/src/env/get-browser/get-browser.ts +36 -8
- package/src/env/get-os/get-os.ts +15 -4
- package/src/env/get-platform/get-platform.ts +11 -5
- package/src/env/index.ts +3 -2
- package/src/env/private/private.ts +3 -1
- package/src/env/types.ts +19 -10
- package/src/num/in-range/in-range.ts +5 -1
- package/src/obj/extend/extend.ts +8 -4
- package/src/obj/for-each-obj/for-each-obj.ts +4 -2
- package/src/obj/map-obj/map-obj.ts +4 -2
- package/src/obj/map-obj-to-arr/map-obj-to-arr.ts +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../../../src/env/private/private.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAcxD,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAMD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAMD,wBAAgB,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,WAAW,UAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../../../src/env/private/private.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAcxD,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAMD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAMD,wBAAgB,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,WAAW,UAAQ,GAAG,OAAO,CA2CnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/env/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnF;;GAEG;AACH,oBAAY,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9E;;GAEG;AACH,oBAAY,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/env/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-range.d.ts","sourceRoot":"","sources":["../../../../src/num/in-range/in-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAC,MAAM,cAAc,CAAC;AAG/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"in-range.d.ts","sourceRoot":"","sources":["../../../../src/num/in-range/in-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAC,MAAM,cAAc,CAAC;AAG/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,GAAG,IAAI,CAoB5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../../src/obj/extend/extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,GAAG,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAGpF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../../src/obj/extend/extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,GAAG,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAGpF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,EACnD,MAAM,EAAE,CAAC,EACT,GAAG,OAAO,EAAE,CAAC,GACZ,CAAC,GAAG,iBAAiB,CAAC,OAAO,OAAO,CAAC,CAEvC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,EACtD,MAAM,EAAE,CAAC,EACT,GAAG,OAAO,EAAE,CAAC,GACZ,CAAC,GAAG,iBAAiB,CAAC,OAAO,OAAO,CAAC,CAEvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-each-obj.d.ts","sourceRoot":"","sources":["../../../../src/obj/for-each-obj/for-each-obj.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAa,UAAU,EAAC,MAAM,cAAc,CAAC;AAGxD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"for-each-obj.d.ts","sourceRoot":"","sources":["../../../../src/obj/for-each-obj/for-each-obj.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAa,UAAU,EAAC,MAAM,cAAc,CAAC;AAGxD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,EACzD,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,GAAG,GACrD,IAAI,CAMN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-obj.d.ts","sourceRoot":"","sources":["../../../../src/obj/map-obj/map-obj.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"map-obj.d.ts","sourceRoot":"","sources":["../../../../src/obj/map-obj/map-obj.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,EACxD,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GACnD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAId"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-obj-to-arr.d.ts","sourceRoot":"","sources":["../../../../src/obj/map-obj-to-arr/map-obj-to-arr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"map-obj-to-arr.d.ts","sourceRoot":"","sources":["../../../../src/obj/map-obj-to-arr/map-obj-to-arr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,EAC7D,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GACnD,CAAC,EAAE,CAIL"}
|
package/package.json
CHANGED
package/src/arr/cnd/cnd.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
BfError, isFunction, isObject, isRegExp, isString, same, equals, isArray,
|
|
3
|
+
} from '../../common';
|
|
2
4
|
import {hasOwn} from '../../obj';
|
|
3
5
|
|
|
4
6
|
/**
|
|
@@ -47,8 +49,8 @@ export type MatchConditionNotEqual = {notEqual: any[]};
|
|
|
47
49
|
* Represents a group of all object condition types
|
|
48
50
|
* Used for the cnd function
|
|
49
51
|
*/
|
|
50
|
-
export type MatchConditionObj = MatchConditionIs | MatchConditionOr | MatchConditionNot
|
|
51
|
-
| MatchConditionOrEqual | MatchConditionNotEqual;
|
|
52
|
+
export type MatchConditionObj = MatchConditionIs | MatchConditionOr | MatchConditionNot
|
|
53
|
+
| MatchConditionEqual | MatchConditionOrEqual | MatchConditionNotEqual;
|
|
52
54
|
|
|
53
55
|
/**
|
|
54
56
|
* Represents a condition that is true if the value of each field matches each field condition
|
|
@@ -122,15 +124,23 @@ export function cnd(conditions: MatchConditions): MatchConditionFn {
|
|
|
122
124
|
} else if ('is' in conditions) {
|
|
123
125
|
return value => same(conditions.is, value);
|
|
124
126
|
} else if ('or' in conditions) {
|
|
125
|
-
return value => (isArray(conditions.or)
|
|
127
|
+
return value => (isArray(conditions.or)
|
|
128
|
+
? conditions.or.some(item => same(item, value))
|
|
129
|
+
: cndErr());
|
|
126
130
|
} else if ('not' in conditions) {
|
|
127
|
-
return value => (isArray(conditions.not)
|
|
131
|
+
return value => (isArray(conditions.not)
|
|
132
|
+
? !conditions.not.some(item => same(item, value))
|
|
133
|
+
: cndErr());
|
|
128
134
|
} else if ('equal' in conditions) {
|
|
129
135
|
return value => fit(conditions.equal, value);
|
|
130
136
|
} else if ('orEqual' in conditions) {
|
|
131
|
-
return value => (isArray(conditions.orEqual)
|
|
137
|
+
return value => (isArray(conditions.orEqual)
|
|
138
|
+
? conditions.orEqual.some(item => fit(item, value))
|
|
139
|
+
: cndErr());
|
|
132
140
|
} else if ('notEqual' in conditions) {
|
|
133
|
-
return value => (isArray(conditions.notEqual)
|
|
141
|
+
return value => (isArray(conditions.notEqual)
|
|
142
|
+
? !conditions.notEqual.some(item => fit(item, value))
|
|
143
|
+
: cndErr());
|
|
134
144
|
} else {
|
|
135
145
|
return obj => {
|
|
136
146
|
if (isObject(obj)) {
|
|
@@ -184,5 +194,8 @@ function fit(condition: any, value: any): boolean {
|
|
|
184
194
|
}
|
|
185
195
|
|
|
186
196
|
function cndErr(): never {
|
|
187
|
-
throw new BfError(
|
|
197
|
+
throw new BfError(
|
|
198
|
+
'"or", "not", "orEqual" and "notEqual" must be an array',
|
|
199
|
+
{code: 'bf_utils_arr_cnd_1'},
|
|
200
|
+
);
|
|
188
201
|
}
|
package/src/arr/fill/fill.ts
CHANGED
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* @param handler - a function that should return a new array item
|
|
6
6
|
* @param offset - offset for the index, which is passed to the handler
|
|
7
7
|
*/
|
|
8
|
-
export function fill<T>(
|
|
8
|
+
export function fill<T>(
|
|
9
|
+
quantity: number,
|
|
10
|
+
handler: (offsetIndex: number, index: number) => T,
|
|
11
|
+
offset = 1,
|
|
12
|
+
): T[] {
|
|
9
13
|
return Array(quantity).fill(null).map((item, index) => handler(index + offset, index));
|
|
10
14
|
}
|
|
@@ -7,7 +7,10 @@ import {isFunction, Obj, Index} from '../../common';
|
|
|
7
7
|
* @param fieldOrFn - the name of the field from which the index value should be taken,
|
|
8
8
|
* or the function that should return the index value
|
|
9
9
|
*/
|
|
10
|
-
export function indexBy<T extends Obj>(
|
|
10
|
+
export function indexBy<T extends Obj>(
|
|
11
|
+
arr: T[],
|
|
12
|
+
fieldOrFn: string | ((item: T) => string),
|
|
13
|
+
): Index<T> {
|
|
11
14
|
const result: Index<T> = {};
|
|
12
15
|
arr.forEach(item => {
|
|
13
16
|
const key = isFunction(fieldOrFn) ? fieldOrFn(item) : item[fieldOrFn];
|
package/src/arr/index.ts
CHANGED
|
@@ -7,5 +7,6 @@ export {diffArr, ArrDiff} from './diff-arr/diff-arr';
|
|
|
7
7
|
export {forEachArr} from './for-each-arr/for-each-arr';
|
|
8
8
|
export {
|
|
9
9
|
cnd, MatchConditionFn, MatchConditionIs, MatchConditionOr, MatchConditionNot, MatchConditionEqual,
|
|
10
|
-
MatchConditionOrEqual, MatchConditionNotEqual, MatchConditionObj, MatchConditionsByFields,
|
|
10
|
+
MatchConditionOrEqual, MatchConditionNotEqual, MatchConditionObj, MatchConditionsByFields,
|
|
11
|
+
MatchConditions,
|
|
11
12
|
} from './cnd/cnd';
|
package/src/common/copy/copy.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
isNumber, isBigInt, isBoolean, isString, isDate, isRegExp, isFunction, isMap, isSet, isObject,
|
|
3
|
-
isBlob, isArrayBuffer, isWindow, isDocument, isFile, isFormData, isPromise,
|
|
2
|
+
isNumber, isBigInt, isBoolean, isString, isDate, isRegExp, isFunction, isMap, isSet, isObject,
|
|
3
|
+
isArray, isTypedArray, isBlob, isArrayBuffer, isWindow, isDocument, isFile, isFormData, isPromise,
|
|
4
|
+
isObservable,
|
|
4
5
|
} from '../';
|
|
5
6
|
import {forEachObj} from '../../obj';
|
|
6
7
|
|
|
@@ -14,7 +15,8 @@ export function copy<T>(value: T): T {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
function _copy(value: any, visited: Map<any, any>): any {
|
|
17
|
-
if (!value || isString(value) || isNumber(value) || isBigInt(value) || isBoolean(value)
|
|
18
|
+
if (!value || isString(value) || isNumber(value) || isBigInt(value) || isBoolean(value)
|
|
19
|
+
|| isFunction(value)) {
|
|
18
20
|
return value;
|
|
19
21
|
} else if (isDate(value)) {
|
|
20
22
|
return new Date(value.getTime());
|
|
@@ -61,8 +63,8 @@ function _copy(value: any, visited: Map<any, any>): any {
|
|
|
61
63
|
} else if (isTypedArray(value)) {
|
|
62
64
|
// @ts-ignore
|
|
63
65
|
return new value.constructor(value.buffer.slice(0), value.byteOffset, value.length);
|
|
64
|
-
} else if (isWindow(value) || isDocument(value) || isFile(value) || isFormData(value)
|
|
65
|
-
|| isObservable(value)) {
|
|
66
|
+
} else if (isWindow(value) || isDocument(value) || isFile(value) || isFormData(value)
|
|
67
|
+
|| isPromise(value) || isObservable(value)) {
|
|
66
68
|
return value;
|
|
67
69
|
} else if (isObject(value)) {
|
|
68
70
|
if (visited.has(value)) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Index, isNaN, isDate, isRegExp, isFunction, isDefined, isMap, isSet, isObject, isArray,
|
|
2
|
+
Index, isNaN, isDate, isRegExp, isFunction, isDefined, isMap, isSet, isObject, isArray,
|
|
3
|
+
isTypedArray,
|
|
3
4
|
} from '../';
|
|
4
5
|
import {hasOwn} from '../../obj';
|
|
5
6
|
|
|
@@ -18,7 +19,12 @@ export function equals(value1: any, value2: any, sortFn?: (a: any, b: any) => nu
|
|
|
18
19
|
return _equals(value1, value2, new Map<any, true>(), sortFn);
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
function _equals(
|
|
22
|
+
function _equals(
|
|
23
|
+
obj1: any,
|
|
24
|
+
obj2: any,
|
|
25
|
+
visited: Map<any, true>,
|
|
26
|
+
sortFn?: (a: any, b: any) => number,
|
|
27
|
+
): boolean {
|
|
22
28
|
if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
|
|
23
29
|
return true;
|
|
24
30
|
} else if (isArray(obj1) || isTypedArray(obj1)) {
|
|
@@ -110,8 +116,8 @@ function _equals(obj1: any, obj2: any, visited: Map<any, true>, sortFn?: (a: any
|
|
|
110
116
|
}
|
|
111
117
|
visited.set(obj1, true);
|
|
112
118
|
|
|
113
|
-
if (!isObject(obj2) || isArray(obj2) || isTypedArray(obj2) || isDate(obj2) || isRegExp(obj2)
|
|
114
|
-
|| isSet(obj2)) {
|
|
119
|
+
if (!isObject(obj2) || isArray(obj2) || isTypedArray(obj2) || isDate(obj2) || isRegExp(obj2)
|
|
120
|
+
|| isMap(obj2) || isSet(obj2)) {
|
|
115
121
|
return false;
|
|
116
122
|
}
|
|
117
123
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
NumStr, BfError, INTERRUPT, isNumber, isFunction, isMap, isSet, isObject, hasIterator,
|
|
3
|
+
} from '../';
|
|
2
4
|
import {forEachArr} from '../../arr';
|
|
3
5
|
import {forEachObj} from '../../obj';
|
|
4
6
|
|
|
@@ -9,7 +11,11 @@ import {forEachObj} from '../../obj';
|
|
|
9
11
|
* @param handler - function called for each item
|
|
10
12
|
* @param reverse - iterates in reverse order if true
|
|
11
13
|
*/
|
|
12
|
-
export function forEach(
|
|
14
|
+
export function forEach(
|
|
15
|
+
obj: any,
|
|
16
|
+
handler: (value: any, key: NumStr, obj: any) => any,
|
|
17
|
+
reverse?: boolean,
|
|
18
|
+
): void {
|
|
13
19
|
if (hasIterator(obj)) {
|
|
14
20
|
if (isMap(obj)) {
|
|
15
21
|
const iterable = Array.from(obj);
|
package/src/common/index.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
export {
|
|
2
|
-
Nullish, NumStr, NumStrSym, Fn, Arr, TypedArr, Obj, Index, ArrObj, UnionToIntersection,
|
|
2
|
+
Nullish, NumStr, NumStrSym, Fn, Arr, TypedArr, Obj, Index, ArrObj, UnionToIntersection,
|
|
3
|
+
ValueUnion, ValueIntersection,
|
|
3
4
|
} from './types';
|
|
4
5
|
export {INTERRUPT} from './interrupt';
|
|
5
6
|
export {BfError, BfErrorOptions} from './error';
|
|
6
7
|
export {stub} from './stub/stub';
|
|
7
8
|
export {
|
|
8
|
-
isNull, isUndefined, isDefined, isNullish, isNaN, isString, isNumber, isBigInt, isBoolean,
|
|
9
|
-
isObject, isArray, isSet, isMap, isDate, isRegExp, isFile, isBlob,
|
|
10
|
-
isPromise, isObservable, isTypedArray,
|
|
9
|
+
isNull, isUndefined, isDefined, isNullish, isNaN, isString, isNumber, isBigInt, isBoolean,
|
|
10
|
+
isSymbol, isFunction, isObject, isArray, isSet, isMap, isDate, isRegExp, isFile, isBlob,
|
|
11
|
+
isFormData, isArrayBuffer, isDocument, isWindow, isPromise, isObservable, isTypedArray,
|
|
12
|
+
isUsualObject,
|
|
11
13
|
} from './is/is';
|
|
12
14
|
export {isEmpty} from './is-empty/is-empty';
|
|
13
15
|
export {same} from './same/same';
|
package/src/common/is/is.ts
CHANGED
|
@@ -198,7 +198,8 @@ export function isWindow(value: any): value is Window {
|
|
|
198
198
|
* @param value - anything
|
|
199
199
|
*/
|
|
200
200
|
export function isPromise(value: any): value is Promise<any> {
|
|
201
|
-
return !!value && (value.constructor === Promise || (isFunction(value.then)
|
|
201
|
+
return !!value && (value.constructor === Promise || (isFunction(value.then)
|
|
202
|
+
&& isFunction(value.catch)));
|
|
202
203
|
}
|
|
203
204
|
|
|
204
205
|
/**
|
|
@@ -237,8 +238,8 @@ export function isTypedArray(value: any): value is TypedArr {
|
|
|
237
238
|
* @param value - anything
|
|
238
239
|
*/
|
|
239
240
|
export function isUsualObject(value: any): value is Obj {
|
|
240
|
-
return isObject(value) && !isArray(value) && !isTypedArray(value) && !isSet(value)
|
|
241
|
-
&& !
|
|
242
|
-
value
|
|
243
|
-
|
|
241
|
+
return isObject(value) && !isArray(value) && !isTypedArray(value) && !isSet(value)
|
|
242
|
+
&& !isMap(value) && !isDate(value) && !isRegExp(value) && !isFile(value) && !isBlob(value)
|
|
243
|
+
&& !isFormData(value) && !isArrayBuffer(value) && !isWindow(value) && !isDocument(value)
|
|
244
|
+
&& !isPromise(value) && !isObservable(value);
|
|
244
245
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
isNumber, isBigInt, isBoolean, isSymbol, isString, isDate, isRegExp, isFunction, isDefined,
|
|
3
|
+
} from '../';
|
|
2
4
|
import {hasOwn} from '../../obj';
|
|
3
5
|
|
|
4
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {isDate, isRegExp, isFunction, isMap, isSet, isObject, isArray, isTypedArray} from '../';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Converts any value to a sorted string.
|
|
@@ -7,18 +7,17 @@ import {NumStr, isString, isDate, isRegExp, isFunction, isMap, isSet, isObject,
|
|
|
7
7
|
* @param value - anything
|
|
8
8
|
*/
|
|
9
9
|
export function toSortedString(value: any): string {
|
|
10
|
-
return _toSortedString(value,
|
|
10
|
+
return _toSortedString(value, new Map<any, true>());
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
function _toSortedString(value: any,
|
|
14
|
-
let str =
|
|
13
|
+
function _toSortedString(value: any, visited: Map<any, true>): string {
|
|
14
|
+
let str = '';
|
|
15
15
|
|
|
16
16
|
if (isMap(value) || isSet(value)) {
|
|
17
17
|
if (visited.has(value)) {
|
|
18
18
|
return '';
|
|
19
19
|
}
|
|
20
20
|
visited.set(value, true);
|
|
21
|
-
|
|
22
21
|
value = Array.from(value);
|
|
23
22
|
}
|
|
24
23
|
|
|
@@ -26,13 +25,13 @@ function _toSortedString(value: any, index: number | null, field: NumStr, visite
|
|
|
26
25
|
if (visited.has(value)) {
|
|
27
26
|
return '';
|
|
28
27
|
}
|
|
28
|
+
const arr: string[] = [];
|
|
29
29
|
visited.set(value, true);
|
|
30
|
-
|
|
31
30
|
str += '[';
|
|
32
|
-
value.
|
|
33
|
-
|
|
34
|
-
str += _toSortedString(value, i, i, visited);
|
|
31
|
+
value.forEach(item => {
|
|
32
|
+
arr.push(_toSortedString(item, visited));
|
|
35
33
|
});
|
|
34
|
+
str = arr.sort().reduce((acc, item, i) => `${acc}${item}${i < arr.length - 1 ? ',' : ''}`, str);
|
|
36
35
|
str += ']';
|
|
37
36
|
} else if (isFunction(value)) {
|
|
38
37
|
str += value.toString();
|
|
@@ -40,14 +39,13 @@ function _toSortedString(value: any, index: number | null, field: NumStr, visite
|
|
|
40
39
|
if (visited.has(value)) {
|
|
41
40
|
return '';
|
|
42
41
|
}
|
|
42
|
+
const fields = Object.keys(value).sort();
|
|
43
43
|
visited.set(value, true);
|
|
44
|
-
|
|
45
|
-
const fields = Object.keys(value);
|
|
46
|
-
|
|
47
44
|
str += '{';
|
|
48
|
-
fields.sort();
|
|
49
45
|
fields.forEach((field, i) => {
|
|
50
|
-
str += _toSortedString(value[field], i
|
|
46
|
+
str += `${field}:${_toSortedString(value[field], visited)}${i < fields.length - 1
|
|
47
|
+
? ','
|
|
48
|
+
: ''}`;
|
|
51
49
|
});
|
|
52
50
|
str += '}';
|
|
53
51
|
} else {
|
package/src/common/types.ts
CHANGED
|
@@ -26,8 +26,8 @@ export type Arr<T = any> = ReadonlyArray<T> | ArrayLike<T>;
|
|
|
26
26
|
/**
|
|
27
27
|
* Represents all typed array types
|
|
28
28
|
*/
|
|
29
|
-
export type TypedArr = Int8Array | Int16Array | Int32Array | Float32Array | Float64Array
|
|
30
|
-
| Uint8ClampedArray | Uint16Array | Uint32Array | BigInt64Array | BigUint64Array;
|
|
29
|
+
export type TypedArr = Int8Array | Int16Array | Int32Array | Float32Array | Float64Array
|
|
30
|
+
| Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigInt64Array | BigUint64Array;
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Represents any object
|
|
@@ -48,17 +48,27 @@ export interface Index<T = any> {
|
|
|
48
48
|
*/
|
|
49
49
|
export type ArrObj<T = any> = Arr<T> | Obj<T>;
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Returns an object type with fields of any type except the specified type
|
|
53
|
+
*/
|
|
54
|
+
export type OmitType<T, V> = {[K in keyof T as T[K] extends V ? never : K]: T[K]};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Returns the type of object with fields of a certain type
|
|
58
|
+
*/
|
|
59
|
+
export type PickType<T, V> = {[K in keyof T as T[K] extends V ? K : never]: T[K]};
|
|
60
|
+
|
|
51
61
|
/**
|
|
52
62
|
* Converts a type union to a type intersection
|
|
53
63
|
*/
|
|
54
|
-
export type UnionToIntersection<U> = (U extends any
|
|
55
|
-
: never;
|
|
64
|
+
export type UnionToIntersection<U> = (U extends any
|
|
65
|
+
? (x: U) => void : never) extends ((x: infer I) => void) ? I : never;
|
|
56
66
|
|
|
57
67
|
/**
|
|
58
68
|
* Represents the union of object value types or array value types
|
|
59
69
|
*/
|
|
60
|
-
export type ValueUnion<T extends ArrObj, K extends keyof T = keyof T> = T extends ReadonlyArray<any>
|
|
61
|
-
: T extends ArrayLike<any> ? T[number] : T extends object ? T[K] : never;
|
|
70
|
+
export type ValueUnion<T extends ArrObj, K extends keyof T = keyof T> = T extends ReadonlyArray<any>
|
|
71
|
+
? T[number] : T extends ArrayLike<any> ? T[number] : T extends object ? T[K] : never;
|
|
62
72
|
|
|
63
73
|
/**
|
|
64
74
|
* Represents the intersection of object value types or array value types
|
|
@@ -5,27 +5,27 @@ import {getBody, getDocument, getWindow} from '../';
|
|
|
5
5
|
* Creates an offer to download a file from URL in the browser.
|
|
6
6
|
* Returns a promise that returns a blob if the download is successful
|
|
7
7
|
* @param url - file URL
|
|
8
|
+
* @param fetchOptions - fetch options
|
|
8
9
|
*/
|
|
9
|
-
export function downloadFile(url: string): Promise<Blob> {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
});
|
|
10
|
+
export async function downloadFile(url: string, fetchOptions?: RequestInit): Promise<Blob> {
|
|
11
|
+
const res = await fetch(url, fetchOptions);
|
|
12
|
+
if (res.ok) {
|
|
13
|
+
const blob = await res.blob();
|
|
14
|
+
const doc = getDocument();
|
|
15
|
+
const win = getWindow();
|
|
16
|
+
const body = getBody();
|
|
17
|
+
const url = win.URL.createObjectURL(blob);
|
|
18
|
+
const link = doc.createElement('a');
|
|
19
|
+
link.href = url;
|
|
20
|
+
link.download = 'downloaded_file';
|
|
21
|
+
body.appendChild(link);
|
|
22
|
+
link.click();
|
|
23
|
+
body.removeChild(link);
|
|
24
|
+
return blob;
|
|
25
|
+
} else {
|
|
26
|
+
return Promise.reject(new BfError(
|
|
27
|
+
'Network response was not ok',
|
|
28
|
+
{code: 'bf_utils_dom_downloadFile_1'},
|
|
29
|
+
));
|
|
30
|
+
}
|
|
31
31
|
}
|
|
@@ -7,8 +7,10 @@ import {forEach, INTERRUPT} from '../../common';
|
|
|
7
7
|
* @param parent - a parent element
|
|
8
8
|
* @param handler - function called for each element
|
|
9
9
|
*/
|
|
10
|
-
export function forEachElements(
|
|
11
|
-
|
|
10
|
+
export function forEachElements(
|
|
11
|
+
parent: Element,
|
|
12
|
+
handler: (child: Element, index: number, parent: Element) => any,
|
|
13
|
+
): void {
|
|
12
14
|
forEach(parent.children, (child, i) => {
|
|
13
15
|
if (handler(child, <number>i, parent) !== INTERRUPT) {
|
|
14
16
|
forEachElements(child, handler);
|
|
@@ -6,7 +6,10 @@ import {INTERRUPT} from '../../common';
|
|
|
6
6
|
* @param parent - a parent node
|
|
7
7
|
* @param handler - function called for each node (Text, Comment, Element)
|
|
8
8
|
*/
|
|
9
|
-
export function forEachNodes(
|
|
9
|
+
export function forEachNodes(
|
|
10
|
+
parent: Node,
|
|
11
|
+
handler: (child: Node, index: number, parent: Node) => any,
|
|
12
|
+
): void {
|
|
10
13
|
parent.childNodes.forEach((child, i) => {
|
|
11
14
|
if (handler(child, i, parent) !== INTERRUPT) {
|
|
12
15
|
forEachNodes(child, handler);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {BfError, toFloat} from '../../common';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Offset, hasName, getNonStaticParent, getOffsetFromWin, getOffsetFromDoc, getStyle,
|
|
4
|
+
} from '../';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* Returns the offset relative to the closest non-static parent element.
|
|
@@ -11,7 +13,10 @@ export function getOffsetFromParent(element: HTMLElement): Offset {
|
|
|
11
13
|
let parentOffset: Offset;
|
|
12
14
|
|
|
13
15
|
if (hasName(element, 'html') || hasName(element, 'body')) {
|
|
14
|
-
throw new BfError(
|
|
16
|
+
throw new BfError(
|
|
17
|
+
'Element cannot be html or body',
|
|
18
|
+
{code: 'bf_utils_dom_getOffsetFromParent_1'},
|
|
19
|
+
);
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
if (getStyle(element, 'position') === 'fixed') {
|
|
@@ -6,8 +6,10 @@ import {getStyle} from '../';
|
|
|
6
6
|
* @param element - any HTML element
|
|
7
7
|
* @param styleNames - list of certain style names
|
|
8
8
|
*/
|
|
9
|
-
export function getStyles<A extends string[]>(
|
|
10
|
-
|
|
9
|
+
export function getStyles<A extends string[]>(
|
|
10
|
+
element: HTMLElement,
|
|
11
|
+
...styleNames: A
|
|
12
|
+
): {[K in ValueUnion<A>]: string} {
|
|
11
13
|
const styles: {[K in ValueUnion<A>]: string} = <any>{};
|
|
12
14
|
styleNames.forEach(name => (<any>styles)[name] = getStyle(element, name));
|
|
13
15
|
return styles;
|
|
@@ -23,7 +23,8 @@ export function setOffsetFromParent(element: HTMLElement, offset: Partial<TopLef
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
// If top or left is auto, need calculate real top and left relative to a non-static parent
|
|
26
|
-
if ((position === 'absolute' || position === 'fixed')
|
|
26
|
+
if ((position === 'absolute' || position === 'fixed')
|
|
27
|
+
&& (styleTop === 'auto' || styleLeft === 'auto')) {
|
|
27
28
|
const offsetFromParent = getOffsetFromParent(element);
|
|
28
29
|
top = offsetFromParent.top;
|
|
29
30
|
left = offsetFromParent.left;
|
|
@@ -5,14 +5,42 @@ import {getBot, getEnvData} from '../private/private';
|
|
|
5
5
|
let browser: BrowserData | null = null;
|
|
6
6
|
|
|
7
7
|
const browserConditions: EnvCondition[] = [
|
|
8
|
-
['opera', '(?:opera|opr\\/|opios)'],
|
|
9
|
-
['
|
|
10
|
-
['
|
|
11
|
-
['
|
|
12
|
-
['
|
|
13
|
-
'
|
|
14
|
-
|
|
15
|
-
['
|
|
8
|
+
['opera', '(?:opera|opr\\/|opios)'],
|
|
9
|
+
['operaCoast', 'coast\\/'],
|
|
10
|
+
['operaTouch', 'opt\\/'],
|
|
11
|
+
['samsung', 'SamsungBrowser'],
|
|
12
|
+
['mz', 'MZBrowser'],
|
|
13
|
+
['yandex', 'YaBrowser'],
|
|
14
|
+
['uc', 'UcBrowser'],
|
|
15
|
+
['maxthon', '(?:Maxthon|mxios)'],
|
|
16
|
+
['kmeleon', 'k-meleon'],
|
|
17
|
+
['wechat', 'MicroMessenger'],
|
|
18
|
+
['qqLite', 'qqBrowserLite'],
|
|
19
|
+
['qq', 'qqBrowser'],
|
|
20
|
+
['edge', 'edg(?:[ea/]|ios)'],
|
|
21
|
+
['sailfish', 'sailfish\\s?(?:browser)?'],
|
|
22
|
+
['webOS', 'w(?:eb)?[o0]sbrowser'],
|
|
23
|
+
['tizen', 'tizen\\s?(?:browser)?'],
|
|
24
|
+
['miui', 'MiuiBrowser'],
|
|
25
|
+
'silk',
|
|
26
|
+
'phantomjs',
|
|
27
|
+
'slimerjs',
|
|
28
|
+
'qupzilla',
|
|
29
|
+
'electron',
|
|
30
|
+
'whale',
|
|
31
|
+
'focus',
|
|
32
|
+
'swing',
|
|
33
|
+
'epiphany',
|
|
34
|
+
'puffin',
|
|
35
|
+
'sleipnir',
|
|
36
|
+
'vivaldi',
|
|
37
|
+
'seamonkey',
|
|
38
|
+
['playstation4', 'playstation 4'],
|
|
39
|
+
['playstation5', 'playstation 5'],
|
|
40
|
+
['googleSearch', 'GSA'],
|
|
41
|
+
['firefox', '(?:firefox|FxiOS)'],
|
|
42
|
+
['chrome', '(?:chrome|chromium|crios|crmo)'],
|
|
43
|
+
'android',
|
|
16
44
|
['safari', '(?:safari|AppleWebKit)'],
|
|
17
45
|
];
|
|
18
46
|
|
package/src/env/get-os/get-os.ts
CHANGED
|
@@ -5,10 +5,21 @@ import {getBot, getEnvData} from '../private/private';
|
|
|
5
5
|
let os: OSData | null = null;
|
|
6
6
|
|
|
7
7
|
const osConditions: EnvCondition[] = [
|
|
8
|
-
'xbox',
|
|
9
|
-
['
|
|
10
|
-
['
|
|
11
|
-
['
|
|
8
|
+
'xbox',
|
|
9
|
+
['windows', 'Windows (?:NT|XP)'],
|
|
10
|
+
['ios', '(?:iphone|ipad|FxiOS)', 'OS'],
|
|
11
|
+
['macOS', 'Macintosh', 'Mac OS X'],
|
|
12
|
+
['webOS', '(?:web|hpw)[o0]s'],
|
|
13
|
+
'tizen',
|
|
14
|
+
['appleTV', 'apple[\\s_-]?TV', 'OS'],
|
|
15
|
+
['roku', 'Roku[\\w]{0,8}/DVP'],
|
|
16
|
+
['chromeOS', 'CrOS(?: x86_64)?'],
|
|
17
|
+
['playstation4', 'PlayStation 4'],
|
|
18
|
+
['playstation5', 'PlayStation 5'],
|
|
19
|
+
['nintendoSwitch', 'Nintendo Switch'],
|
|
20
|
+
['likeAndroid', 'like android'],
|
|
21
|
+
'android',
|
|
22
|
+
['linux', 'linux', 'rv:'],
|
|
12
23
|
];
|
|
13
24
|
|
|
14
25
|
/**
|