tscommons-esm-socket-io-ticketed 0.0.2
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/helpers/ticketed-as-promise.d.mts +18 -0
- package/dist/helpers/ticketed-as-promise.mjs +221 -0
- package/dist/helpers/ticketed-as-promise.mjs.map +1 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +4 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interfaces/icommons-ticketed-socket-io.d.mts +24 -0
- package/dist/interfaces/icommons-ticketed-socket-io.mjs +3 -0
- package/dist/interfaces/icommons-ticketed-socket-io.mjs.map +1 -0
- package/dist/services/commons-ticketed-socket-io.service.d.mts +41 -0
- package/dist/services/commons-ticketed-socket-io.service.mjs +127 -0
- package/dist/services/commons-ticketed-socket-io.service.mjs.map +1 -0
- package/dist/types/tpromise-with-observables.d.mts +7 -0
- package/dist/types/tpromise-with-observables.mjs +2 -0
- package/dist/types/tpromise-with-observables.mjs.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TEncoded, TEncodedObject } from 'tscommons-esm-core';
|
|
2
|
+
import { CommonsRestClientService } from 'tscommons-esm-rest';
|
|
3
|
+
import { ECommonsHttpMethod, TCommonsHttpRequestOptions } from 'tscommons-esm-http';
|
|
4
|
+
import { TCommonsTicketedSocketIoProgress } from '../services/commons-ticketed-socket-io.service.mjs';
|
|
5
|
+
import { ICommonsTicketedSocketIo, ICommonsTicketedSocketIoWithAutoSetup } from '../interfaces/icommons-ticketed-socket-io.mjs';
|
|
6
|
+
import { TPromiseWithObservables } from '../types/tpromise-with-observables.mjs';
|
|
7
|
+
export declare function commonsTicketedSubmitAndWaitAsPromise<ResultT extends TEncoded = TEncoded, BodyT extends TEncodedObject = TEncodedObject, ParamsT extends TEncodedObject = TEncodedObject, HeadersT extends TEncodedObject = TEncodedObject>(restService: CommonsRestClientService, socketIoService: ICommonsTicketedSocketIo, connectCallback: (callback: (socketIoId: string) => void) => void, verb: ECommonsHttpMethod.POST | ECommonsHttpMethod.PUT | ECommonsHttpMethod.PATCH, script: string, body: BodyT, checker: (data: unknown) => data is ResultT, params?: ParamsT | undefined, // the params can be explicitly undefined (none) as well as optional
|
|
8
|
+
headers?: HeadersT | undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
9
|
+
options?: TCommonsHttpRequestOptions, connectToSubmitDelay?: number, queued?: (ticketId: string) => void, dispatched?: () => void, progress?: (data: Pick<TCommonsTicketedSocketIoProgress, 'src' | 'data'>) => void, debug?: (message: string) => void): Promise<ResultT>;
|
|
10
|
+
export declare function commonsTicketedSubmitAndWaitAsPromiseWithAutoSocketIoSetupAndDisconnect<ResultT extends TEncoded = TEncoded, BodyT extends TEncodedObject = TEncodedObject, ParamsT extends TEncodedObject = TEncodedObject, HeadersT extends TEncodedObject = TEncodedObject>(restService: CommonsRestClientService, socketIoService: ICommonsTicketedSocketIoWithAutoSetup, verb: ECommonsHttpMethod.POST | ECommonsHttpMethod.PUT | ECommonsHttpMethod.PATCH, script: string, body: BodyT, checker: (data: unknown) => data is ResultT, params?: ParamsT | undefined, // the params can be explicitly undefined (none) as well as optional
|
|
11
|
+
headers?: HeadersT | undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
12
|
+
options?: TCommonsHttpRequestOptions, connectToSubmitDelay?: number, queued?: (ticketId: string) => void, dispatched?: () => void, progress?: (data: Pick<TCommonsTicketedSocketIoProgress, 'src' | 'data'>) => void, debug?: (message: string) => void): Promise<ResultT>;
|
|
13
|
+
export declare function commonsTicketedSubmitAndWaitAsPromiseWithObservables<ResultT extends TEncoded = TEncoded, BodyT extends TEncodedObject = TEncodedObject, ParamsT extends TEncodedObject = TEncodedObject, HeadersT extends TEncodedObject = TEncodedObject>(restService: CommonsRestClientService, socketIoService: ICommonsTicketedSocketIo, connectCallback: (callback: (socketIoId: string) => void) => void, verb: ECommonsHttpMethod.POST | ECommonsHttpMethod.PUT | ECommonsHttpMethod.PATCH, script: string, body: BodyT, checker: (data: unknown) => data is ResultT, params?: ParamsT | undefined, // the params can be explicitly undefined (none) as well as optional
|
|
14
|
+
headers?: HeadersT | undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
15
|
+
options?: TCommonsHttpRequestOptions, connectToSubmitDelay?: number, debug?: (message: string) => void): TPromiseWithObservables<ResultT, Pick<TCommonsTicketedSocketIoProgress, 'src' | 'data'>>;
|
|
16
|
+
export declare function commonsTicketedSubmitAndWaitAsPromiseWithObservablesWithAutoSocketIoSetupAndDisconnect<ResultT extends TEncoded = TEncoded, BodyT extends TEncodedObject = TEncodedObject, ParamsT extends TEncodedObject = TEncodedObject, HeadersT extends TEncodedObject = TEncodedObject>(restService: CommonsRestClientService, socketIoService: ICommonsTicketedSocketIoWithAutoSetup, verb: ECommonsHttpMethod.POST | ECommonsHttpMethod.PUT | ECommonsHttpMethod.PATCH, script: string, body: BodyT, checker: (data: unknown) => data is ResultT, params?: ParamsT | undefined, // the params can be explicitly undefined (none) as well as optional
|
|
17
|
+
headers?: HeadersT | undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
18
|
+
options?: TCommonsHttpRequestOptions, connectToSubmitDelay?: number, debug?: (message: string) => void): TPromiseWithObservables<ResultT, Pick<TCommonsTicketedSocketIoProgress, 'src' | 'data'>>;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { commonsBase62IsLongId, commonsTypeIsString } from 'tscommons-esm-core';
|
|
3
|
+
import { commonsAsyncTimeout } from 'tscommons-esm-async';
|
|
4
|
+
import { ECommonsHttpMethod } from 'tscommons-esm-http';
|
|
5
|
+
export function commonsTicketedSubmitAndWaitAsPromise(restService, socketIoService, connectCallback, verb, script, body, checker, params = undefined, // the params can be explicitly undefined (none) as well as optional
|
|
6
|
+
headers = undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
7
|
+
options = {}, connectToSubmitDelay = 100, queued = (_ticketId) => {
|
|
8
|
+
// do nothing
|
|
9
|
+
}, dispatched = () => {
|
|
10
|
+
// do nothing
|
|
11
|
+
}, progress = (_data) => {
|
|
12
|
+
// do nothing
|
|
13
|
+
}, debug = (_message) => {
|
|
14
|
+
// do nothing
|
|
15
|
+
}) {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
const subscriptions = [];
|
|
18
|
+
const cleanup = () => {
|
|
19
|
+
for (const subscription of subscriptions)
|
|
20
|
+
subscription.unsubscribe();
|
|
21
|
+
};
|
|
22
|
+
connectCallback((socketIoId) => {
|
|
23
|
+
let ticket;
|
|
24
|
+
socketIoService.socketIoId = socketIoId;
|
|
25
|
+
subscriptions.push(socketIoService.dispatchedObservable
|
|
26
|
+
.subscribe((t) => {
|
|
27
|
+
if (t !== ticket)
|
|
28
|
+
return;
|
|
29
|
+
debug('Ticketed dispatched');
|
|
30
|
+
dispatched();
|
|
31
|
+
}));
|
|
32
|
+
subscriptions.push(socketIoService.timedoutObservable
|
|
33
|
+
.subscribe((t) => {
|
|
34
|
+
if (t !== ticket)
|
|
35
|
+
return;
|
|
36
|
+
debug('Ticketed timedout');
|
|
37
|
+
cleanup();
|
|
38
|
+
reject(new Error('Ticketed timedout'));
|
|
39
|
+
}));
|
|
40
|
+
subscriptions.push(socketIoService.cancelledObservable
|
|
41
|
+
.subscribe((t) => {
|
|
42
|
+
if (t !== ticket)
|
|
43
|
+
return;
|
|
44
|
+
debug('Ticketed cancelled');
|
|
45
|
+
cleanup();
|
|
46
|
+
reject(new Error('Ticketed cancelled'));
|
|
47
|
+
}));
|
|
48
|
+
subscriptions.push(socketIoService.errorObservable
|
|
49
|
+
.subscribe((t) => {
|
|
50
|
+
if (t.ticket !== ticket)
|
|
51
|
+
return;
|
|
52
|
+
debug(`Ticketed error: ${t.message}`);
|
|
53
|
+
cleanup();
|
|
54
|
+
reject(new Error(`Ticketed error: ${t.message}`));
|
|
55
|
+
}));
|
|
56
|
+
subscriptions.push(socketIoService.progressObservable
|
|
57
|
+
.subscribe((t) => {
|
|
58
|
+
if (t.ticket !== ticket)
|
|
59
|
+
return;
|
|
60
|
+
debug('Ticketed progressed');
|
|
61
|
+
progress({
|
|
62
|
+
src: t.src,
|
|
63
|
+
data: t.data
|
|
64
|
+
});
|
|
65
|
+
}));
|
|
66
|
+
subscriptions.push(socketIoService.succeededObservable
|
|
67
|
+
.subscribe((t) => {
|
|
68
|
+
if (t.ticket !== ticket)
|
|
69
|
+
return;
|
|
70
|
+
debug('Ticketed succeeded');
|
|
71
|
+
cleanup();
|
|
72
|
+
if (!checker(t.data)) {
|
|
73
|
+
reject(new Error('Returned data did not match expected checker value'));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
resolve(t.data);
|
|
77
|
+
}));
|
|
78
|
+
subscriptions.push(socketIoService.failedObservable
|
|
79
|
+
.subscribe((t) => {
|
|
80
|
+
if (t.ticket !== ticket)
|
|
81
|
+
return;
|
|
82
|
+
debug('Ticketed failed');
|
|
83
|
+
cleanup();
|
|
84
|
+
reject(new Error('Ticketed failed'));
|
|
85
|
+
}));
|
|
86
|
+
void (async () => {
|
|
87
|
+
await commonsAsyncTimeout(connectToSubmitDelay);
|
|
88
|
+
body = {
|
|
89
|
+
socketIoId: socketIoId,
|
|
90
|
+
...body
|
|
91
|
+
};
|
|
92
|
+
try {
|
|
93
|
+
let result;
|
|
94
|
+
switch (verb) {
|
|
95
|
+
case ECommonsHttpMethod.POST:
|
|
96
|
+
result = await restService.postRest(script, body, params, headers, options);
|
|
97
|
+
break;
|
|
98
|
+
case ECommonsHttpMethod.PUT:
|
|
99
|
+
result = await restService.putRest(script, body, params, headers, options);
|
|
100
|
+
break;
|
|
101
|
+
case ECommonsHttpMethod.PATCH:
|
|
102
|
+
result = await restService.patchRest(script, body, params, headers, options);
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
throw new Error('Unsupported verb for commonsTicketedSubmitAndWaitAsPromise');
|
|
106
|
+
}
|
|
107
|
+
if (!commonsTypeIsString(result)) {
|
|
108
|
+
cleanup();
|
|
109
|
+
reject(new Error('Result was not a string'));
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (!commonsBase62IsLongId(result)) {
|
|
113
|
+
cleanup();
|
|
114
|
+
reject(new Error('Result was not a base62 long ID'));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
debug(`Ticket uid is ${result}`);
|
|
118
|
+
ticket = result;
|
|
119
|
+
queued(ticket);
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
reject(e); // cascade
|
|
123
|
+
}
|
|
124
|
+
})();
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
export async function commonsTicketedSubmitAndWaitAsPromiseWithAutoSocketIoSetupAndDisconnect(restService, socketIoService, verb, script, body, checker, params = undefined, // the params can be explicitly undefined (none) as well as optional
|
|
129
|
+
headers = undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
130
|
+
options = {}, connectToSubmitDelay = 100, queued, dispatched, progress, debug = (_message) => {
|
|
131
|
+
// do nothing
|
|
132
|
+
}) {
|
|
133
|
+
try {
|
|
134
|
+
return await commonsTicketedSubmitAndWaitAsPromise(restService, socketIoService, (callback) => {
|
|
135
|
+
socketIoService.addConnectCallback(() => {
|
|
136
|
+
void (async () => {
|
|
137
|
+
const socketIoId = await socketIoService.getId();
|
|
138
|
+
if (!socketIoId)
|
|
139
|
+
throw new Error('Unable to obtain socket.io ID');
|
|
140
|
+
callback(socketIoId);
|
|
141
|
+
})();
|
|
142
|
+
});
|
|
143
|
+
socketIoService.connect();
|
|
144
|
+
}, verb, script, body, checker, params, headers, options, connectToSubmitDelay, queued, dispatched, progress, debug);
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
socketIoService.disconnect();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export function commonsTicketedSubmitAndWaitAsPromiseWithObservables(restService, socketIoService, connectCallback, verb, script, body, checker, params = undefined, // the params can be explicitly undefined (none) as well as optional
|
|
151
|
+
headers = undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
152
|
+
options = {}, connectToSubmitDelay = 100, debug = (_message) => {
|
|
153
|
+
// do nothing
|
|
154
|
+
}) {
|
|
155
|
+
const queuedSubject = new Subject();
|
|
156
|
+
let hasQueuedSubjectCompleted = false;
|
|
157
|
+
const dispatchedSubject = new Subject();
|
|
158
|
+
let hasDispatchedSubjectCompleted = false;
|
|
159
|
+
const progressSubject = new Subject();
|
|
160
|
+
const promise = commonsTicketedSubmitAndWaitAsPromise(restService, socketIoService, connectCallback, verb, script, body, checker, params, headers, options, connectToSubmitDelay, (ticketId) => {
|
|
161
|
+
queuedSubject.next(ticketId);
|
|
162
|
+
queuedSubject.complete();
|
|
163
|
+
hasQueuedSubjectCompleted = true;
|
|
164
|
+
}, () => {
|
|
165
|
+
dispatchedSubject.next();
|
|
166
|
+
dispatchedSubject.complete();
|
|
167
|
+
hasDispatchedSubjectCompleted = true;
|
|
168
|
+
}, (data) => {
|
|
169
|
+
progressSubject.next(data);
|
|
170
|
+
}, debug);
|
|
171
|
+
const promiseWrapper = (async () => {
|
|
172
|
+
try {
|
|
173
|
+
return await promise;
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
progressSubject.complete();
|
|
177
|
+
if (!hasQueuedSubjectCompleted)
|
|
178
|
+
queuedSubject.complete();
|
|
179
|
+
if (!hasDispatchedSubjectCompleted)
|
|
180
|
+
dispatchedSubject.complete();
|
|
181
|
+
}
|
|
182
|
+
})();
|
|
183
|
+
return {
|
|
184
|
+
promise: promiseWrapper,
|
|
185
|
+
queuedObservable: queuedSubject,
|
|
186
|
+
dispatchedObservable: dispatchedSubject,
|
|
187
|
+
progressObservable: progressSubject
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
export function commonsTicketedSubmitAndWaitAsPromiseWithObservablesWithAutoSocketIoSetupAndDisconnect(restService, socketIoService, verb, script, body, checker, params = undefined, // the params can be explicitly undefined (none) as well as optional
|
|
191
|
+
headers = undefined, // the headers can be explicitly undefined (none) as well as optional
|
|
192
|
+
options = {}, connectToSubmitDelay = 100, debug = (_message) => {
|
|
193
|
+
// do nothing
|
|
194
|
+
}) {
|
|
195
|
+
const promiseWithObservables = commonsTicketedSubmitAndWaitAsPromiseWithObservables(restService, socketIoService, (callback) => {
|
|
196
|
+
socketIoService.addConnectCallback(() => {
|
|
197
|
+
void (async () => {
|
|
198
|
+
const socketIoId = await socketIoService.getId();
|
|
199
|
+
if (!socketIoId)
|
|
200
|
+
throw new Error('Unable to obtain socket.io ID');
|
|
201
|
+
callback(socketIoId);
|
|
202
|
+
})();
|
|
203
|
+
});
|
|
204
|
+
socketIoService.connect();
|
|
205
|
+
}, verb, script, body, checker, params, headers, options, connectToSubmitDelay, debug);
|
|
206
|
+
const promiseWrapper = (async () => {
|
|
207
|
+
try {
|
|
208
|
+
return await promiseWithObservables.promise;
|
|
209
|
+
}
|
|
210
|
+
finally {
|
|
211
|
+
socketIoService.disconnect();
|
|
212
|
+
}
|
|
213
|
+
})();
|
|
214
|
+
return {
|
|
215
|
+
promise: promiseWrapper,
|
|
216
|
+
queuedObservable: promiseWithObservables.queuedObservable,
|
|
217
|
+
dispatchedObservable: promiseWithObservables.dispatchedObservable,
|
|
218
|
+
progressObservable: promiseWithObservables.progressObservable
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=ticketed-as-promise.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticketed-as-promise.mjs","sourceRoot":"","sources":["../../src/helpers/ticketed-as-promise.mts"],"names":[],"mappings":"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"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { commonsTicketedSubmitAndWaitAsPromise, commonsTicketedSubmitAndWaitAsPromiseWithAutoSocketIoSetupAndDisconnect, commonsTicketedSubmitAndWaitAsPromiseWithObservables, commonsTicketedSubmitAndWaitAsPromiseWithObservablesWithAutoSocketIoSetupAndDisconnect } from './helpers/ticketed-as-promise.mjs';
|
|
2
|
+
import { TCommonsTicketedSocketIoError, TCommonsTicketedSocketIoProgress, TCommonsTicketedSocketIoSucceeded, TCommonsTicketedSocketIoFailed, CommonsTicketedSocketIoService } from './services/commons-ticketed-socket-io.service.mjs';
|
|
3
|
+
import { TPromiseWithObservables } from './types/tpromise-with-observables.mjs';
|
|
4
|
+
import { TConnectionCallback, ICommonsTicketedSocketIo, ICommonsTicketedSocketIoAutoSetup, ICommonsTicketedSocketIoWithAutoSetup } from './interfaces/icommons-ticketed-socket-io.mjs';
|
|
5
|
+
export { commonsTicketedSubmitAndWaitAsPromise, commonsTicketedSubmitAndWaitAsPromiseWithAutoSocketIoSetupAndDisconnect, commonsTicketedSubmitAndWaitAsPromiseWithObservables, commonsTicketedSubmitAndWaitAsPromiseWithObservablesWithAutoSocketIoSetupAndDisconnect, TCommonsTicketedSocketIoError, TCommonsTicketedSocketIoProgress, TCommonsTicketedSocketIoSucceeded, TCommonsTicketedSocketIoFailed, CommonsTicketedSocketIoService, TPromiseWithObservables, TConnectionCallback, ICommonsTicketedSocketIo, ICommonsTicketedSocketIoAutoSetup, ICommonsTicketedSocketIoWithAutoSetup };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { commonsTicketedSubmitAndWaitAsPromise, commonsTicketedSubmitAndWaitAsPromiseWithAutoSocketIoSetupAndDisconnect, commonsTicketedSubmitAndWaitAsPromiseWithObservables, commonsTicketedSubmitAndWaitAsPromiseWithObservablesWithAutoSocketIoSetupAndDisconnect } from './helpers/ticketed-as-promise.mjs';
|
|
2
|
+
import { CommonsTicketedSocketIoService } from './services/commons-ticketed-socket-io.service.mjs';
|
|
3
|
+
export { commonsTicketedSubmitAndWaitAsPromise, commonsTicketedSubmitAndWaitAsPromiseWithAutoSocketIoSetupAndDisconnect, commonsTicketedSubmitAndWaitAsPromiseWithObservables, commonsTicketedSubmitAndWaitAsPromiseWithObservablesWithAutoSocketIoSetupAndDisconnect, CommonsTicketedSocketIoService };
|
|
4
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,uEAAuE,EACvE,oDAAoD,EACpD,sFAAsF,EACvF,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAKL,8BAA8B,EAC/B,MAAM,mDAAmD,CAAC;AAQ3D,OAAO,EACN,qCAAqC,EACrC,uEAAuE,EACvE,oDAAoD,EACpD,sFAAsF,EAKtF,8BAA8B,EAM9B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { TCommonsTicketedSocketIoError, TCommonsTicketedSocketIoProgress, TCommonsTicketedSocketIoSucceeded, TCommonsTicketedSocketIoFailed } from '../services/commons-ticketed-socket-io.service.mjs';
|
|
3
|
+
export type TConnectionCallback = () => void;
|
|
4
|
+
export interface ICommonsTicketedSocketIo {
|
|
5
|
+
get socketIoId(): string | undefined;
|
|
6
|
+
set socketIoId(id: string | undefined);
|
|
7
|
+
get dispatchedObservable(): Observable<string>;
|
|
8
|
+
get timedoutObservable(): Observable<string>;
|
|
9
|
+
get cancelledObservable(): Observable<string>;
|
|
10
|
+
get errorObservable(): Observable<TCommonsTicketedSocketIoError>;
|
|
11
|
+
get progressObservable(): Observable<TCommonsTicketedSocketIoProgress>;
|
|
12
|
+
get succeededObservable(): Observable<TCommonsTicketedSocketIoSucceeded>;
|
|
13
|
+
get failedObservable(): Observable<TCommonsTicketedSocketIoFailed>;
|
|
14
|
+
}
|
|
15
|
+
export interface ICommonsTicketedSocketIoAutoSetup {
|
|
16
|
+
addConnectCallback(callback: TConnectionCallback): void;
|
|
17
|
+
connect(params?: {
|
|
18
|
+
[key: string]: string | number | boolean;
|
|
19
|
+
}): boolean;
|
|
20
|
+
getId(): Promise<string | undefined>;
|
|
21
|
+
disconnect(): void;
|
|
22
|
+
}
|
|
23
|
+
export interface ICommonsTicketedSocketIoWithAutoSetup extends ICommonsTicketedSocketIo, ICommonsTicketedSocketIoAutoSetup {
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icommons-ticketed-socket-io.mjs","sourceRoot":"","sources":["../../src/interfaces/icommons-ticketed-socket-io.mts"],"names":[],"mappings":"AAAA,2BAA2B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { ICommonsTicketedSocketIo } from '../interfaces/icommons-ticketed-socket-io.mjs';
|
|
3
|
+
type TSocketIoTicketData = {
|
|
4
|
+
ticket: string;
|
|
5
|
+
};
|
|
6
|
+
export type TCommonsTicketedSocketIoError = TSocketIoTicketData & {
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
export type TCommonsTicketedSocketIoProgress = TSocketIoTicketData & {
|
|
10
|
+
src: 'stdout' | 'stderr';
|
|
11
|
+
data: string;
|
|
12
|
+
};
|
|
13
|
+
export type TCommonsTicketedSocketIoSucceeded = TSocketIoTicketData & {
|
|
14
|
+
data: string;
|
|
15
|
+
};
|
|
16
|
+
export type TCommonsTicketedSocketIoFailed = TSocketIoTicketData & {
|
|
17
|
+
data: string;
|
|
18
|
+
};
|
|
19
|
+
export declare class CommonsTicketedSocketIoService implements ICommonsTicketedSocketIo {
|
|
20
|
+
private ns;
|
|
21
|
+
private internalSocketIoId;
|
|
22
|
+
get socketIoId(): string | undefined;
|
|
23
|
+
set socketIoId(id: string | undefined);
|
|
24
|
+
private dispatchedEmitter;
|
|
25
|
+
get dispatchedObservable(): Observable<string>;
|
|
26
|
+
private timedoutEmitter;
|
|
27
|
+
get timedoutObservable(): Observable<string>;
|
|
28
|
+
private cancelledEmitter;
|
|
29
|
+
get cancelledObservable(): Observable<string>;
|
|
30
|
+
private errorEmitter;
|
|
31
|
+
get errorObservable(): Observable<TCommonsTicketedSocketIoError>;
|
|
32
|
+
private progressEmitter;
|
|
33
|
+
get progressObservable(): Observable<TCommonsTicketedSocketIoProgress>;
|
|
34
|
+
private succeededEmitter;
|
|
35
|
+
get succeededObservable(): Observable<TCommonsTicketedSocketIoSucceeded>;
|
|
36
|
+
private failedEmitter;
|
|
37
|
+
get failedObservable(): Observable<TCommonsTicketedSocketIoFailed>;
|
|
38
|
+
constructor(ns: string);
|
|
39
|
+
setupOns(onCallback: (command: string, callback: (data: any) => void) => void): void;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { commonsTypeHasPropertyString } from 'tscommons-esm-core';
|
|
3
|
+
function isTSocketIoTicketData(test) {
|
|
4
|
+
if (!commonsTypeHasPropertyString(test, 'ticket'))
|
|
5
|
+
return false;
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
function isTSocketIoDispatched(test) {
|
|
9
|
+
return isTSocketIoTicketData(test);
|
|
10
|
+
}
|
|
11
|
+
function isTSocketIoCancelled(test) {
|
|
12
|
+
return isTSocketIoTicketData(test);
|
|
13
|
+
}
|
|
14
|
+
function isTSocketIoTimedout(test) {
|
|
15
|
+
return isTSocketIoTicketData(test);
|
|
16
|
+
}
|
|
17
|
+
function isTSocketIoError(test) {
|
|
18
|
+
if (!isTSocketIoTicketData(test))
|
|
19
|
+
return false;
|
|
20
|
+
if (!commonsTypeHasPropertyString(test, 'message'))
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
function isTSocketIoProgress(test) {
|
|
25
|
+
if (!isTSocketIoTicketData(test))
|
|
26
|
+
return false;
|
|
27
|
+
if (!commonsTypeHasPropertyString(test, 'src'))
|
|
28
|
+
return false;
|
|
29
|
+
if (!['stdout', 'stderr'].includes(test.src))
|
|
30
|
+
return false;
|
|
31
|
+
if (!commonsTypeHasPropertyString(test, 'data'))
|
|
32
|
+
return false;
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
function isTSocketIoSucceeded(test) {
|
|
36
|
+
if (!isTSocketIoTicketData(test))
|
|
37
|
+
return false;
|
|
38
|
+
if (!commonsTypeHasPropertyString(test, 'data'))
|
|
39
|
+
return false;
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
function isTSocketIoFailed(test) {
|
|
43
|
+
if (!isTSocketIoTicketData(test))
|
|
44
|
+
return false;
|
|
45
|
+
if (!commonsTypeHasPropertyString(test, 'data'))
|
|
46
|
+
return false;
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
export class CommonsTicketedSocketIoService {
|
|
50
|
+
ns;
|
|
51
|
+
internalSocketIoId;
|
|
52
|
+
get socketIoId() {
|
|
53
|
+
return this.internalSocketIoId;
|
|
54
|
+
}
|
|
55
|
+
set socketIoId(id) {
|
|
56
|
+
this.internalSocketIoId = id;
|
|
57
|
+
}
|
|
58
|
+
dispatchedEmitter = new Subject();
|
|
59
|
+
get dispatchedObservable() {
|
|
60
|
+
return this.dispatchedEmitter;
|
|
61
|
+
}
|
|
62
|
+
timedoutEmitter = new Subject();
|
|
63
|
+
get timedoutObservable() {
|
|
64
|
+
return this.timedoutEmitter;
|
|
65
|
+
}
|
|
66
|
+
cancelledEmitter = new Subject();
|
|
67
|
+
get cancelledObservable() {
|
|
68
|
+
return this.cancelledEmitter;
|
|
69
|
+
}
|
|
70
|
+
errorEmitter = new Subject();
|
|
71
|
+
get errorObservable() {
|
|
72
|
+
return this.errorEmitter;
|
|
73
|
+
}
|
|
74
|
+
progressEmitter = new Subject();
|
|
75
|
+
get progressObservable() {
|
|
76
|
+
return this.progressEmitter;
|
|
77
|
+
}
|
|
78
|
+
succeededEmitter = new Subject();
|
|
79
|
+
get succeededObservable() {
|
|
80
|
+
return this.succeededEmitter;
|
|
81
|
+
}
|
|
82
|
+
failedEmitter = new Subject();
|
|
83
|
+
get failedObservable() {
|
|
84
|
+
return this.failedEmitter;
|
|
85
|
+
}
|
|
86
|
+
constructor(ns) {
|
|
87
|
+
this.ns = ns;
|
|
88
|
+
}
|
|
89
|
+
setupOns(onCallback) {
|
|
90
|
+
onCallback(`${this.ns}-ticketed-error`, (data) => {
|
|
91
|
+
if (!isTSocketIoError(data))
|
|
92
|
+
throw new Error('Data is not TSocketIoError');
|
|
93
|
+
this.errorEmitter.next(data);
|
|
94
|
+
});
|
|
95
|
+
onCallback(`${this.ns}-ticketed-dispatched`, (data) => {
|
|
96
|
+
if (!isTSocketIoDispatched(data))
|
|
97
|
+
throw new Error('Data is not TSocketIoDispatched');
|
|
98
|
+
this.dispatchedEmitter.next(data.ticket);
|
|
99
|
+
});
|
|
100
|
+
onCallback(`${this.ns}-ticketed-timedout`, (data) => {
|
|
101
|
+
if (!isTSocketIoTimedout(data))
|
|
102
|
+
throw new Error('Data is not TSocketIoTimedout');
|
|
103
|
+
this.timedoutEmitter.next(data.ticket);
|
|
104
|
+
});
|
|
105
|
+
onCallback(`${this.ns}-ticketed-cancelled`, (data) => {
|
|
106
|
+
if (!isTSocketIoCancelled(data))
|
|
107
|
+
throw new Error('Data is not TSocketIoCancelled');
|
|
108
|
+
this.cancelledEmitter.next(data.ticket);
|
|
109
|
+
});
|
|
110
|
+
onCallback(`${this.ns}-ticketed-progress`, (data) => {
|
|
111
|
+
if (!isTSocketIoProgress(data))
|
|
112
|
+
throw new Error('Data is not TSocketIoProgress');
|
|
113
|
+
this.progressEmitter.next(data);
|
|
114
|
+
});
|
|
115
|
+
onCallback(`${this.ns}-ticketed-succeeded`, (data) => {
|
|
116
|
+
if (!isTSocketIoSucceeded(data))
|
|
117
|
+
throw new Error('Data is not TSocketIoSucceeded');
|
|
118
|
+
this.succeededEmitter.next(data);
|
|
119
|
+
});
|
|
120
|
+
onCallback(`${this.ns}-ticketed-failed`, (data) => {
|
|
121
|
+
if (!isTSocketIoFailed(data))
|
|
122
|
+
throw new Error('Data is not TSocketIoFailed');
|
|
123
|
+
this.failedEmitter.next(data);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=commons-ticketed-socket-io.service.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commons-ticketed-socket-io.service.mjs","sourceRoot":"","sources":["../../src/services/commons-ticketed-socket-io.service.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
export type TPromiseWithObservables<PromiseT, ProgressObservableT> = {
|
|
3
|
+
promise: Promise<PromiseT>;
|
|
4
|
+
queuedObservable: Observable<string>;
|
|
5
|
+
dispatchedObservable: Observable<void>;
|
|
6
|
+
progressObservable: Observable<ProgressObservableT>;
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tpromise-with-observables.mjs","sourceRoot":"","sources":["../../src/types/tpromise-with-observables.mts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tscommons-esm-socket-io-ticketed",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"tsc": "./node_modules/typescript/bin/tsc",
|
|
7
|
+
"preprepare": "rm -rf ./dist; php ~/Dev/etim.php src/ && npm run tsc",
|
|
8
|
+
"publish-major": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version major && npm install && npm publish && git add . && git commit -m 'publish'",
|
|
9
|
+
"publish-minor": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version minor && npm install && npm publish && git add . && git commit -m 'publish'",
|
|
10
|
+
"publish-patch": "rm -rf dist; npm run tsc && npx eslint . && npm run preprepare && npm version patch && npm install && npm publish && git add . && git commit -m 'publish'"
|
|
11
|
+
},
|
|
12
|
+
"main": "dist/index.mjs",
|
|
13
|
+
"types": "dist/index.d.mjs",
|
|
14
|
+
"type": "module",
|
|
15
|
+
"author": "Pete Morris",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@stylistic/eslint-plugin-ts": "^2.10.1",
|
|
19
|
+
"eslint-plugin-import": "^2.31.0",
|
|
20
|
+
"eslint-plugin-prefer-arrow-functions": "^3.4.1",
|
|
21
|
+
"typescript": "^5.6.3",
|
|
22
|
+
"typescript-eslint": "^8.14.0"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist/**/*"
|
|
26
|
+
],
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"rxjs": "^7.8.1",
|
|
29
|
+
"tscommons-esm-async": "^0.0.2",
|
|
30
|
+
"tscommons-esm-core": "^0.0.2",
|
|
31
|
+
"tscommons-esm-http": "^0.0.3",
|
|
32
|
+
"tscommons-esm-rest": "^0.0.3"
|
|
33
|
+
}
|
|
34
|
+
}
|