dualsense-ts 2.2.48 → 3.0.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 +9 -2
- package/dist/comparators.d.ts +13 -0
- package/dist/comparators.d.ts.map +1 -0
- package/dist/comparators.js +27 -0
- package/dist/comparators.js.map +1 -0
- package/dist/dualsense.d.ts +10 -1
- package/dist/dualsense.d.ts.map +1 -1
- package/dist/dualsense.js +46 -45
- package/dist/dualsense.js.map +1 -1
- package/dist/elements/analog.d.ts +1 -1
- package/dist/elements/analog.d.ts.map +1 -1
- package/dist/elements/analog.js +13 -3
- package/dist/elements/analog.js.map +1 -1
- package/dist/elements/dpad.d.ts +1 -1
- package/dist/elements/dpad.d.ts.map +1 -1
- package/dist/elements/dpad.js +6 -5
- package/dist/elements/dpad.js.map +1 -1
- package/dist/elements/touch.d.ts +1 -1
- package/dist/elements/touch.d.ts.map +1 -1
- package/dist/elements/touch.js.map +1 -1
- package/dist/elements/touchpad.d.ts +1 -1
- package/dist/elements/touchpad.d.ts.map +1 -1
- package/dist/elements/touchpad.js.map +1 -1
- package/dist/elements/trigger.d.ts.map +1 -1
- package/dist/elements/trigger.js +1 -1
- package/dist/elements/trigger.js.map +1 -1
- package/dist/elements/unisense.d.ts +1 -1
- package/dist/elements/unisense.d.ts.map +1 -1
- package/dist/elements/unisense.js +12 -5
- package/dist/elements/unisense.js.map +1 -1
- package/dist/hid/dualsense_hid.d.ts +16 -58
- package/dist/hid/dualsense_hid.d.ts.map +1 -1
- package/dist/hid/dualsense_hid.js +25 -101
- package/dist/hid/dualsense_hid.js.map +1 -1
- package/dist/hid/hid_provider.d.ts +86 -0
- package/dist/hid/hid_provider.d.ts.map +1 -0
- package/dist/hid/hid_provider.js +45 -0
- package/dist/hid/hid_provider.js.map +1 -0
- package/dist/hid/index.d.ts +4 -1
- package/dist/hid/index.d.ts.map +1 -1
- package/dist/hid/index.js +4 -1
- package/dist/hid/index.js.map +1 -1
- package/dist/hid/node_hid_provider.d.ts +11 -0
- package/dist/hid/node_hid_provider.d.ts.map +1 -0
- package/dist/hid/node_hid_provider.js +97 -0
- package/dist/hid/node_hid_provider.js.map +1 -0
- package/dist/hid/platform_hid_provider.d.ts +4 -0
- package/dist/hid/platform_hid_provider.d.ts.map +1 -0
- package/dist/hid/platform_hid_provider.js +7 -0
- package/dist/hid/platform_hid_provider.js.map +1 -0
- package/dist/hid/web_hid_provider.d.ts +10 -0
- package/dist/hid/web_hid_provider.d.ts.map +1 -0
- package/dist/hid/web_hid_provider.js +102 -0
- package/dist/hid/web_hid_provider.js.map +1 -0
- package/dist/{hid/ids.d.ts → id.d.ts} +6 -2
- package/dist/id.d.ts.map +1 -0
- package/dist/{hid/ids.js → id.js} +1 -1
- package/dist/id.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +63 -45
- package/dist/input.d.ts.map +1 -1
- package/dist/input.js +123 -90
- package/dist/input.js.map +1 -1
- package/package.json +14 -8
- package/src/comparators.ts +26 -0
- package/src/dualsense.ts +61 -58
- package/src/elements/analog.ts +14 -8
- package/src/elements/dpad.ts +7 -6
- package/src/elements/touch.ts +1 -1
- package/src/elements/touchpad.ts +1 -1
- package/src/elements/trigger.ts +1 -1
- package/src/elements/unisense.ts +16 -15
- package/src/hid/dualsense_hid.ts +25 -156
- package/src/hid/{dualsense_hid.spec.ts → hid_provider.spec.ts} +1 -1
- package/src/hid/hid_provider.ts +100 -0
- package/src/hid/index.ts +4 -1
- package/src/hid/node_hid_provider.ts +108 -0
- package/src/hid/platform_hid_provider.ts +4 -0
- package/src/hid/web_hid_provider.ts +116 -0
- package/src/{hid/ids.ts → id.ts} +6 -1
- package/src/index.ts +2 -0
- package/src/input.ts +156 -138
- package/src/readme.spec.ts +6 -8
- package/webpack.config.js +42 -0
- package/dist/hid/ids.d.ts.map +0 -1
- package/dist/hid/ids.js.map +0 -1
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDs for real and virtual controller inputs.
|
|
3
|
+
*/
|
|
1
4
|
export declare const enum InputId {
|
|
2
5
|
Options = "Options",
|
|
3
6
|
Create = "Create",
|
|
@@ -39,6 +42,7 @@ export declare const enum InputId {
|
|
|
39
42
|
GyroZ = "GyroZ",
|
|
40
43
|
AccelX = "AccelX",
|
|
41
44
|
AccelY = "AccelY",
|
|
42
|
-
AccelZ = "AccelZ"
|
|
45
|
+
AccelZ = "AccelZ",
|
|
46
|
+
Unknown = "Unknown"
|
|
43
47
|
}
|
|
44
|
-
//# sourceMappingURL=
|
|
48
|
+
//# sourceMappingURL=id.d.ts.map
|
package/dist/id.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,0BAAkB,OAAO;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;IAEjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IAEjB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IAEf,WAAW,gBAAgB;IAE3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IAErB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IAErB,gBAAgB,OAAO;IACvB,iBAAiB,OAAO;IAExB,WAAW,OAAO;IAClB,YAAY,OAAO;IACnB,iBAAiB,aAAa;IAC9B,kBAAkB,aAAa;IAE/B,UAAU,OAAO;IACjB,WAAW,OAAO;IAElB,WAAW,OAAO;IAClB,WAAW,OAAO;IAClB,YAAY,OAAO;IACnB,YAAY,OAAO;IAEnB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IAEf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IAGjB,OAAO,YAAY;CACpB"}
|
package/dist/id.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./comparators"), exports);
|
|
20
21
|
__exportStar(require("./dualsense"), exports);
|
|
22
|
+
__exportStar(require("./id"), exports);
|
|
21
23
|
__exportStar(require("./input"), exports);
|
|
22
24
|
__exportStar(require("./math"), exports);
|
|
23
25
|
__exportStar(require("./elements/index"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,mDAAiC;AACjC,kDAAgC;AAChC,8CAA4B;AAC5B,qDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,8CAA4B;AAC5B,uCAAqB;AACrB,0CAAwB;AACxB,yCAAuB;AACvB,mDAAiC;AACjC,kDAAgC;AAChC,8CAA4B;AAC5B,qDAAmC"}
|
package/dist/input.d.ts
CHANGED
|
@@ -1,43 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { EventEmitter } from "events";
|
|
4
|
-
import { inspect } from "util";
|
|
1
|
+
import { InputId } from "./id";
|
|
2
|
+
export { InputId } from "./id";
|
|
5
3
|
export interface InputParams {
|
|
6
4
|
name?: string;
|
|
7
5
|
icon?: string;
|
|
8
6
|
threshold?: number;
|
|
9
|
-
parent?: Input<unknown>;
|
|
10
7
|
}
|
|
11
|
-
declare
|
|
12
|
-
declare
|
|
13
|
-
declare
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
declare const
|
|
8
|
+
export declare type InputChangeType = "change" | "press" | "release";
|
|
9
|
+
export declare type InputEventType = InputChangeType | "input";
|
|
10
|
+
export declare type InputCallback<Instance> = (input: Instance, changed: Instance | Input<unknown>) => unknown | Promise<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* Private utilities
|
|
13
|
+
*/
|
|
14
|
+
export declare const InputSetComparator: unique symbol;
|
|
18
15
|
export declare const InputChanged: unique symbol;
|
|
19
16
|
export declare const InputSet: unique symbol;
|
|
20
17
|
export declare const InputName: unique symbol;
|
|
21
18
|
export declare const InputIcon: unique symbol;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Private properties
|
|
21
|
+
*/
|
|
22
|
+
declare const InputOns: unique symbol;
|
|
23
|
+
declare const InputOnces: unique symbol;
|
|
24
|
+
declare const InputAdopt: unique symbol;
|
|
25
|
+
declare const InputParents: unique symbol;
|
|
26
|
+
declare const InputComparator: unique symbol;
|
|
27
27
|
/**
|
|
28
28
|
* Input manages the state of a single device input,
|
|
29
29
|
* a virtual input, or a group of Input children.
|
|
30
30
|
*/
|
|
31
|
-
export declare abstract class Input<Type>
|
|
32
|
-
readonly id:
|
|
33
|
-
/**
|
|
34
|
-
* Timestamp of the last received input that changed the state.
|
|
35
|
-
*/
|
|
36
|
-
lastChange: number;
|
|
37
|
-
/**
|
|
38
|
-
* Timestamp of the last received input, even if it didn't change the state.
|
|
39
|
-
*/
|
|
40
|
-
lastInput: number;
|
|
31
|
+
export declare abstract class Input<Type> implements AsyncIterator<Input<Type>> {
|
|
32
|
+
readonly id: InputId;
|
|
41
33
|
/**
|
|
42
34
|
* For numeric inputs, ignore state changes smaller than this threshold.
|
|
43
35
|
*/
|
|
@@ -46,28 +38,57 @@ export declare abstract class Input<Type> extends EventEmitter implements AsyncI
|
|
|
46
38
|
* Provide the type and default value for the input.
|
|
47
39
|
*/
|
|
48
40
|
abstract state: Type;
|
|
41
|
+
/**
|
|
42
|
+
* Stores event listeners.
|
|
43
|
+
*/
|
|
44
|
+
private [InputOns];
|
|
45
|
+
/**
|
|
46
|
+
* Stores callbacks waiting for one-time events.
|
|
47
|
+
*/
|
|
48
|
+
private [InputOnces];
|
|
49
|
+
constructor(params?: InputParams);
|
|
49
50
|
/**
|
|
50
51
|
* Implement a function that returns true if the user is actively engaged with the input.
|
|
51
52
|
*/
|
|
52
53
|
abstract get active(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Register a callback to recieve state updates from this Input.
|
|
56
|
+
*/
|
|
57
|
+
on(event: InputEventType, listener: InputCallback<this>): this;
|
|
58
|
+
/**
|
|
59
|
+
* Register a callback to recieve the next specified update.
|
|
60
|
+
*/
|
|
61
|
+
once(event: InputChangeType, listener: InputCallback<this>): this;
|
|
62
|
+
/**
|
|
63
|
+
* Notify listeners and parents of a state change.
|
|
64
|
+
*/
|
|
65
|
+
private emit;
|
|
66
|
+
/**
|
|
67
|
+
* Notify one-time listeners of a state change.
|
|
68
|
+
*/
|
|
69
|
+
private emitOnce;
|
|
70
|
+
/**
|
|
71
|
+
* Register a callback to recieve state updates from this Input.
|
|
72
|
+
*/
|
|
73
|
+
addEventListener(event: InputEventType, listener: InputCallback<this>, { once }?: {
|
|
74
|
+
once: boolean;
|
|
75
|
+
}): this;
|
|
53
76
|
/**
|
|
54
77
|
* Resolves on the next change to this input's state.
|
|
55
78
|
*/
|
|
56
|
-
next(type?:
|
|
79
|
+
next(type?: InputChangeType): Promise<IteratorResult<this>>;
|
|
57
80
|
/**
|
|
58
81
|
* Resolves on the next change to this input's state.
|
|
59
82
|
*/
|
|
60
83
|
promise(type?: "press" | "release" | "change"): Promise<this>;
|
|
61
84
|
/**
|
|
62
|
-
* Render a
|
|
85
|
+
* Render a debugging string.
|
|
63
86
|
*/
|
|
64
87
|
toString(): string;
|
|
65
|
-
constructor(params?: InputParams);
|
|
66
88
|
/**
|
|
67
|
-
*
|
|
89
|
+
* Returns true if the provided state is worth an event
|
|
68
90
|
*/
|
|
69
|
-
[
|
|
70
|
-
[inspect.custom](): string;
|
|
91
|
+
[InputComparator]: (state: Type, newState: Type) => boolean;
|
|
71
92
|
[Symbol.asyncIterator](): AsyncIterator<this>;
|
|
72
93
|
[Symbol.toPrimitive](hint: "number" | "string" | "default"): number | string;
|
|
73
94
|
get [Symbol.toStringTag](): string;
|
|
@@ -76,27 +97,24 @@ export declare abstract class Input<Type> extends EventEmitter implements AsyncI
|
|
|
76
97
|
*/
|
|
77
98
|
readonly [InputName]: string;
|
|
78
99
|
/**
|
|
79
|
-
* A short name for this input
|
|
100
|
+
* A short name for this input.
|
|
80
101
|
*/
|
|
81
102
|
readonly [InputIcon]: string;
|
|
82
103
|
/**
|
|
83
|
-
*
|
|
104
|
+
* Other Inputs that contain this one.
|
|
105
|
+
*/
|
|
106
|
+
private [InputParents];
|
|
107
|
+
/**
|
|
108
|
+
* Links Inputs to bubble up events.
|
|
84
109
|
*/
|
|
85
|
-
[
|
|
86
|
-
[InputChildless]: boolean;
|
|
110
|
+
[InputAdopt](parent: Input<unknown>): void;
|
|
87
111
|
/**
|
|
88
|
-
*
|
|
89
|
-
* And decide if this is the root Input.
|
|
112
|
+
* Sets a default comparison type for the Input by discovering the generic type.
|
|
90
113
|
*/
|
|
91
|
-
[
|
|
92
|
-
[InputChangedVirtual](): boolean;
|
|
93
|
-
[InputChangedPrimitive](state: Type, newState: Type): boolean;
|
|
94
|
-
[InputChangedThreshold](state: number, newState: number): boolean;
|
|
95
|
-
[InputSetComparison](): (state: Type, newState: Type) => boolean;
|
|
114
|
+
[InputSetComparator](): void;
|
|
96
115
|
/**
|
|
97
116
|
* Update the input's state and trigger all necessary callbacks.
|
|
98
117
|
*/
|
|
99
118
|
[InputSet](state: Type): void;
|
|
100
119
|
}
|
|
101
|
-
export {};
|
|
102
120
|
//# sourceMappingURL=input.d.ts.map
|
package/dist/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
|
package/dist/input.js
CHANGED
|
@@ -1,63 +1,131 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b, _c, _d;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.Input = exports.InputIcon = exports.InputName = exports.InputSet = exports.InputChanged = void 0;
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
threshold: 0,
|
|
11
|
-
};
|
|
12
|
-
// Private properties
|
|
13
|
-
const InputAdopt = Symbol("InputAdopt");
|
|
14
|
-
const InputChildless = Symbol("InputChildless");
|
|
15
|
-
const InputParent = Symbol("InputParent");
|
|
16
|
-
const InputSetComparison = Symbol("InputSetComparison");
|
|
17
|
-
const InputChangedPrimitive = Symbol("InputChangedPrimitive");
|
|
18
|
-
const InputChangedThreshold = Symbol("InputChangedThreshold");
|
|
19
|
-
const InputChangedVirtual = Symbol("InputChangedVirtual");
|
|
20
|
-
// Optional abstract properties
|
|
4
|
+
exports.Input = exports.InputIcon = exports.InputName = exports.InputSet = exports.InputChanged = exports.InputSetComparator = void 0;
|
|
5
|
+
const comparators_1 = require("./comparators");
|
|
6
|
+
/**
|
|
7
|
+
* Private utilities
|
|
8
|
+
*/
|
|
9
|
+
exports.InputSetComparator = Symbol("InputSetComparator");
|
|
21
10
|
exports.InputChanged = Symbol("InputChanged");
|
|
22
|
-
// Utilities
|
|
23
11
|
exports.InputSet = Symbol("InputSet");
|
|
24
12
|
exports.InputName = Symbol("InputName");
|
|
25
13
|
exports.InputIcon = Symbol("InputIcon");
|
|
14
|
+
/**
|
|
15
|
+
* Private properties
|
|
16
|
+
*/
|
|
17
|
+
const InputOns = Symbol("InputOns");
|
|
18
|
+
const InputOnces = Symbol("InputOnces");
|
|
19
|
+
const InputAdopt = Symbol("InputAdopt");
|
|
20
|
+
const InputParents = Symbol("InputParents");
|
|
21
|
+
const InputComparator = Symbol("InputComparator");
|
|
26
22
|
/**
|
|
27
23
|
* Input manages the state of a single device input,
|
|
28
24
|
* a virtual input, or a group of Input children.
|
|
29
25
|
*/
|
|
30
|
-
class Input
|
|
31
|
-
constructor(params) {
|
|
32
|
-
|
|
26
|
+
class Input {
|
|
27
|
+
constructor(params = {}) {
|
|
28
|
+
this.id = "Unknown" /* InputId.Unknown */;
|
|
33
29
|
/**
|
|
34
|
-
*
|
|
30
|
+
* For numeric inputs, ignore state changes smaller than this threshold.
|
|
35
31
|
*/
|
|
36
|
-
this.
|
|
32
|
+
this.threshold = 0;
|
|
37
33
|
/**
|
|
38
|
-
*
|
|
34
|
+
* Stores event listeners.
|
|
39
35
|
*/
|
|
40
|
-
this
|
|
36
|
+
this[_a] = new Map();
|
|
41
37
|
/**
|
|
42
|
-
*
|
|
38
|
+
* Stores callbacks waiting for one-time events.
|
|
43
39
|
*/
|
|
44
|
-
this
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
this[_b] = new Map();
|
|
41
|
+
/**
|
|
42
|
+
* Returns true if the provided state is worth an event
|
|
43
|
+
*/
|
|
44
|
+
this[_c] = comparators_1.BasicComparator;
|
|
45
|
+
/**
|
|
46
|
+
* Other Inputs that contain this one.
|
|
47
|
+
*/
|
|
48
|
+
this[_d] = new Set();
|
|
49
|
+
const { name, icon, threshold } = {
|
|
50
|
+
icon: "???",
|
|
51
|
+
name: "Nameless Input",
|
|
52
|
+
threshold: 0,
|
|
53
|
+
...params,
|
|
49
54
|
};
|
|
50
55
|
this[exports.InputName] = name;
|
|
51
56
|
this[exports.InputIcon] = icon;
|
|
52
|
-
this[InputParent] = parent;
|
|
53
57
|
this.threshold = threshold;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
this[exports.InputSetComparator]();
|
|
60
|
+
Object.values(this).forEach((value) => {
|
|
61
|
+
if (value === this)
|
|
62
|
+
return;
|
|
63
|
+
if (value instanceof Input)
|
|
64
|
+
value[InputAdopt](this);
|
|
65
|
+
});
|
|
59
66
|
});
|
|
60
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Register a callback to recieve state updates from this Input.
|
|
70
|
+
*/
|
|
71
|
+
on(event, listener) {
|
|
72
|
+
const listeners = this[InputOns].get(event);
|
|
73
|
+
if (!listeners) {
|
|
74
|
+
this[InputOns].set(event, []);
|
|
75
|
+
return this.on(event, listener);
|
|
76
|
+
}
|
|
77
|
+
listeners.push(listener);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Register a callback to recieve the next specified update.
|
|
82
|
+
*/
|
|
83
|
+
once(event, listener) {
|
|
84
|
+
const listeners = this[InputOnces].get(event);
|
|
85
|
+
if (!listeners) {
|
|
86
|
+
this[InputOnces].set(event, []);
|
|
87
|
+
return this.once(event, listener);
|
|
88
|
+
}
|
|
89
|
+
listeners.push(listener);
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Notify listeners and parents of a state change.
|
|
94
|
+
*/
|
|
95
|
+
emit(event, changed) {
|
|
96
|
+
const listeners = this[InputOns].get(event) || [];
|
|
97
|
+
listeners.forEach((callback) => {
|
|
98
|
+
callback(this, changed);
|
|
99
|
+
});
|
|
100
|
+
if (event !== "input") {
|
|
101
|
+
this.emitOnce(event, changed);
|
|
102
|
+
this[InputParents].forEach((input) => {
|
|
103
|
+
input.emit(event, changed);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Notify one-time listeners of a state change.
|
|
109
|
+
*/
|
|
110
|
+
emitOnce(event, changed = this) {
|
|
111
|
+
const listeners = this[InputOnces].get(event) || [];
|
|
112
|
+
this[InputOnces].set(event, []);
|
|
113
|
+
listeners.forEach((callback) => {
|
|
114
|
+
callback(this, changed);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Register a callback to recieve state updates from this Input.
|
|
119
|
+
*/
|
|
120
|
+
addEventListener(event, listener, { once } = { once: false }) {
|
|
121
|
+
if (once) {
|
|
122
|
+
if (event === "input") {
|
|
123
|
+
throw new Error("Can't listen once to `input` events");
|
|
124
|
+
}
|
|
125
|
+
return this.once(event, listener);
|
|
126
|
+
}
|
|
127
|
+
return this.on(event, listener);
|
|
128
|
+
}
|
|
61
129
|
/**
|
|
62
130
|
* Resolves on the next change to this input's state.
|
|
63
131
|
*/
|
|
@@ -77,18 +145,12 @@ class Input extends events_1.EventEmitter {
|
|
|
77
145
|
});
|
|
78
146
|
}
|
|
79
147
|
/**
|
|
80
|
-
* Render a
|
|
148
|
+
* Render a debugging string.
|
|
81
149
|
*/
|
|
82
150
|
toString() {
|
|
83
151
|
return `${this[exports.InputIcon]} [${this.active ? "X" : "_"}]`;
|
|
84
152
|
}
|
|
85
|
-
|
|
86
|
-
[util_1.inspect.custom]() {
|
|
87
|
-
return `${this[exports.InputName]} ${this[exports.InputIcon]}: ${JSON.stringify(this.state instanceof Input && this.state.id === this.id
|
|
88
|
-
? "virtual"
|
|
89
|
-
: this.state)}`;
|
|
90
|
-
}
|
|
91
|
-
[Symbol.asyncIterator]() {
|
|
153
|
+
[(_a = InputOns, _b = InputOnces, _c = InputComparator, Symbol.asyncIterator)]() {
|
|
92
154
|
return this;
|
|
93
155
|
}
|
|
94
156
|
[Symbol.toPrimitive](hint) {
|
|
@@ -102,65 +164,36 @@ class Input extends events_1.EventEmitter {
|
|
|
102
164
|
return this.toString();
|
|
103
165
|
}
|
|
104
166
|
/**
|
|
105
|
-
*
|
|
106
|
-
* And decide if this is the root Input.
|
|
167
|
+
* Links Inputs to bubble up events.
|
|
107
168
|
*/
|
|
108
|
-
[(
|
|
109
|
-
|
|
110
|
-
if (value === this)
|
|
111
|
-
return;
|
|
112
|
-
if (value instanceof Input) {
|
|
113
|
-
this[InputChildless] = false;
|
|
114
|
-
if (!value[InputChildless])
|
|
115
|
-
return;
|
|
116
|
-
value.on("change", (that, value) => {
|
|
117
|
-
that;
|
|
118
|
-
this.emit("change", this, value);
|
|
119
|
-
});
|
|
120
|
-
value.on("input", (that, value) => {
|
|
121
|
-
that;
|
|
122
|
-
this.emit("input", this, value);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
});
|
|
169
|
+
[(_d = InputParents, InputAdopt)](parent) {
|
|
170
|
+
this[InputParents].add(parent);
|
|
126
171
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
[
|
|
131
|
-
return state !== newState;
|
|
132
|
-
}
|
|
133
|
-
[InputChangedThreshold](state, newState) {
|
|
134
|
-
return Math.abs(state - newState) > this.threshold;
|
|
135
|
-
}
|
|
136
|
-
// Sets a default comparison type for the Input based on the generic type.
|
|
137
|
-
[InputSetComparison]() {
|
|
172
|
+
/**
|
|
173
|
+
* Sets a default comparison type for the Input by discovering the generic type.
|
|
174
|
+
*/
|
|
175
|
+
[exports.InputSetComparator]() {
|
|
138
176
|
if (typeof this.state === "number") {
|
|
139
|
-
|
|
177
|
+
this[InputComparator] = comparators_1.ThresholdComparator.bind(this, this.threshold);
|
|
140
178
|
}
|
|
141
179
|
else if (this.state instanceof Input) {
|
|
142
|
-
|
|
180
|
+
this[InputComparator] = comparators_1.VirtualComparator;
|
|
143
181
|
}
|
|
144
182
|
else {
|
|
145
|
-
|
|
183
|
+
this[InputComparator] = comparators_1.BasicComparator;
|
|
146
184
|
}
|
|
147
185
|
}
|
|
148
186
|
/**
|
|
149
187
|
* Update the input's state and trigger all necessary callbacks.
|
|
150
188
|
*/
|
|
151
189
|
[exports.InputSet](state) {
|
|
152
|
-
this.
|
|
153
|
-
if (this[exports.InputChanged](this.state, state)) {
|
|
190
|
+
if (this[InputComparator](this.state, state)) {
|
|
154
191
|
this.state = state;
|
|
155
|
-
this.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
state
|
|
159
|
-
? this.emit("press", this, this)
|
|
160
|
-
: this.emit("release", this, this);
|
|
161
|
-
}
|
|
192
|
+
this.emit("change", this);
|
|
193
|
+
if (typeof state === "boolean")
|
|
194
|
+
this.emit(state ? "press" : "release", this);
|
|
162
195
|
}
|
|
163
|
-
this.emit("input", this
|
|
196
|
+
this.emit("input", this);
|
|
164
197
|
}
|
|
165
198
|
}
|
|
166
199
|
exports.Input = Input;
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dualsense-ts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "A natural interface for your DualSense controller, with Typescript",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dualsense",
|
|
@@ -29,22 +29,22 @@
|
|
|
29
29
|
"license": "GPL-3.0",
|
|
30
30
|
"private": false,
|
|
31
31
|
"main": "dist/index.js",
|
|
32
|
+
"browser": "dist/main.js",
|
|
32
33
|
"types": "dist/index.d.ts",
|
|
34
|
+
"sideEffects": false,
|
|
33
35
|
"scripts": {
|
|
34
36
|
"prebuild": "yarn barrels",
|
|
35
37
|
"build": "tsc --project tsconfig.build.json",
|
|
36
38
|
"build:watch": "tsc --project tsconfig.build.json --pretty --watch",
|
|
39
|
+
"start": "webpack serve --open",
|
|
37
40
|
"lint": "eslint src",
|
|
38
|
-
"lint:watch": "nodemon eslint src",
|
|
39
41
|
"test": "jest src --verbose",
|
|
40
42
|
"test:watch": "jest src --verbose --watch",
|
|
41
43
|
"coverage": "jest src --coverage --verbose",
|
|
42
44
|
"coverage:watch": "jest src --coverage --verbose --watch",
|
|
43
45
|
"barrels": "barrelsby -d src -D -l replace -e 'spec.ts$'",
|
|
44
|
-
"barrels:watch": "nodemon yarn barrels",
|
|
45
46
|
"docs": "typedoc src/index.ts",
|
|
46
|
-
"
|
|
47
|
-
"debug": "nodemon -e ts,json --exec \"node --inspect --enable-source-maps --experimental-specifier-resolution=node --loader ts-node/esm ./util/debug.ts\""
|
|
47
|
+
"debug": "node --inspect --enable-source-maps --experimental-specifier-resolution=node --loader ts-node/esm ./util/debug.ts"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"node-hid": "^2.1.1"
|
|
@@ -53,21 +53,26 @@
|
|
|
53
53
|
"@types/jest": "^27.5.0",
|
|
54
54
|
"@types/node": "^18.0.0",
|
|
55
55
|
"@types/node-hid": "^1.3.1",
|
|
56
|
+
"@types/w3c-web-hid": "^1.0.3",
|
|
56
57
|
"@typescript-eslint/eslint-plugin": "^5.23.0",
|
|
57
58
|
"@typescript-eslint/parser": "^5.23.0",
|
|
58
59
|
"barrelsby": "^2.3.4",
|
|
59
60
|
"eslint": "^8.15.0",
|
|
60
61
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
61
62
|
"eslint-plugin-import": "^2.26.0",
|
|
63
|
+
"html-webpack-plugin": "^5.5.0",
|
|
62
64
|
"jest": "^27.5.1",
|
|
63
|
-
"nodemon": "^2.0.16",
|
|
64
65
|
"prettier": "^2.3.2",
|
|
65
66
|
"ts-jest": "^27.1.3",
|
|
67
|
+
"ts-loader": "^9.3.1",
|
|
66
68
|
"ts-node": "^10.7.0",
|
|
67
69
|
"typedoc": "^0.23.1",
|
|
68
70
|
"typedoc-github-wiki-theme": "^1.0.1",
|
|
69
71
|
"typedoc-plugin-markdown": "^3.12.1",
|
|
70
|
-
"typescript": "^4.6.4"
|
|
72
|
+
"typescript": "^4.6.4",
|
|
73
|
+
"webpack": "^5.73.0",
|
|
74
|
+
"webpack-cli": "^4.10.0",
|
|
75
|
+
"webpack-dev-server": "^4.9.3"
|
|
71
76
|
},
|
|
72
77
|
"eslintConfig": {
|
|
73
78
|
"parser": "@typescript-eslint/parser",
|
|
@@ -92,7 +97,8 @@
|
|
|
92
97
|
"plugin:@typescript-eslint/recommended-requiring-type-checking"
|
|
93
98
|
],
|
|
94
99
|
"rules": {
|
|
95
|
-
"@typescript-eslint/no-inferrable-types": 0
|
|
100
|
+
"@typescript-eslint/no-inferrable-types": 0,
|
|
101
|
+
"@typescript-eslint/no-empty-function": 0
|
|
96
102
|
}
|
|
97
103
|
},
|
|
98
104
|
"jest": {
|