diginext-utils 2.0.41 → 2.1.1

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.
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from "events";
3
+ export default class GameBoi extends EventEmitter {
4
+ #private;
5
+ constructor();
6
+ onConnect(e: GamepadEvent): void;
7
+ onDisconnect(): void;
8
+ gameLoop(): void;
9
+ dispose(): void;
10
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _GameBoi_instances, _GameBoi___onConnect, _GameBoi___onDisconnect, _GameBoi___start, _GameBoi_time, _GameBoi_awake;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const events_1 = __importDefault(require("events"));
19
+ class GameBoi extends events_1.default {
20
+ constructor() {
21
+ super();
22
+ _GameBoi_instances.add(this);
23
+ _GameBoi___onConnect.set(this, void 0);
24
+ _GameBoi___onDisconnect.set(this, void 0);
25
+ _GameBoi___start.set(this, void 0);
26
+ _GameBoi_time.set(this, +new Date());
27
+ __classPrivateFieldGet(this, _GameBoi_instances, "m", _GameBoi_awake).call(this);
28
+ }
29
+ onConnect(e) {
30
+ const gp = navigator.getGamepads()[e.gamepad.index];
31
+ console.log(`Gamepad connected at index ${gp.index}: ${gp.id}. It has ${gp.buttons.length} buttons and ${gp.axes.length} axes.`);
32
+ __classPrivateFieldSet(this, _GameBoi_time, +new Date(), "f");
33
+ this.gameLoop();
34
+ }
35
+ onDisconnect() {
36
+ console.log("onDisconnect");
37
+ window.cancelAnimationFrame(__classPrivateFieldGet(this, _GameBoi___start, "f"));
38
+ }
39
+ gameLoop() {
40
+ const gamepads = navigator.getGamepads();
41
+ if (!gamepads) {
42
+ return;
43
+ }
44
+ const deltaTime = (+new Date() - __classPrivateFieldGet(this, _GameBoi_time, "f")) / 1000;
45
+ const item = gamepads[0];
46
+ item.deltaTime = deltaTime;
47
+ this.emit("update", item);
48
+ __classPrivateFieldSet(this, _GameBoi_time, +new Date(), "f");
49
+ __classPrivateFieldSet(this, _GameBoi___start, requestAnimationFrame(this.gameLoop.bind(this)), "f");
50
+ }
51
+ dispose() {
52
+ //
53
+ this.onDisconnect();
54
+ window.removeEventListener("gamepadconnected", __classPrivateFieldGet(this, _GameBoi___onConnect, "f"));
55
+ window.removeEventListener("gamepaddisconnected", __classPrivateFieldGet(this, _GameBoi___onDisconnect, "f"));
56
+ }
57
+ }
58
+ exports.default = GameBoi;
59
+ _GameBoi___onConnect = new WeakMap(), _GameBoi___onDisconnect = new WeakMap(), _GameBoi___start = new WeakMap(), _GameBoi_time = new WeakMap(), _GameBoi_instances = new WeakSet(), _GameBoi_awake = function _GameBoi_awake() {
60
+ if (typeof window == "undefined")
61
+ return;
62
+ const scope = this;
63
+ __classPrivateFieldSet(this, _GameBoi___onConnect, this.onConnect.bind(this), "f");
64
+ window.addEventListener("gamepadconnected", __classPrivateFieldGet(this, _GameBoi___onConnect, "f"));
65
+ __classPrivateFieldSet(this, _GameBoi___onDisconnect, this.onDisconnect.bind(this), "f");
66
+ window.addEventListener("gamepaddisconnected", __classPrivateFieldGet(this, _GameBoi___onDisconnect, "f"));
67
+ };
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gameboi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAElC,MAAqB,OAAQ,SAAQ,gBAAY;IAChD;QACC,KAAK,EAAE,CAAC;;QAKT,uCAAkB;QAClB,0CAAqB;QACrB,mCAAc;QAEd,wBAAQ,CAAC,IAAI,IAAI,EAAE,EAAC;QAPnB,uBAAA,IAAI,0CAAO,MAAX,IAAI,CAAS,CAAC;IACf,CAAC;IAmBD,SAAS,CAAC,CAAe;QACxB,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAY,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,MAAM,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;QAEjI,uBAAA,IAAI,iBAAS,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED,YAAY;QACX,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3B,MAAc,CAAC,oBAAoB,CAAC,uBAAA,IAAI,wBAAS,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;QACP,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO;SACP;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,uBAAA,IAAI,qBAAM,CAAC,GAAG,IAAI,CAAC;QAEpD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1B,uBAAA,IAAI,iBAAS,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QAEzB,uBAAA,IAAI,oBAAY,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAA,CAAC;IACjE,CAAC;IAED,OAAO;QACN,EAAE;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,uBAAA,IAAI,4BAAa,CAAC,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,uBAAA,IAAI,+BAAgB,CAAC,CAAC;IACzE,CAAC;CACD;AA9DD,0BA8DC;;IAhDC,IAAI,OAAO,MAAM,IAAI,WAAW;QAAE,OAAO;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC;IAEnB,uBAAA,IAAI,wBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAA,CAAC;IAC9C,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,uBAAA,IAAI,4BAAa,CAAC,CAAC;IAE/D,uBAAA,IAAI,2BAAmB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAA,CAAC;IACpD,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,uBAAA,IAAI,+BAAgB,CAAC,CAAC;AACtE,CAAC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isImage = exports.getFileExtension = exports.getFileNameWithExtension = exports.getFileNameWithoutExtension = exports.isLink = exports.getUrlParams = exports.addQueryParam = void 0;
4
- const object_1 = require("../object");
5
4
  var urlRegex = /(https?:\/\/[^\s]+)/g;
6
5
  const addQueryParam = (_url, key, value) => {
7
6
  _url += (_url.split("?")[1] ? "&" : "?") + `${key}=${value}`;
@@ -35,20 +34,17 @@ const isLink = (str) => {
35
34
  };
36
35
  exports.isLink = isLink;
37
36
  const getFileNameWithoutExtension = (url) => {
38
- var _a, _b, _c;
39
- url = ((_c = (_b = (_a = (0, exports.getFileNameWithExtension)(url)) === null || _a === void 0 ? void 0 : _a.split(".")) === null || _b === void 0 ? void 0 : _b.splice(0, 1)) === null || _c === void 0 ? void 0 : _c[0]) || "";
40
- return "";
37
+ var _a, _b;
38
+ return ((_b = (_a = (0, exports.getFileNameWithExtension)(url)) === null || _a === void 0 ? void 0 : _a.split(".")) === null || _b === void 0 ? void 0 : _b[0]) || "";
41
39
  };
42
40
  exports.getFileNameWithoutExtension = getFileNameWithoutExtension;
43
41
  const getFileNameWithExtension = (url) => {
44
- var _a;
42
+ url = url.replaceAll("\\", "/");
45
43
  const _url = decodeURIComponent(url);
46
44
  const m = `${_url.toString().match(/.*\/(.*)$/)}`;
47
- if (m && m.length > 1) {
48
- return ((_a = m[1].split("/").pop()) === null || _a === void 0 ? void 0 : _a.split("?")[0]) || "";
45
+ if (m && m.split(",").length > 1) {
46
+ return m.split(",")[1].replace(/(\?.*)|(\&.*)/, "");
49
47
  }
50
- if (!(0, object_1.isNull)(_url))
51
- return url;
52
48
  return "";
53
49
  };
54
50
  exports.getFileNameWithExtension = getFileNameWithExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/string/url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/string/url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from "events";
3
+ export default class GameBoi extends EventEmitter {
4
+ #private;
5
+ constructor();
6
+ onConnect(e: GamepadEvent): void;
7
+ onDisconnect(): void;
8
+ gameLoop(): void;
9
+ dispose(): void;
10
+ }
@@ -0,0 +1,62 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _GameBoi_instances, _GameBoi___onConnect, _GameBoi___onDisconnect, _GameBoi___start, _GameBoi_time, _GameBoi_awake;
13
+ import EventEmitter from "events";
14
+ export default class GameBoi extends EventEmitter {
15
+ constructor() {
16
+ super();
17
+ _GameBoi_instances.add(this);
18
+ _GameBoi___onConnect.set(this, void 0);
19
+ _GameBoi___onDisconnect.set(this, void 0);
20
+ _GameBoi___start.set(this, void 0);
21
+ _GameBoi_time.set(this, +new Date());
22
+ __classPrivateFieldGet(this, _GameBoi_instances, "m", _GameBoi_awake).call(this);
23
+ }
24
+ onConnect(e) {
25
+ const gp = navigator.getGamepads()[e.gamepad.index];
26
+ console.log(`Gamepad connected at index ${gp.index}: ${gp.id}. It has ${gp.buttons.length} buttons and ${gp.axes.length} axes.`);
27
+ __classPrivateFieldSet(this, _GameBoi_time, +new Date(), "f");
28
+ this.gameLoop();
29
+ }
30
+ onDisconnect() {
31
+ console.log("onDisconnect");
32
+ window.cancelAnimationFrame(__classPrivateFieldGet(this, _GameBoi___start, "f"));
33
+ }
34
+ gameLoop() {
35
+ const gamepads = navigator.getGamepads();
36
+ if (!gamepads) {
37
+ return;
38
+ }
39
+ const deltaTime = (+new Date() - __classPrivateFieldGet(this, _GameBoi_time, "f")) / 1000;
40
+ const item = gamepads[0];
41
+ item.deltaTime = deltaTime;
42
+ this.emit("update", item);
43
+ __classPrivateFieldSet(this, _GameBoi_time, +new Date(), "f");
44
+ __classPrivateFieldSet(this, _GameBoi___start, requestAnimationFrame(this.gameLoop.bind(this)), "f");
45
+ }
46
+ dispose() {
47
+ //
48
+ this.onDisconnect();
49
+ window.removeEventListener("gamepadconnected", __classPrivateFieldGet(this, _GameBoi___onConnect, "f"));
50
+ window.removeEventListener("gamepaddisconnected", __classPrivateFieldGet(this, _GameBoi___onDisconnect, "f"));
51
+ }
52
+ }
53
+ _GameBoi___onConnect = new WeakMap(), _GameBoi___onDisconnect = new WeakMap(), _GameBoi___start = new WeakMap(), _GameBoi_time = new WeakMap(), _GameBoi_instances = new WeakSet(), _GameBoi_awake = function _GameBoi_awake() {
54
+ if (typeof window == "undefined")
55
+ return;
56
+ const scope = this;
57
+ __classPrivateFieldSet(this, _GameBoi___onConnect, this.onConnect.bind(this), "f");
58
+ window.addEventListener("gamepadconnected", __classPrivateFieldGet(this, _GameBoi___onConnect, "f"));
59
+ __classPrivateFieldSet(this, _GameBoi___onDisconnect, this.onDisconnect.bind(this), "f");
60
+ window.addEventListener("gamepaddisconnected", __classPrivateFieldGet(this, _GameBoi___onDisconnect, "f"));
61
+ };
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gameboi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAY;IAChD;QACC,KAAK,EAAE,CAAC;;QAKT,uCAAkB;QAClB,0CAAqB;QACrB,mCAAc;QAEd,wBAAQ,CAAC,IAAI,IAAI,EAAE,EAAC;QAPnB,uBAAA,IAAI,0CAAO,MAAX,IAAI,CAAS,CAAC;IACf,CAAC;IAmBD,SAAS,CAAC,CAAe;QACxB,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAY,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,MAAM,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;QAEjI,uBAAA,IAAI,iBAAS,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED,YAAY;QACX,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3B,MAAc,CAAC,oBAAoB,CAAC,uBAAA,IAAI,wBAAS,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;QACP,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;YACd,OAAO;SACP;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,uBAAA,IAAI,qBAAM,CAAC,GAAG,IAAI,CAAC;QAEpD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1B,uBAAA,IAAI,iBAAS,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QAEzB,uBAAA,IAAI,oBAAY,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAA,CAAC;IACjE,CAAC;IAED,OAAO;QACN,EAAE;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,uBAAA,IAAI,4BAAa,CAAC,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,uBAAA,IAAI,+BAAgB,CAAC,CAAC;IACzE,CAAC;CACD;;IAhDC,IAAI,OAAO,MAAM,IAAI,WAAW;QAAE,OAAO;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC;IAEnB,uBAAA,IAAI,wBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAA,CAAC;IAC9C,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,uBAAA,IAAI,4BAAa,CAAC,CAAC;IAE/D,uBAAA,IAAI,2BAAmB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAA,CAAC;IACpD,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,uBAAA,IAAI,+BAAgB,CAAC,CAAC;AACtE,CAAC"}
package/esm/string/url.js CHANGED
@@ -1,4 +1,3 @@
1
- import { isNull } from "../object";
2
1
  var urlRegex = /(https?:\/\/[^\s]+)/g;
3
2
  export const addQueryParam = (_url, key, value) => {
4
3
  _url += (_url.split("?")[1] ? "&" : "?") + `${key}=${value}`;
@@ -29,19 +28,16 @@ export const isLink = (str) => {
29
28
  return urlRegex.test(str);
30
29
  };
31
30
  export const getFileNameWithoutExtension = (url) => {
32
- var _a, _b, _c;
33
- url = ((_c = (_b = (_a = getFileNameWithExtension(url)) === null || _a === void 0 ? void 0 : _a.split(".")) === null || _b === void 0 ? void 0 : _b.splice(0, 1)) === null || _c === void 0 ? void 0 : _c[0]) || "";
34
- return "";
31
+ var _a, _b;
32
+ return ((_b = (_a = getFileNameWithExtension(url)) === null || _a === void 0 ? void 0 : _a.split(".")) === null || _b === void 0 ? void 0 : _b[0]) || "";
35
33
  };
36
34
  export const getFileNameWithExtension = (url) => {
37
- var _a;
35
+ url = url.replaceAll("\\", "/");
38
36
  const _url = decodeURIComponent(url);
39
37
  const m = `${_url.toString().match(/.*\/(.*)$/)}`;
40
- if (m && m.length > 1) {
41
- return ((_a = m[1].split("/").pop()) === null || _a === void 0 ? void 0 : _a.split("?")[0]) || "";
38
+ if (m && m.split(",").length > 1) {
39
+ return m.split(",")[1].replace(/(\?.*)|(\&.*)/, "");
42
40
  }
43
- if (!isNull(_url))
44
- return url;
45
41
  return "";
46
42
  };
47
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/string/url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/string/url.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "diginext-utils",
3
- "version": "2.0.41",
3
+ "version": "2.1.1",
4
4
  "sideEffects": false,
5
5
  "readme": "README.md",
6
6
  "homepage": "https://wearetopgroup.com",
@@ -0,0 +1,65 @@
1
+ import EventEmitter from "events";
2
+
3
+ export default class GameBoi extends EventEmitter {
4
+ constructor() {
5
+ super();
6
+
7
+ this.#awake();
8
+ }
9
+
10
+ #__onConnect: any;
11
+ #__onDisconnect: any;
12
+ #__start: any;
13
+
14
+ #time = +new Date();
15
+
16
+ #awake() {
17
+ if (typeof window == "undefined") return;
18
+ const scope = this;
19
+
20
+ this.#__onConnect = this.onConnect.bind(this);
21
+ window.addEventListener("gamepadconnected", this.#__onConnect);
22
+
23
+ this.#__onDisconnect = this.onDisconnect.bind(this);
24
+ window.addEventListener("gamepaddisconnected", this.#__onDisconnect);
25
+ }
26
+
27
+ onConnect(e: GamepadEvent) {
28
+ const gp = navigator.getGamepads()[e.gamepad.index] as Gamepad;
29
+ console.log(`Gamepad connected at index ${gp.index}: ${gp.id}. It has ${gp.buttons.length} buttons and ${gp.axes.length} axes.`);
30
+
31
+ this.#time = +new Date();
32
+ this.gameLoop();
33
+ }
34
+
35
+ onDisconnect() {
36
+ console.log("onDisconnect");
37
+ (window as any).cancelAnimationFrame(this.#__start);
38
+ }
39
+
40
+ gameLoop() {
41
+ const gamepads = navigator.getGamepads();
42
+ if (!gamepads) {
43
+ return;
44
+ }
45
+
46
+ const deltaTime = (+new Date() - this.#time) / 1000;
47
+
48
+ const item = gamepads[0] as any;
49
+ item.deltaTime = deltaTime;
50
+
51
+ this.emit("update", item);
52
+
53
+ this.#time = +new Date();
54
+
55
+ this.#__start = requestAnimationFrame(this.gameLoop.bind(this));
56
+ }
57
+
58
+ dispose() {
59
+ //
60
+
61
+ this.onDisconnect();
62
+ window.removeEventListener("gamepadconnected", this.#__onConnect);
63
+ window.removeEventListener("gamepaddisconnected", this.#__onDisconnect);
64
+ }
65
+ }
package/src/string/url.ts CHANGED
@@ -38,22 +38,18 @@ export const isLink = (str: string) => {
38
38
  };
39
39
 
40
40
  export const getFileNameWithoutExtension = (url: string) => {
41
- url = getFileNameWithExtension(url)?.split(".")?.splice(0, 1)?.[0] || "";
42
-
43
- return "";
41
+ return getFileNameWithExtension(url)?.split(".")?.[0] || "";
44
42
  };
45
43
 
46
44
  export const getFileNameWithExtension = (url: string): string => {
45
+ url = url.replaceAll("\\", "/");
47
46
  const _url = decodeURIComponent(url);
48
47
 
49
- const m = `${_url.toString().match(/.*\/(.*)$/)}` as string;
48
+ const m = `${_url.toString().match(/.*\/(.*)$/)}`;
50
49
 
51
- if (m && m.length > 1) {
52
- return m[1].split("/").pop()?.split("?")[0] || "";
50
+ if (m && m.split(",").length > 1) {
51
+ return m.split(",")[1].replace(/(\?.*)|(\&.*)/, "");
53
52
  }
54
-
55
- if (!isNull(_url)) return url;
56
-
57
53
  return "";
58
54
  };
59
55