@hardlydifficult/chat 1.1.17 → 1.1.18
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/Channel.d.ts +18 -6
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +49 -10
- package/dist/Channel.js.map +1 -1
- package/package.json +1 -1
package/dist/Channel.d.ts
CHANGED
|
@@ -26,15 +26,14 @@ export interface ChannelOperations {
|
|
|
26
26
|
onDisconnect(callback: DisconnectCallback): () => void;
|
|
27
27
|
onError(callback: ErrorCallback): () => void;
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Represents a connected channel with messaging capabilities
|
|
31
|
-
*/
|
|
32
29
|
export declare class Channel {
|
|
33
30
|
readonly id: string;
|
|
34
31
|
readonly platform: Platform;
|
|
35
32
|
private operations;
|
|
36
33
|
private messageReactionCallbacks;
|
|
37
34
|
private unsubscribeFromPlatform;
|
|
35
|
+
private typingRefCount;
|
|
36
|
+
private typingInterval;
|
|
38
37
|
constructor(id: string, platform: Platform, operations: ChannelOperations);
|
|
39
38
|
/**
|
|
40
39
|
* Post a message to this channel
|
|
@@ -66,13 +65,26 @@ export declare class Channel {
|
|
|
66
65
|
*/
|
|
67
66
|
onMessage(callback: (message: Message) => void | Promise<void>): () => void;
|
|
68
67
|
/**
|
|
69
|
-
* Send a typing indicator in this channel
|
|
68
|
+
* Send a one-shot typing indicator in this channel.
|
|
69
|
+
* Prefer beginTyping/endTyping for long-running work.
|
|
70
70
|
*/
|
|
71
71
|
sendTyping(): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Mark the start of work that should show a typing indicator.
|
|
74
|
+
* The indicator is sent immediately and auto-refreshed until a matching
|
|
75
|
+
* endTyping() call brings the count back to zero. Multiple callers
|
|
76
|
+
* can overlap — the indicator stays active until the last one ends.
|
|
77
|
+
*/
|
|
78
|
+
beginTyping(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Mark the end of one unit of work. When all outstanding beginTyping()
|
|
81
|
+
* calls have been balanced by endTyping(), the refresh interval stops.
|
|
82
|
+
*/
|
|
83
|
+
endTyping(): void;
|
|
72
84
|
/**
|
|
73
85
|
* Show a typing indicator while executing a function.
|
|
74
|
-
*
|
|
75
|
-
*
|
|
86
|
+
* Uses the ref-counted beginTyping/endTyping internally, so multiple
|
|
87
|
+
* concurrent withTyping calls share a single refresh interval.
|
|
76
88
|
* @param fn - Async function to execute while typing indicator is shown
|
|
77
89
|
* @returns The return value of fn
|
|
78
90
|
*/
|
package/dist/Channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../src/Channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,MAAM,EACN,eAAe,EACf,cAAc,EACd,WAAW,EAEX,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;QACzB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,oBAAoB,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,GACzB,MAAM,IAAI,CAAC;IACd,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;IAC9E,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;IACvD,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;CAC9C;
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../src/Channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,MAAM,EACN,eAAe,EACf,cAAc,EACd,WAAW,EAEX,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;QACzB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,oBAAoB,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,GACzB,MAAM,IAAI,CAAC;IACd,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;IAC9E,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;IACvD,OAAO,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;CAC9C;AAQD,qBAAa,OAAO;IAClB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,wBAAwB,CAA4C;IAC5E,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAA+C;gBAEzD,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB;IAYzE;;;;;OAKG;IACH,WAAW,CACT,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7D,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAejC;;OAEG;YACW,YAAY;IAe1B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuC/B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;IAqB3E;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;;OAKG;IACH,WAAW,IAAI,IAAI;IAgBnB;;;OAGG;IACH,SAAS,IAAI,IAAI;IAUjB;;;;;;OAMG;IACG,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASrD;;;;;OAKG;IACG,eAAe,CACnB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAcnB;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUrC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC;;OAEG;IACH,UAAU,IAAI,IAAI;CAYnB"}
|
package/dist/Channel.js
CHANGED
|
@@ -6,12 +6,16 @@ const Thread_1 = require("./Thread");
|
|
|
6
6
|
/**
|
|
7
7
|
* Represents a connected channel with messaging capabilities
|
|
8
8
|
*/
|
|
9
|
+
/** Default interval (ms) for refreshing the typing indicator. Discord expires after ~10s. */
|
|
10
|
+
const TYPING_REFRESH_MS = 8000;
|
|
9
11
|
class Channel {
|
|
10
12
|
id;
|
|
11
13
|
platform;
|
|
12
14
|
operations;
|
|
13
15
|
messageReactionCallbacks = new Map();
|
|
14
16
|
unsubscribeFromPlatform = null;
|
|
17
|
+
typingRefCount = 0;
|
|
18
|
+
typingInterval = null;
|
|
15
19
|
constructor(id, platform, operations) {
|
|
16
20
|
this.id = id;
|
|
17
21
|
this.platform = platform;
|
|
@@ -97,30 +101,60 @@ class Channel {
|
|
|
97
101
|
});
|
|
98
102
|
}
|
|
99
103
|
/**
|
|
100
|
-
* Send a typing indicator in this channel
|
|
104
|
+
* Send a one-shot typing indicator in this channel.
|
|
105
|
+
* Prefer beginTyping/endTyping for long-running work.
|
|
101
106
|
*/
|
|
102
107
|
async sendTyping() {
|
|
103
108
|
await this.operations.sendTyping(this.id);
|
|
104
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Mark the start of work that should show a typing indicator.
|
|
112
|
+
* The indicator is sent immediately and auto-refreshed until a matching
|
|
113
|
+
* endTyping() call brings the count back to zero. Multiple callers
|
|
114
|
+
* can overlap — the indicator stays active until the last one ends.
|
|
115
|
+
*/
|
|
116
|
+
beginTyping() {
|
|
117
|
+
this.typingRefCount++;
|
|
118
|
+
if (this.typingRefCount === 1) {
|
|
119
|
+
this.operations.sendTyping(this.id).catch(() => {
|
|
120
|
+
// Ignore typing indicator failures
|
|
121
|
+
});
|
|
122
|
+
this.typingInterval = setInterval(() => {
|
|
123
|
+
if (this.typingRefCount > 0) {
|
|
124
|
+
this.operations.sendTyping(this.id).catch(() => {
|
|
125
|
+
// Ignore typing indicator failures
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}, TYPING_REFRESH_MS);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Mark the end of one unit of work. When all outstanding beginTyping()
|
|
133
|
+
* calls have been balanced by endTyping(), the refresh interval stops.
|
|
134
|
+
*/
|
|
135
|
+
endTyping() {
|
|
136
|
+
if (this.typingRefCount > 0) {
|
|
137
|
+
this.typingRefCount--;
|
|
138
|
+
}
|
|
139
|
+
if (this.typingRefCount === 0 && this.typingInterval) {
|
|
140
|
+
clearInterval(this.typingInterval);
|
|
141
|
+
this.typingInterval = null;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
105
144
|
/**
|
|
106
145
|
* Show a typing indicator while executing a function.
|
|
107
|
-
*
|
|
108
|
-
*
|
|
146
|
+
* Uses the ref-counted beginTyping/endTyping internally, so multiple
|
|
147
|
+
* concurrent withTyping calls share a single refresh interval.
|
|
109
148
|
* @param fn - Async function to execute while typing indicator is shown
|
|
110
149
|
* @returns The return value of fn
|
|
111
150
|
*/
|
|
112
151
|
async withTyping(fn) {
|
|
113
|
-
|
|
114
|
-
const interval = setInterval(() => {
|
|
115
|
-
this.operations.sendTyping(this.id).catch(() => {
|
|
116
|
-
// Ignore errors from typing refresh
|
|
117
|
-
});
|
|
118
|
-
}, 8000);
|
|
152
|
+
this.beginTyping();
|
|
119
153
|
try {
|
|
120
154
|
return await fn();
|
|
121
155
|
}
|
|
122
156
|
finally {
|
|
123
|
-
|
|
157
|
+
this.endTyping();
|
|
124
158
|
}
|
|
125
159
|
}
|
|
126
160
|
/**
|
|
@@ -174,6 +208,11 @@ class Channel {
|
|
|
174
208
|
this.unsubscribeFromPlatform = null;
|
|
175
209
|
}
|
|
176
210
|
this.messageReactionCallbacks.clear();
|
|
211
|
+
if (this.typingInterval) {
|
|
212
|
+
clearInterval(this.typingInterval);
|
|
213
|
+
this.typingInterval = null;
|
|
214
|
+
}
|
|
215
|
+
this.typingRefCount = 0;
|
|
177
216
|
}
|
|
178
217
|
}
|
|
179
218
|
exports.Channel = Channel;
|
package/dist/Channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../src/Channel.ts"],"names":[],"mappings":";;;AAAA,uCAA4D;AAC5D,qCAAkC;AAiElC;;GAEG;AACH,MAAa,OAAO;IACF,EAAE,CAAS;IACX,QAAQ,CAAW;IAE3B,UAAU,CAAoB;IAC9B,wBAAwB,GAAG,IAAI,GAAG,EAAiC,CAAC;IACpE,uBAAuB,GAAwB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../src/Channel.ts"],"names":[],"mappings":"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"}
|