cbcore-ts 1.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/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/uicore.iml +9 -0
- package/.idea/vcs.xml +6 -0
- package/.jshintrc +4 -0
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/compiledScripts/CBCore.d.ts +54 -0
- package/compiledScripts/CBCore.js +182 -0
- package/compiledScripts/CBCore.js.map +7 -0
- package/compiledScripts/CBDataInterfaces.d.ts +156 -0
- package/compiledScripts/CBDataInterfaces.js +35 -0
- package/compiledScripts/CBDataInterfaces.js.map +7 -0
- package/compiledScripts/CBLanguageService.d.ts +43 -0
- package/compiledScripts/CBLanguageService.js +167 -0
- package/compiledScripts/CBLanguageService.js.map +7 -0
- package/compiledScripts/CBServerClient.d.ts +10 -0
- package/compiledScripts/CBServerClient.js +88 -0
- package/compiledScripts/CBServerClient.js.map +7 -0
- package/compiledScripts/CBSocketCallbackHolder.d.ts +65 -0
- package/compiledScripts/CBSocketCallbackHolder.js +343 -0
- package/compiledScripts/CBSocketCallbackHolder.js.map +7 -0
- package/compiledScripts/CBSocketClient.d.ts +70 -0
- package/compiledScripts/CBSocketClient.js +371 -0
- package/compiledScripts/CBSocketClient.js.map +7 -0
- package/compiledScripts/index.d.ts +6 -0
- package/compiledScripts/index.js +23 -0
- package/compiledScripts/index.js.map +7 -0
- package/etsc.config.mjs +23 -0
- package/package.json +51 -0
- package/rollup.config.js +49 -0
- package/scripts/CBCore.ts +381 -0
- package/scripts/CBDataInterfaces.ts +336 -0
- package/scripts/CBLanguageService.ts +371 -0
- package/scripts/CBServerClient.ts +147 -0
- package/scripts/CBSocketCallbackHolder.ts +872 -0
- package/scripts/CBSocketClient.ts +748 -0
- package/scripts/index.ts +18 -0
- package/tsconfig.json +69 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var CBSocketClient_exports = {};
|
|
19
|
+
__export(CBSocketClient_exports, {
|
|
20
|
+
CBSocketClient: () => CBSocketClient,
|
|
21
|
+
IS_NOT_SOCKET_ERROR: () => IS_NOT_SOCKET_ERROR,
|
|
22
|
+
IS_SOCKET_ERROR: () => IS_SOCKET_ERROR,
|
|
23
|
+
SocketClient: () => SocketClient
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(CBSocketClient_exports);
|
|
26
|
+
var import_socket = require("socket.io-client");
|
|
27
|
+
var import_uicore_ts = require("../../uicore-ts");
|
|
28
|
+
var import_CBCore = require("./CBCore");
|
|
29
|
+
var import_CBSocketCallbackHolder = require("./CBSocketCallbackHolder");
|
|
30
|
+
function IS_SOCKET_ERROR(object) {
|
|
31
|
+
const result = (0, import_uicore_ts.IS)(object) && object._isCBSocketErrorMessage;
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
function IS_NOT_SOCKET_ERROR(object) {
|
|
35
|
+
return !IS_SOCKET_ERROR(object);
|
|
36
|
+
}
|
|
37
|
+
const _CBSocketClient = class extends import_uicore_ts.UIObject {
|
|
38
|
+
constructor(core) {
|
|
39
|
+
super();
|
|
40
|
+
this._socket = (0, import_socket.io)();
|
|
41
|
+
this._isConnectionEstablished = import_uicore_ts.NO;
|
|
42
|
+
this._collectMessagesToSendLater = import_uicore_ts.NO;
|
|
43
|
+
this._messagesToBeSent = [];
|
|
44
|
+
this._subscribedKeys = {};
|
|
45
|
+
this._callbackHolder = new import_CBSocketCallbackHolder.CBSocketCallbackHolder(this);
|
|
46
|
+
this._core = core;
|
|
47
|
+
this.socket.on("connect", () => {
|
|
48
|
+
console.log("Socket.io connected to server. clientID = " + this.socket + ", socketID = " + this.socket);
|
|
49
|
+
var instanceIdentifier = localStorage.getItem("InstanceIdentifier");
|
|
50
|
+
if ((0, import_uicore_ts.IS_NOT)(instanceIdentifier)) {
|
|
51
|
+
instanceIdentifier = (0, import_uicore_ts.MAKE_ID)();
|
|
52
|
+
localStorage.setItem("InstanceIdentifier", instanceIdentifier);
|
|
53
|
+
}
|
|
54
|
+
const handshakeMessage = {
|
|
55
|
+
accessToken: null,
|
|
56
|
+
userID: this._core.userProfile._id,
|
|
57
|
+
inquiryAccessKey: null,
|
|
58
|
+
instanceIdentifier
|
|
59
|
+
};
|
|
60
|
+
this.socket.emit("CBSocketHandshakeInitMessage", {
|
|
61
|
+
identifier: (0, import_uicore_ts.MAKE_ID)(),
|
|
62
|
+
messageData: handshakeMessage
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
this.socket.on(
|
|
66
|
+
"CBSocketHandshakeResponseMessage",
|
|
67
|
+
(message) => {
|
|
68
|
+
this._isConnectionEstablished = message.messageData.accepted;
|
|
69
|
+
if (!message.messageData.accepted) {
|
|
70
|
+
console.log("SocketIO connection failed.");
|
|
71
|
+
this._core.dialogViewShowerClass.alert(
|
|
72
|
+
"Failed to establish connection to server.",
|
|
73
|
+
() => {
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
} else {
|
|
77
|
+
console.log("SocketIO connection handshake completed.");
|
|
78
|
+
this._callbackHolder = new import_CBSocketCallbackHolder.CBSocketCallbackHolder(this, this._callbackHolder);
|
|
79
|
+
core.userProfile = message.messageData.userProfile;
|
|
80
|
+
this.sendUnsentMessages();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
this.socket.on("disconnect", () => {
|
|
85
|
+
console.log("Socket.io disconnected from server. clientID = " + this.socket + ".");
|
|
86
|
+
this._isConnectionEstablished = import_uicore_ts.NO;
|
|
87
|
+
this._callbackHolder.isValid = import_uicore_ts.NO;
|
|
88
|
+
this._callbackHolder.triggerDisconnectHandlers();
|
|
89
|
+
});
|
|
90
|
+
this.socket.on("CBPerformReconnect", (message) => {
|
|
91
|
+
console.log("Performing socket reconnection.");
|
|
92
|
+
core.reloadSocketConnection();
|
|
93
|
+
if (message) {
|
|
94
|
+
this._core.dialogViewShowerClass.alert(message);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
this._socket.on(
|
|
98
|
+
_CBSocketClient.responseMessageKey,
|
|
99
|
+
(message) => {
|
|
100
|
+
this.didReceiveMessageForKey(_CBSocketClient.responseMessageKey, message);
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
this._socket.on(
|
|
104
|
+
_CBSocketClient.multipleMessageKey,
|
|
105
|
+
(message) => {
|
|
106
|
+
console.log("Received " + message.messageData.length + " messages.");
|
|
107
|
+
this.didReceiveMessageForKey(_CBSocketClient.multipleMessageKey, message);
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
get socket() {
|
|
112
|
+
return this._socket;
|
|
113
|
+
}
|
|
114
|
+
cancelUnsentMessages(messagesToCancel) {
|
|
115
|
+
this._messagesToBeSent = this._messagesToBeSent.filter((messageObject, index, array) => !messagesToCancel.contains(messageObject));
|
|
116
|
+
}
|
|
117
|
+
sendUnsentMessages(receiveResponsesTogether = import_uicore_ts.NO, completion) {
|
|
118
|
+
if (!this._isConnectionEstablished || this._collectMessagesToSendLater) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const groupedMessages = [];
|
|
122
|
+
const didSendFunctions = [];
|
|
123
|
+
this._messagesToBeSent.copy().forEach((messageToBeSentObject) => {
|
|
124
|
+
if (this._isConnectionEstablished) {
|
|
125
|
+
var message = messageToBeSentObject.message;
|
|
126
|
+
if ((0, import_uicore_ts.IS_NOT)(message)) {
|
|
127
|
+
message = "";
|
|
128
|
+
}
|
|
129
|
+
const identifier = (0, import_uicore_ts.MAKE_ID)();
|
|
130
|
+
const completion2 = messageToBeSentObject.completion;
|
|
131
|
+
const messageObject2 = {
|
|
132
|
+
messageData: message,
|
|
133
|
+
identifier,
|
|
134
|
+
keepWaitingForResponses: messageToBeSentObject.keepWaitingForResponses,
|
|
135
|
+
inResponseToIdentifier: messageToBeSentObject.inResponseToMessage.identifier
|
|
136
|
+
};
|
|
137
|
+
const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(
|
|
138
|
+
messageToBeSentObject.key,
|
|
139
|
+
messageObject2,
|
|
140
|
+
messageToBeSentObject.completionPolicy,
|
|
141
|
+
completion2
|
|
142
|
+
);
|
|
143
|
+
if (shouldSendMessage) {
|
|
144
|
+
groupedMessages.push({
|
|
145
|
+
key: messageToBeSentObject.key,
|
|
146
|
+
message: messageObject2
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
didSendFunctions.push(messageToBeSentObject.didSendFunction);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
this._messagesToBeSent = [];
|
|
153
|
+
if ((0, import_uicore_ts.IS_NOT)(groupedMessages.length)) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (groupedMessages.length == 1) {
|
|
157
|
+
console.log("sending 1 unsent message.");
|
|
158
|
+
} else {
|
|
159
|
+
console.log("Sending " + groupedMessages.length + " unsent messages.");
|
|
160
|
+
}
|
|
161
|
+
const messageObject = {
|
|
162
|
+
messageData: groupedMessages,
|
|
163
|
+
identifier: (0, import_uicore_ts.MAKE_ID)(),
|
|
164
|
+
shouldGroupResponses: receiveResponsesTogether
|
|
165
|
+
};
|
|
166
|
+
this._callbackHolder.socketWillSendMultipleMessage(messageObject, completion);
|
|
167
|
+
this.socket.emit(_CBSocketClient.multipleMessageKey, messageObject);
|
|
168
|
+
didSendFunctions.forEach((didSendFunction, index, array) => {
|
|
169
|
+
didSendFunction();
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
sendUserBoundMessageForKeyWithPolicy(key, message, completionPolicy, completion) {
|
|
173
|
+
this._sendMessageForKey(key, message, void 0, import_uicore_ts.NO, completionPolicy, import_uicore_ts.YES, import_uicore_ts.nil, completion);
|
|
174
|
+
}
|
|
175
|
+
sendUserBoundMessageForKey(key, message, completion) {
|
|
176
|
+
this._sendMessageForKey(key, message, void 0, import_uicore_ts.NO, void 0, import_uicore_ts.YES, import_uicore_ts.nil, completion);
|
|
177
|
+
}
|
|
178
|
+
sendMessageForKeyWithPolicy(key, message, completionPolicy, completion) {
|
|
179
|
+
this._sendMessageForKey(key, message, void 0, import_uicore_ts.NO, completionPolicy, import_uicore_ts.NO, import_uicore_ts.nil, completion);
|
|
180
|
+
}
|
|
181
|
+
sendMessageForKey(key, message, completion) {
|
|
182
|
+
this._sendMessageForKey(key, message, void 0, import_uicore_ts.NO, void 0, import_uicore_ts.NO, import_uicore_ts.nil, completion);
|
|
183
|
+
}
|
|
184
|
+
resultForMessageForKey(key, message, completionPolicy, isUserBound = import_uicore_ts.NO) {
|
|
185
|
+
const result = new Promise((resolve, reject) => {
|
|
186
|
+
this._sendMessageForKey(
|
|
187
|
+
key,
|
|
188
|
+
message,
|
|
189
|
+
void 0,
|
|
190
|
+
import_uicore_ts.NO,
|
|
191
|
+
completionPolicy,
|
|
192
|
+
isUserBound,
|
|
193
|
+
import_uicore_ts.nil,
|
|
194
|
+
(responseMessage, respondWithMessage) => resolve({
|
|
195
|
+
responseMessage,
|
|
196
|
+
result: (0, import_uicore_ts.IF)(IS_NOT_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE((0, import_uicore_ts.RETURNER)(void 0)),
|
|
197
|
+
errorResult: (0, import_uicore_ts.IF)(IS_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE((0, import_uicore_ts.RETURNER)(void 0)),
|
|
198
|
+
respondWithMessage
|
|
199
|
+
})
|
|
200
|
+
);
|
|
201
|
+
});
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
_sendMessageForKey(key, message, inResponseToMessage = {}, keepMessageConnectionOpen = import_uicore_ts.NO, completionPolicy = _CBSocketClient.completionPolicy.directOnly, isUserBound = import_uicore_ts.NO, didSendFunction = import_uicore_ts.nil, completion = import_uicore_ts.nil) {
|
|
205
|
+
if ((0, import_uicore_ts.IS_NIL)(message)) {
|
|
206
|
+
message = "";
|
|
207
|
+
}
|
|
208
|
+
if (this._isConnectionEstablished && !this._collectMessagesToSendLater) {
|
|
209
|
+
const identifier = (0, import_uicore_ts.MAKE_ID)();
|
|
210
|
+
const messageObject = {
|
|
211
|
+
messageData: message,
|
|
212
|
+
identifier,
|
|
213
|
+
keepWaitingForResponses: keepMessageConnectionOpen,
|
|
214
|
+
inResponseToIdentifier: inResponseToMessage.identifier
|
|
215
|
+
};
|
|
216
|
+
const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(
|
|
217
|
+
key,
|
|
218
|
+
messageObject,
|
|
219
|
+
completionPolicy,
|
|
220
|
+
completion
|
|
221
|
+
);
|
|
222
|
+
if (shouldSendMessage) {
|
|
223
|
+
this.socket.emit(key, messageObject);
|
|
224
|
+
}
|
|
225
|
+
didSendFunction();
|
|
226
|
+
} else {
|
|
227
|
+
this._messagesToBeSent.push({
|
|
228
|
+
key,
|
|
229
|
+
message,
|
|
230
|
+
inResponseToMessage,
|
|
231
|
+
keepWaitingForResponses: keepMessageConnectionOpen,
|
|
232
|
+
completionPolicy,
|
|
233
|
+
isBoundToUserWithID: (0, import_uicore_ts.IF)(isUserBound)((0, import_uicore_ts.RETURNER)((0, import_uicore_ts.FIRST_OR_NIL)(import_CBCore.CBCore.sharedInstance.userProfile._id)))(),
|
|
234
|
+
didSendFunction,
|
|
235
|
+
completion
|
|
236
|
+
});
|
|
237
|
+
return this._messagesToBeSent.lastElement;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
sendMessagesAsGroup(functionToCall) {
|
|
241
|
+
const collectMessagesToSendLater = this._collectMessagesToSendLater;
|
|
242
|
+
this._collectMessagesToSendLater = import_uicore_ts.YES;
|
|
243
|
+
var result = functionToCall();
|
|
244
|
+
this._collectMessagesToSendLater = collectMessagesToSendLater;
|
|
245
|
+
this.sendUnsentMessages();
|
|
246
|
+
return result;
|
|
247
|
+
}
|
|
248
|
+
sendAndReceiveMessagesAsGroup(functionToCall, completion) {
|
|
249
|
+
const collectMessagesToSendLater = this._collectMessagesToSendLater;
|
|
250
|
+
this._collectMessagesToSendLater = import_uicore_ts.YES;
|
|
251
|
+
var result = functionToCall();
|
|
252
|
+
this._collectMessagesToSendLater = collectMessagesToSendLater;
|
|
253
|
+
this.sendUnsentMessages(import_uicore_ts.YES, completion);
|
|
254
|
+
return result;
|
|
255
|
+
}
|
|
256
|
+
didReceiveMessageForKey(key, message) {
|
|
257
|
+
const sendResponseFunction = function(responseMessage, completion) {
|
|
258
|
+
this._sendMessageForKey(
|
|
259
|
+
_CBSocketClient.responseMessageKey,
|
|
260
|
+
responseMessage,
|
|
261
|
+
message,
|
|
262
|
+
import_uicore_ts.NO,
|
|
263
|
+
void 0,
|
|
264
|
+
import_uicore_ts.NO,
|
|
265
|
+
import_uicore_ts.nil,
|
|
266
|
+
completion
|
|
267
|
+
);
|
|
268
|
+
}.bind(this);
|
|
269
|
+
sendResponseFunction.sendIntermediateResponse = function(updateMessage, completion) {
|
|
270
|
+
this._sendMessageForKey(
|
|
271
|
+
_CBSocketClient.responseMessageKey,
|
|
272
|
+
updateMessage,
|
|
273
|
+
message,
|
|
274
|
+
import_uicore_ts.YES,
|
|
275
|
+
void 0,
|
|
276
|
+
import_uicore_ts.NO,
|
|
277
|
+
import_uicore_ts.nil,
|
|
278
|
+
completion
|
|
279
|
+
);
|
|
280
|
+
}.bind(this);
|
|
281
|
+
const sendUserBoundResponseFunction = function(responseMessage, completion) {
|
|
282
|
+
this._sendMessageForKey(
|
|
283
|
+
_CBSocketClient.responseMessageKey,
|
|
284
|
+
responseMessage,
|
|
285
|
+
message,
|
|
286
|
+
import_uicore_ts.NO,
|
|
287
|
+
void 0,
|
|
288
|
+
import_uicore_ts.YES,
|
|
289
|
+
import_uicore_ts.nil,
|
|
290
|
+
completion
|
|
291
|
+
);
|
|
292
|
+
}.bind(this);
|
|
293
|
+
sendUserBoundResponseFunction.sendIntermediateResponse = function(updateMessage, completion) {
|
|
294
|
+
this._sendMessageForKey(
|
|
295
|
+
_CBSocketClient.responseMessageKey,
|
|
296
|
+
updateMessage,
|
|
297
|
+
message,
|
|
298
|
+
import_uicore_ts.YES,
|
|
299
|
+
void 0,
|
|
300
|
+
import_uicore_ts.YES,
|
|
301
|
+
import_uicore_ts.nil,
|
|
302
|
+
completion
|
|
303
|
+
);
|
|
304
|
+
}.bind(this);
|
|
305
|
+
if (IS_SOCKET_ERROR(message.messageData)) {
|
|
306
|
+
console.log("CBSocketClient did receive error message.");
|
|
307
|
+
console.log(message.messageData);
|
|
308
|
+
}
|
|
309
|
+
this._callbackHolder.socketDidReceiveMessageForKey(key, message, sendResponseFunction);
|
|
310
|
+
}
|
|
311
|
+
addTargetForMessagesForKeys(keys, handlerFunction) {
|
|
312
|
+
keys.forEach(function(key, index, array) {
|
|
313
|
+
this.addTargetForMessagesForKey(key, handlerFunction);
|
|
314
|
+
}.bind(this));
|
|
315
|
+
}
|
|
316
|
+
addTargetForMessagesForKey(key, handlerFunction) {
|
|
317
|
+
this._callbackHolder.registerHandler(key, handlerFunction);
|
|
318
|
+
if ((0, import_uicore_ts.IS_NOT)(this._subscribedKeys[key])) {
|
|
319
|
+
this._socket.on(key, function(message) {
|
|
320
|
+
this.didReceiveMessageForKey(key, message);
|
|
321
|
+
}.bind(this));
|
|
322
|
+
this._subscribedKeys[key] = true;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
addTargetForOneMessageForKey(key, handlerFunction) {
|
|
326
|
+
this._callbackHolder.registerOnetimeHandler(key, handlerFunction);
|
|
327
|
+
if ((0, import_uicore_ts.IS_NOT)(this._subscribedKeys[key])) {
|
|
328
|
+
this._socket.on(key, function(message) {
|
|
329
|
+
this.didReceiveMessageForKey(key, message);
|
|
330
|
+
}.bind(this));
|
|
331
|
+
this._subscribedKeys[key] = true;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
let CBSocketClient = _CBSocketClient;
|
|
336
|
+
CBSocketClient.responseMessageKey = "CBSocketResponseMessage";
|
|
337
|
+
CBSocketClient.multipleMessageKey = "CBSocketMultipleMessage";
|
|
338
|
+
CBSocketClient.disconnectionMessage = {
|
|
339
|
+
_isCBSocketErrorMessage: import_uicore_ts.YES,
|
|
340
|
+
messageData: "Server disconnected"
|
|
341
|
+
};
|
|
342
|
+
CBSocketClient.completionPolicy = {
|
|
343
|
+
"all": "all",
|
|
344
|
+
"allDifferent": "allDifferent",
|
|
345
|
+
"first": "first",
|
|
346
|
+
"last": "last",
|
|
347
|
+
"firstAndLast": "firstAndLast",
|
|
348
|
+
"firstAndLastIfDifferent": "firstAndLastIfDifferent",
|
|
349
|
+
"directOnly": "directOnly",
|
|
350
|
+
"firstOnly": "firstOnly",
|
|
351
|
+
"storedOrFirst": "storedOrFirst"
|
|
352
|
+
};
|
|
353
|
+
const SocketClient = new Proxy({ "name": "SocketClient" }, {
|
|
354
|
+
get(target, key) {
|
|
355
|
+
const result = (messageData, completionPolicy, isUserBound) => import_CBCore.CBCore.sharedInstance.socketClient.resultForMessageForKey(
|
|
356
|
+
key,
|
|
357
|
+
messageData,
|
|
358
|
+
completionPolicy,
|
|
359
|
+
isUserBound
|
|
360
|
+
);
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
365
|
+
0 && (module.exports = {
|
|
366
|
+
CBSocketClient,
|
|
367
|
+
IS_NOT_SOCKET_ERROR,
|
|
368
|
+
IS_SOCKET_ERROR,
|
|
369
|
+
SocketClient
|
|
370
|
+
});
|
|
371
|
+
//# sourceMappingURL=CBSocketClient.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../scripts/CBSocketClient.ts"],
|
|
4
|
+
"sourcesContent": ["import { io, Socket } from \"socket.io-client\"\nimport { FIRST_OR_NIL, IF, IS, IS_NIL, IS_NOT, MAKE_ID, nil, NO, RETURNER, UIObject, YES } from \"../../uicore-ts\"\nimport { CBCore } from \"./CBCore\"\nimport {\n CBSocketHandshakeInitMessage,\n CBSocketHandshakeResponseMessage,\n CBSocketMessage,\n CBSocketMessageCompletionFunction,\n CBSocketMessageHandlerFunction,\n CBSocketMessageSendResponseFunction,\n CBSocketMultipleMessage,\n CBSocketMultipleMessagecompletionFunction,\n CBSocketMultipleMessageObject,\n SocketClientInterface\n} from \"./CBDataInterfaces\"\nimport { CBSocketCallbackHolder } from \"./CBSocketCallbackHolder\"\n\n\ndeclare interface CBSocketClientMessageToBeSent {\n \n key: string;\n message: any;\n \n inResponseToMessage: CBSocketMessage<any>;\n keepWaitingForResponses: boolean;\n \n isBoundToUserWithID: string;\n \n completionPolicy: string;\n \n didSendFunction?: () => void;\n \n completion: CBSocketMessageCompletionFunction;\n \n}\n\n\ndeclare interface CBSocketClientErrorMessage {\n \n _isCBSocketErrorMessage: boolean;\n \n messageData: any;\n \n}\n\n\ntype FilterConditionally<Source, Condition> = Pick<Source, { [K in keyof Source]: Source[K] extends Condition ? K : never }[keyof Source]>;\n\n\nexport function IS_SOCKET_ERROR(object: any): object is CBSocketClientErrorMessage {\n \n const result = (IS(object) && object._isCBSocketErrorMessage)\n \n return result\n \n}\n\nexport function IS_NOT_SOCKET_ERROR(object: any) {\n \n return !IS_SOCKET_ERROR(object)\n \n}\n\n\nexport class CBSocketClient extends UIObject {\n \n _socket: Socket = io()\n _isConnectionEstablished = NO\n \n _collectMessagesToSendLater = NO\n \n _messagesToBeSent: CBSocketClientMessageToBeSent[] = []\n \n static _sharedInstance: CBSocketClient\n \n _core: CBCore\n \n _subscribedKeys: {\n [x: string]: boolean\n } = {}\n \n _callbackHolder = new CBSocketCallbackHolder(this)\n \n static responseMessageKey = \"CBSocketResponseMessage\"\n static multipleMessageKey = \"CBSocketMultipleMessage\"\n \n \n static disconnectionMessage: CBSocketClientErrorMessage = {\n \n _isCBSocketErrorMessage: YES,\n \n messageData: \"Server disconnected\"\n \n }\n \n \n constructor(core: CBCore) {\n \n super()\n \n this._core = core\n \n \n this.socket.on(\"connect\", () => {\n \n console.log(\"Socket.io connected to server. clientID = \" + this.socket + \", socketID = \" + this.socket)\n \n var instanceIdentifier = localStorage.getItem(\"InstanceIdentifier\")\n \n if (IS_NOT(instanceIdentifier)) {\n \n instanceIdentifier = MAKE_ID()\n localStorage.setItem(\"InstanceIdentifier\", instanceIdentifier)\n \n }\n \n const handshakeMessage: CBSocketHandshakeInitMessage = {\n \n accessToken: null,\n userID: this._core.userProfile._id,\n \n inquiryAccessKey: null,\n \n instanceIdentifier: instanceIdentifier\n \n }\n \n this.socket.emit(\"CBSocketHandshakeInitMessage\", {\n \n identifier: MAKE_ID(),\n messageData: handshakeMessage\n \n })\n \n \n })\n \n \n this.socket.on(\n \"CBSocketHandshakeResponseMessage\",\n (message: CBSocketMessage<CBSocketHandshakeResponseMessage>) => {\n \n \n this._isConnectionEstablished = message.messageData.accepted\n \n if (!message.messageData.accepted) {\n \n console.log(\"SocketIO connection failed.\")\n \n this._core.dialogViewShowerClass.alert(\n \"Failed to establish connection to server.\",\n () => {\n }\n )\n \n }\n else {\n \n console.log(\"SocketIO connection handshake completed.\")\n \n this._callbackHolder = new CBSocketCallbackHolder(this, this._callbackHolder)\n \n core.userProfile = message.messageData.userProfile\n \n this.sendUnsentMessages()\n \n }\n \n \n }\n )\n \n \n this.socket.on(\"disconnect\", () => {\n \n console.log(\"Socket.io disconnected from server. clientID = \" + this.socket + \".\")\n \n this._isConnectionEstablished = NO\n \n this._callbackHolder.isValid = NO\n \n this._callbackHolder.triggerDisconnectHandlers()\n \n \n })\n \n \n this.socket.on(\"CBPerformReconnect\", (message?: string) => {\n \n console.log(\"Performing socket reconnection.\")\n \n core.reloadSocketConnection()\n \n if (message) {\n \n this._core.dialogViewShowerClass.alert(message)\n \n }\n \n \n })\n \n \n this._socket.on(\n CBSocketClient.responseMessageKey,\n (message: CBSocketMessage<any>) => {\n \n this.didReceiveMessageForKey(CBSocketClient.responseMessageKey, message)\n \n }\n )\n \n this._socket.on(\n CBSocketClient.multipleMessageKey,\n (message: CBSocketMessage<CBSocketMultipleMessageObject[]>) => {\n \n console.log(\"Received \" + message.messageData.length + \" messages.\")\n this.didReceiveMessageForKey(CBSocketClient.multipleMessageKey, message)\n \n }\n )\n \n \n }\n \n \n get socket() {\n return this._socket\n }\n \n \n cancelUnsentMessages(messagesToCancel: CBSocketClientMessageToBeSent[]) {\n \n this._messagesToBeSent = this._messagesToBeSent.filter((\n messageObject: CBSocketClientMessageToBeSent,\n index: number,\n array: CBSocketClientMessageToBeSent[]\n ) => !messagesToCancel.contains(messageObject))\n \n }\n \n \n sendUnsentMessages(receiveResponsesTogether = NO, completion?: CBSocketMultipleMessagecompletionFunction) {\n \n if (!this._isConnectionEstablished || this._collectMessagesToSendLater) {\n \n return\n \n }\n \n const groupedMessages: CBSocketMultipleMessageObject<any>[] = []\n const didSendFunctions: (() => void)[] = []\n \n \n this._messagesToBeSent.copy().forEach((messageToBeSentObject: CBSocketClientMessageToBeSent) => {\n \n if (this._isConnectionEstablished) {\n \n var message = messageToBeSentObject.message\n if (IS_NOT(message)) {\n message = \"\"\n }\n \n const identifier = MAKE_ID()\n \n const completion = messageToBeSentObject.completion\n \n const messageObject: CBSocketMessage<any> = {\n \n messageData: message,\n identifier: identifier,\n keepWaitingForResponses: messageToBeSentObject.keepWaitingForResponses,\n inResponseToIdentifier: messageToBeSentObject.inResponseToMessage.identifier\n \n }\n \n const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(\n messageToBeSentObject.key,\n messageObject,\n messageToBeSentObject.completionPolicy,\n completion\n )\n \n if (shouldSendMessage) {\n \n \n groupedMessages.push({\n \n key: messageToBeSentObject.key,\n message: messageObject\n \n })\n \n \n }\n \n didSendFunctions.push(messageToBeSentObject.didSendFunction)\n \n \n }\n \n })\n \n \n this._messagesToBeSent = []\n \n if (IS_NOT(groupedMessages.length)) {\n \n return\n \n }\n \n if (groupedMessages.length == 1) {\n \n console.log(\"sending 1 unsent message.\")\n \n }\n else {\n \n console.log(\"Sending \" + groupedMessages.length + \" unsent messages.\")\n \n }\n \n \n const messageObject: CBSocketMultipleMessage = {\n \n messageData: groupedMessages,\n identifier: MAKE_ID(),\n \n shouldGroupResponses: receiveResponsesTogether\n \n }\n \n //if (receiveResponsesTogether) {\n \n this._callbackHolder.socketWillSendMultipleMessage(messageObject, completion)\n \n //}\n \n this.socket.emit(CBSocketClient.multipleMessageKey, messageObject)\n \n \n didSendFunctions.forEach((didSendFunction, index, array) => {\n didSendFunction()\n })\n \n }\n \n \n static completionPolicy = {\n \n \"all\": \"all\",\n \"allDifferent\": \"allDifferent\",\n \"first\": \"first\",\n \"last\": \"last\",\n \"firstAndLast\": \"firstAndLast\",\n \"firstAndLastIfDifferent\": \"firstAndLastIfDifferent\",\n \"directOnly\": \"directOnly\",\n \"firstOnly\": \"firstOnly\",\n \"storedOrFirst\": \"storedOrFirst\"\n \n }\n \n \n sendUserBoundMessageForKeyWithPolicy(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n \n this._sendMessageForKey(key as string, message, undefined, NO, completionPolicy, YES, nil, completion)\n \n }\n \n sendUserBoundMessageForKey(\n key: keyof SocketClientInterface,\n message: any,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(key as string, message, undefined, NO, undefined, YES, nil, completion)\n \n }\n \n sendMessageForKeyWithPolicy(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy: keyof typeof CBSocketClient.completionPolicy,\n completion?: CBSocketMessageCompletionFunction\n ) {\n \n \n this._sendMessageForKey(key as string, message, undefined, NO, completionPolicy, NO, nil, completion)\n \n }\n \n sendMessageForKey(key: keyof SocketClientInterface, message: any, completion?: CBSocketMessageCompletionFunction) {\n \n this._sendMessageForKey(key as string, message, undefined, NO, undefined, NO, nil, completion)\n \n }\n \n \n resultForMessageForKey(\n key: keyof SocketClientInterface,\n message: any,\n completionPolicy?: keyof typeof CBSocketClient.completionPolicy,\n isUserBound = NO\n ) {\n \n const result = new Promise<{\n \n responseMessage: any,\n result: any,\n errorResult: any,\n \n respondWithMessage: CBSocketMessageSendResponseFunction\n \n }>((resolve, reject) => {\n \n this._sendMessageForKey(\n key as string,\n message,\n undefined,\n NO,\n completionPolicy,\n isUserBound,\n nil,\n (responseMessage, respondWithMessage) => resolve({\n \n responseMessage: responseMessage,\n result: IF(IS_NOT_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),\n errorResult: IF(IS_SOCKET_ERROR(responseMessage))(() => responseMessage).ELSE(RETURNER(undefined)),\n \n respondWithMessage: respondWithMessage\n \n })\n )\n \n })\n \n return result\n \n }\n \n \n _sendMessageForKey(\n key: string,\n message: any,\n inResponseToMessage: CBSocketMessage<any> = {} as any,\n keepMessageConnectionOpen = NO,\n completionPolicy = CBSocketClient.completionPolicy.directOnly,\n isUserBound = NO,\n didSendFunction: () => void = nil,\n completion: CBSocketMessageCompletionFunction = nil\n ) {\n \n if (IS_NIL(message)) {\n \n message = \"\"\n \n }\n \n if (this._isConnectionEstablished && !this._collectMessagesToSendLater) {\n \n const identifier = MAKE_ID()\n \n const messageObject: CBSocketMessage<any> = {\n \n messageData: message,\n identifier: identifier,\n keepWaitingForResponses: keepMessageConnectionOpen,\n inResponseToIdentifier: inResponseToMessage.identifier\n \n }\n \n const shouldSendMessage = this._callbackHolder.socketShouldSendMessage(\n key,\n messageObject,\n completionPolicy,\n completion\n )\n \n if (shouldSendMessage) {\n \n this.socket.emit(key, messageObject)\n \n }\n \n didSendFunction()\n \n }\n else {\n \n this._messagesToBeSent.push({\n \n key: key,\n message: message,\n inResponseToMessage: inResponseToMessage,\n keepWaitingForResponses: keepMessageConnectionOpen,\n completionPolicy: completionPolicy,\n isBoundToUserWithID: IF(isUserBound)(RETURNER(FIRST_OR_NIL(CBCore.sharedInstance.userProfile._id)))(),\n didSendFunction: didSendFunction,\n completion: completion\n \n })\n \n return this._messagesToBeSent.lastElement\n \n }\n \n }\n \n \n sendMessagesAsGroup<FunctionReturnType extends object>(functionToCall: () => FunctionReturnType) {\n \n const collectMessagesToSendLater = this._collectMessagesToSendLater\n \n this._collectMessagesToSendLater = YES\n \n var result = functionToCall()\n \n this._collectMessagesToSendLater = collectMessagesToSendLater\n \n this.sendUnsentMessages()\n \n return result\n \n }\n \n sendAndReceiveMessagesAsGroup<FunctionReturnType extends object>(\n functionToCall: () => FunctionReturnType,\n completion?: CBSocketMultipleMessagecompletionFunction\n ) {\n \n const collectMessagesToSendLater = this._collectMessagesToSendLater\n \n this._collectMessagesToSendLater = YES\n \n var result = functionToCall()\n \n this._collectMessagesToSendLater = collectMessagesToSendLater\n \n this.sendUnsentMessages(YES, completion)\n \n return result\n \n }\n \n \n didReceiveMessageForKey(key: string, message: CBSocketMessage<any>) {\n \n \n const sendResponseFunction: CBSocketMessageSendResponseFunction = function (\n this: CBSocketClient,\n responseMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n responseMessage,\n message,\n NO,\n undefined,\n NO,\n nil,\n completion\n )\n \n }.bind(this) as any\n \n sendResponseFunction.sendIntermediateResponse = function (\n this: CBSocketClient,\n updateMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n updateMessage,\n message,\n YES,\n undefined,\n NO,\n nil,\n completion\n )\n \n }.bind(this)\n \n const sendUserBoundResponseFunction: CBSocketMessageSendResponseFunction = function (\n this: CBSocketClient,\n responseMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n responseMessage,\n message,\n NO,\n undefined,\n YES,\n nil,\n completion\n )\n \n }.bind(this) as any\n \n sendUserBoundResponseFunction.sendIntermediateResponse = function (\n this: CBSocketClient,\n updateMessage: any,\n completion: CBSocketMessageCompletionFunction\n ) {\n \n this._sendMessageForKey(\n CBSocketClient.responseMessageKey,\n updateMessage,\n message,\n YES,\n undefined,\n YES,\n nil,\n completion\n )\n \n }.bind(this)\n \n if (IS_SOCKET_ERROR(message.messageData)) {\n \n console.log(\"CBSocketClient did receive error message.\")\n \n console.log(message.messageData)\n \n \n }\n \n \n this._callbackHolder.socketDidReceiveMessageForKey(key, message, sendResponseFunction)\n \n }\n \n \n addTargetForMessagesForKeys(keys: string[], handlerFunction: CBSocketMessageHandlerFunction) {\n keys.forEach(function (this: CBSocketClient, key: string, index: number, array: string[]) {\n this.addTargetForMessagesForKey(key, handlerFunction)\n }.bind(this))\n }\n \n \n addTargetForMessagesForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction) {\n \n this._callbackHolder.registerHandler(key, handlerFunction)\n \n if (IS_NOT(this._subscribedKeys[key])) {\n \n this._socket.on(key, function (this: CBSocketClient, message: CBSocketMessage<any>) {\n \n this.didReceiveMessageForKey(key, message)\n \n }.bind(this))\n \n this._subscribedKeys[key] = true\n \n }\n \n \n }\n \n addTargetForOneMessageForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction) {\n \n this._callbackHolder.registerOnetimeHandler(key, handlerFunction)\n \n if (IS_NOT(this._subscribedKeys[key])) {\n \n this._socket.on(key, function (this: CBSocketClient, message: CBSocketMessage<any>) {\n \n this.didReceiveMessageForKey(key, message)\n \n }.bind(this))\n \n this._subscribedKeys[key] = true\n \n }\n \n \n }\n \n \n}\n\n\nexport const SocketClient: SocketClientInterface = new Proxy({ \"name\": \"SocketClient\" }, {\n \n get(target, key) {\n \n const result = (\n messageData,\n completionPolicy,\n isUserBound\n ) => CBCore.sharedInstance.socketClient.resultForMessageForKey(\n key as string,\n messageData,\n completionPolicy,\n isUserBound\n )\n \n \n return result\n \n }\n \n}) as any\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["completion", "messageObject"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var scripts_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(scripts_exports);
|
|
17
|
+
__reExport(scripts_exports, require("./CBCore"), module.exports);
|
|
18
|
+
__reExport(scripts_exports, require("./CBServerClient"), module.exports);
|
|
19
|
+
__reExport(scripts_exports, require("./CBSocketClient"), module.exports);
|
|
20
|
+
__reExport(scripts_exports, require("./CBSocketCallbackHolder"), module.exports);
|
|
21
|
+
__reExport(scripts_exports, require("./CBLanguageService"), module.exports);
|
|
22
|
+
__reExport(scripts_exports, require("./CBDataInterfaces"), module.exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../scripts/index.ts"],
|
|
4
|
+
"sourcesContent": ["\nexport * from \"./CBCore\"\nexport * from \"./CBServerClient\"\nexport * from \"./CBSocketClient\"\nexport * from \"./CBSocketCallbackHolder\"\nexport * from \"./CBLanguageService\"\nexport * from \"./CBDataInterfaces\"\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AACA,4BAAc,qBADd;AAEA,4BAAc,6BAFd;AAGA,4BAAc,6BAHd;AAIA,4BAAc,qCAJd;AAKA,4BAAc,gCALd;AAMA,4BAAc,+BANd;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/etsc.config.mjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import inlineWorkerPlugin from "esbuild-plugin-inline-worker"
|
|
2
|
+
import {BuildOptions} from "esbuild"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @type {BuildOptions} BuildOptions for ESBuild.
|
|
7
|
+
*/
|
|
8
|
+
const buildOptions = {
|
|
9
|
+
|
|
10
|
+
plugins: [inlineWorkerPlugin({sourcemap: "inline"})],
|
|
11
|
+
sourcemap: true,
|
|
12
|
+
write: true,
|
|
13
|
+
minify: false
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
module.exports = {
|
|
18
|
+
esbuild: buildOptions
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cbcore-ts",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CBCore is a library to build web applications using pure Typescript.",
|
|
5
|
+
"main": "compiledScripts/index.js",
|
|
6
|
+
"types": "compiledScripts/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "etsc && tsc --emitDeclarationOnly",
|
|
9
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
10
|
+
"prepare": "npm run build"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/inimeseke/UICore-TS.git"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"UICore",
|
|
18
|
+
"UIKit",
|
|
19
|
+
"Apple",
|
|
20
|
+
"IOS",
|
|
21
|
+
"UI",
|
|
22
|
+
"Framework",
|
|
23
|
+
"Native-like",
|
|
24
|
+
"Native",
|
|
25
|
+
"Typescript"
|
|
26
|
+
],
|
|
27
|
+
"author": "Mart Ernits",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/inimeseke/UICore-TS/issues"
|
|
31
|
+
},
|
|
32
|
+
"homepage": "https://github.com/inimeseke/UICore-TS",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@types/object-hash": "^2.1.1",
|
|
35
|
+
"object-hash": "^2.1.1",
|
|
36
|
+
"socket.io-client": "^4.5.2",
|
|
37
|
+
"uicore-ts": "^1.0.11"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@rollup/plugin-commonjs": "^23.0.0",
|
|
41
|
+
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
42
|
+
"esbuild": "^0.14.53",
|
|
43
|
+
"esbuild-node-tsc": "^1.8.8",
|
|
44
|
+
"esbuild-plugin-inline-worker": "^0.1.1",
|
|
45
|
+
"etsc": "^0.1.0",
|
|
46
|
+
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
47
|
+
"rollup-plugin-typescript2": "^0.32.1",
|
|
48
|
+
"rollup-plugin-web-worker-loader": "^1.6.1",
|
|
49
|
+
"typescript": "^4.7.4"
|
|
50
|
+
}
|
|
51
|
+
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {nodeResolve} from "@rollup/plugin-node-resolve"
|
|
2
|
+
import path from "path"
|
|
3
|
+
import sourcemaps from "rollup-plugin-sourcemaps"
|
|
4
|
+
import webWorkerLoader from "rollup-plugin-web-worker-loader"
|
|
5
|
+
import typescript from "rollup-plugin-typescript2"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const onwarn = (warning, rollupWarning) => {
|
|
9
|
+
|
|
10
|
+
// Silence circular dependency warning for CBCore
|
|
11
|
+
if (
|
|
12
|
+
warning.code === "CIRCULAR_DEPENDENCY"
|
|
13
|
+
&& !warning.importer.indexOf(path.normalize("scripts/CBCore/CBCore.ts"))
|
|
14
|
+
) {
|
|
15
|
+
return
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
rollupWarning(warning)
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default {
|
|
23
|
+
input: "./scripts/index.ts",
|
|
24
|
+
output: {
|
|
25
|
+
|
|
26
|
+
dir: "compiledScripts",
|
|
27
|
+
format: "cjs",
|
|
28
|
+
sourcemap: true
|
|
29
|
+
|
|
30
|
+
},
|
|
31
|
+
onwarn: onwarn,
|
|
32
|
+
plugins: [
|
|
33
|
+
nodeResolve({
|
|
34
|
+
|
|
35
|
+
browser: true
|
|
36
|
+
|
|
37
|
+
}),
|
|
38
|
+
typescript(),
|
|
39
|
+
sourcemaps(),
|
|
40
|
+
webWorkerLoader({
|
|
41
|
+
|
|
42
|
+
targetPlatform: "browser",
|
|
43
|
+
sourcemap: true,
|
|
44
|
+
pattern: /web-worker:(.+)/,
|
|
45
|
+
inline: true
|
|
46
|
+
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
}
|