@bhsd/common 0.6.5 → 0.6.7

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/dist/index.js CHANGED
@@ -42,8 +42,15 @@ const normalizeTitle = (title) => {
42
42
  return /[<>[\]|{}]/u.test(decoded) ? decoded : decodeHTML(decoded);
43
43
  };
44
44
  const numToHex = (d) => Math.round(d * 255).toString(16).padStart(2, "0");
45
+ const regex = /* @__PURE__ */ (() => {
46
+ const hexColor = String.raw`#(?:[\da-f]{3,4}|(?:[\da-f]{2}){3,4})(?![\p{L}\d_])`, rgbValue = String.raw`(?:\d*\.)?\d+%?`, hue = String.raw`(?:\d*\.)?\d+(?:deg|grad|rad|turn)?`, rgbColor = String.raw`rgba?\(\s*(?:${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s+`)}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s*,\s*`)}(?:\s*,\s*${rgbValue})?`})\s*\)`, hslColor = String.raw`hsla?\(\s*(?:${String.raw`${hue}\s+${rgbValue}\s+${rgbValue}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${hue}${String.raw`\s*,\s*(?:\d*\.)?\d+%`.repeat(2)}(?:\s*,\s*${rgbValue})?`})\s*\)`;
47
+ return {
48
+ full: new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor}|${hslColor})`, "giu"),
49
+ rgb: new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor})`, "giu")
50
+ };
51
+ })();
45
52
  const splitColors = (str, hsl = true) => {
46
- const hexColor = String.raw`#(?:[\da-f]{3,4}|(?:[\da-f]{2}){3,4})(?![\p{L}\d_])`, rgbValue = String.raw`(?:\d*\.)?\d+%?`, hue = String.raw`(?:\d*\.)?\d+(?:deg|grad|rad|turn)?`, rgbColor = String.raw`rgba?\(\s*(?:${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s+`)}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s*,\s*`)}(?:\s*,\s*${rgbValue})?`})\s*\)`, hslColor = String.raw`hsla?\(\s*(?:${String.raw`${hue}\s+${rgbValue}\s+${rgbValue}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${hue}${String.raw`\s*,\s*(?:\d*\.)?\d+%`.repeat(2)}(?:\s*,\s*${rgbValue})?`})\s*\)`, reFull = new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor}|${hslColor})`, "giu"), reRGB = new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor})`, "giu"), pieces = [], re = hsl ? reFull : reRGB;
53
+ const pieces = [], re = regex[hsl ? "full" : "rgb"];
47
54
  re.lastIndex = 0;
48
55
  let mt = re.exec(str), lastIndex = 0;
49
56
  while (mt) {
@@ -60,30 +67,38 @@ const splitColors = (str, hsl = true) => {
60
67
  }
61
68
  return pieces;
62
69
  };
63
- const loadScript = (src, globalConst, amd) => new Promise((resolve) => {
64
- const path = `${CDN}/${src}`;
65
- let obj = globalThis;
66
- for (const prop of globalConst.split(".")) {
67
- obj = obj?.[prop];
70
+ const loading = /* @__PURE__ */ new Map();
71
+ const loadScript = (src, globalConst, amd) => {
72
+ if (loading.has(src)) {
73
+ return loading.get(src);
68
74
  }
69
- if (obj) {
70
- resolve();
71
- } else if (amd && typeof define === "function" && "amd" in define) {
72
- const requirejs = globalThis.require;
73
- requirejs.config({ paths: { [globalConst]: path } });
74
- requirejs([globalConst], (exports) => {
75
- Object.assign(globalThis, { [globalConst]: exports });
76
- resolve();
77
- });
78
- } else {
79
- const script = document.createElement("script");
80
- script.src = path;
81
- script.onload = () => {
75
+ const promise = new Promise((resolve) => {
76
+ const path = `${CDN}/${src}`;
77
+ let obj = globalThis;
78
+ for (const prop of globalConst.split(".")) {
79
+ obj = obj?.[prop];
80
+ }
81
+ if (obj) {
82
82
  resolve();
83
- };
84
- document.head.append(script);
85
- }
86
- });
83
+ } else if (amd && typeof define === "function" && "amd" in define) {
84
+ const requirejs = globalThis.require;
85
+ requirejs.config({ paths: { [globalConst]: path } });
86
+ requirejs([globalConst], (exports) => {
87
+ Object.assign(globalThis, { [globalConst]: exports });
88
+ resolve();
89
+ });
90
+ } else {
91
+ const script = document.createElement("script");
92
+ script.src = path;
93
+ script.onload = () => {
94
+ resolve();
95
+ };
96
+ document.head.append(script);
97
+ }
98
+ });
99
+ loading.set(src, promise);
100
+ return promise;
101
+ };
87
102
  const getObject = (key) => JSON.parse(String(localStorage.getItem(key)));
88
103
  const setObject = (key, value) => {
89
104
  localStorage.setItem(key, JSON.stringify(value));
package/dist/index.mjs CHANGED
@@ -10,8 +10,15 @@ const normalizeTitle = (title) => {
10
10
  return /[<>[\]|{}]/u.test(decoded) ? decoded : decodeHTML(decoded);
11
11
  };
12
12
  const numToHex = (d) => Math.round(d * 255).toString(16).padStart(2, "0");
13
+ const regex = /* @__PURE__ */ (() => {
14
+ const hexColor = String.raw`#(?:[\da-f]{3,4}|(?:[\da-f]{2}){3,4})(?![\p{L}\d_])`, rgbValue = String.raw`(?:\d*\.)?\d+%?`, hue = String.raw`(?:\d*\.)?\d+(?:deg|grad|rad|turn)?`, rgbColor = String.raw`rgba?\(\s*(?:${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s+`)}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s*,\s*`)}(?:\s*,\s*${rgbValue})?`})\s*\)`, hslColor = String.raw`hsla?\(\s*(?:${String.raw`${hue}\s+${rgbValue}\s+${rgbValue}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${hue}${String.raw`\s*,\s*(?:\d*\.)?\d+%`.repeat(2)}(?:\s*,\s*${rgbValue})?`})\s*\)`;
15
+ return {
16
+ full: new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor}|${hslColor})`, "giu"),
17
+ rgb: new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor})`, "giu")
18
+ };
19
+ })();
13
20
  const splitColors = (str, hsl = true) => {
14
- const hexColor = String.raw`#(?:[\da-f]{3,4}|(?:[\da-f]{2}){3,4})(?![\p{L}\d_])`, rgbValue = String.raw`(?:\d*\.)?\d+%?`, hue = String.raw`(?:\d*\.)?\d+(?:deg|grad|rad|turn)?`, rgbColor = String.raw`rgba?\(\s*(?:${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s+`)}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${new Array(3).fill(rgbValue).join(String.raw`\s*,\s*`)}(?:\s*,\s*${rgbValue})?`})\s*\)`, hslColor = String.raw`hsla?\(\s*(?:${String.raw`${hue}\s+${rgbValue}\s+${rgbValue}(?:\s*\/\s*${rgbValue})?`}|${String.raw`${hue}${String.raw`\s*,\s*(?:\d*\.)?\d+%`.repeat(2)}(?:\s*,\s*${rgbValue})?`})\s*\)`, reFull = new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor}|${hslColor})`, "giu"), reRGB = new RegExp(String.raw`(^|[^\p{L}\d_])(${hexColor}|${rgbColor})`, "giu"), pieces = [], re = hsl ? reFull : reRGB;
21
+ const pieces = [], re = regex[hsl ? "full" : "rgb"];
15
22
  re.lastIndex = 0;
16
23
  let mt = re.exec(str), lastIndex = 0;
17
24
  while (mt) {
@@ -28,30 +35,38 @@ const splitColors = (str, hsl = true) => {
28
35
  }
29
36
  return pieces;
30
37
  };
31
- const loadScript = (src, globalConst, amd) => new Promise((resolve) => {
32
- const path = `${CDN}/${src}`;
33
- let obj = globalThis;
34
- for (const prop of globalConst.split(".")) {
35
- obj = obj?.[prop];
38
+ const loading = /* @__PURE__ */ new Map();
39
+ const loadScript = (src, globalConst, amd) => {
40
+ if (loading.has(src)) {
41
+ return loading.get(src);
36
42
  }
37
- if (obj) {
38
- resolve();
39
- } else if (amd && typeof define === "function" && "amd" in define) {
40
- const requirejs = globalThis.require;
41
- requirejs.config({ paths: { [globalConst]: path } });
42
- requirejs([globalConst], (exports) => {
43
- Object.assign(globalThis, { [globalConst]: exports });
44
- resolve();
45
- });
46
- } else {
47
- const script = document.createElement("script");
48
- script.src = path;
49
- script.onload = () => {
43
+ const promise = new Promise((resolve) => {
44
+ const path = `${CDN}/${src}`;
45
+ let obj = globalThis;
46
+ for (const prop of globalConst.split(".")) {
47
+ obj = obj?.[prop];
48
+ }
49
+ if (obj) {
50
50
  resolve();
51
- };
52
- document.head.append(script);
53
- }
54
- });
51
+ } else if (amd && typeof define === "function" && "amd" in define) {
52
+ const requirejs = globalThis.require;
53
+ requirejs.config({ paths: { [globalConst]: path } });
54
+ requirejs([globalConst], (exports) => {
55
+ Object.assign(globalThis, { [globalConst]: exports });
56
+ resolve();
57
+ });
58
+ } else {
59
+ const script = document.createElement("script");
60
+ script.src = path;
61
+ script.onload = () => {
62
+ resolve();
63
+ };
64
+ document.head.append(script);
65
+ }
66
+ });
67
+ loading.set(src, promise);
68
+ return promise;
69
+ };
55
70
  const getObject = (key) => JSON.parse(String(localStorage.getItem(key)));
56
71
  const setObject = (key, value) => {
57
72
  localStorage.setItem(key, JSON.stringify(value));
package/eslintrc.node.cjs CHANGED
@@ -28,6 +28,12 @@ module.exports = {
28
28
  'n/no-mixed-requires': 2,
29
29
  'n/no-new-require': 2,
30
30
  'n/no-path-concat': 2,
31
+ 'n/no-unsupported-features/node-builtins': [
32
+ 2,
33
+ {
34
+ ignores: ['fetch'],
35
+ },
36
+ ],
31
37
  },
32
38
  settings: {
33
39
  ...config.settings,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bhsd/common",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "license": "MIT",
5
5
  "author": "Bhsd",
6
6
  "files": [