@based/server 3.4.0 → 3.4.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.
Files changed (168) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/handlers/removeField/index.js +1 -0
  3. package/dist/handlers/removeField/index.js.map +1 -1
  4. package/dist/secrets.js +6 -3
  5. package/dist/secrets.js.map +1 -1
  6. package/package.json +1 -1
  7. package/dist/auth/authorize.d.ts +0 -2
  8. package/dist/auth/authorize.js +0 -8
  9. package/dist/auth/authorize.js.map +0 -1
  10. package/dist/auth/authorizeAdvanced.d.ts +0 -2
  11. package/dist/auth/authorizeAdvanced.js +0 -10
  12. package/dist/auth/authorizeAdvanced.js.map +0 -1
  13. package/dist/auth/defaults/authorize.d.ts +0 -2
  14. package/dist/auth/defaults/authorize.js +0 -8
  15. package/dist/auth/defaults/authorize.js.map +0 -1
  16. package/dist/auth/defaults/authorizeAdvanced.d.ts +0 -2
  17. package/dist/auth/defaults/authorizeAdvanced.js +0 -8
  18. package/dist/auth/defaults/authorizeAdvanced.js.map +0 -1
  19. package/dist/auth/defaults/index.d.ts +0 -2
  20. package/dist/auth/defaults/index.js +0 -19
  21. package/dist/auth/defaults/index.js.map +0 -1
  22. package/dist/auth/index.d.ts +0 -10
  23. package/dist/auth/index.js +0 -23
  24. package/dist/auth/index.js.map +0 -1
  25. package/dist/error.d.ts +0 -34
  26. package/dist/error.js +0 -107
  27. package/dist/error.js.map +0 -1
  28. package/dist/functions/index.d.ts +0 -31
  29. package/dist/functions/index.js +0 -200
  30. package/dist/functions/index.js.map +0 -1
  31. package/dist/functions/timeout.d.ts +0 -3
  32. package/dist/functions/timeout.js +0 -23
  33. package/dist/functions/timeout.js.map +0 -1
  34. package/dist/network/http/authorize.d.ts +0 -3
  35. package/dist/network/http/authorize.js +0 -30
  36. package/dist/network/http/authorize.js.map +0 -1
  37. package/dist/network/http/compress.d.ts +0 -6
  38. package/dist/network/http/compress.js +0 -47
  39. package/dist/network/http/compress.js.map +0 -1
  40. package/dist/network/http/end.d.ts +0 -4
  41. package/dist/network/http/end.js +0 -19
  42. package/dist/network/http/end.js.map +0 -1
  43. package/dist/network/http/function/index.d.ts +0 -3
  44. package/dist/network/http/function/index.js +0 -82
  45. package/dist/network/http/function/index.js.map +0 -1
  46. package/dist/network/http/function/stream/DataStream.d.ts +0 -7
  47. package/dist/network/http/function/stream/DataStream.js +0 -17
  48. package/dist/network/http/function/stream/DataStream.js.map +0 -1
  49. package/dist/network/http/function/stream/index.d.ts +0 -8
  50. package/dist/network/http/function/stream/index.js +0 -93
  51. package/dist/network/http/function/stream/index.js.map +0 -1
  52. package/dist/network/http/function/stream/multipartFormStream.d.ts +0 -0
  53. package/dist/network/http/function/stream/multipartFormStream.js +0 -194
  54. package/dist/network/http/function/stream/multipartFormStream.js.map +0 -1
  55. package/dist/network/http/function/stream/stream.d.ts +0 -4
  56. package/dist/network/http/function/stream/stream.js +0 -49
  57. package/dist/network/http/function/stream/stream.js.map +0 -1
  58. package/dist/network/http/function.d.ts +0 -3
  59. package/dist/network/http/function.js +0 -46
  60. package/dist/network/http/function.js.map +0 -1
  61. package/dist/network/http/get.d.ts +0 -3
  62. package/dist/network/http/get.js +0 -143
  63. package/dist/network/http/get.js.map +0 -1
  64. package/dist/network/http/index.d.ts +0 -3
  65. package/dist/network/http/index.js +0 -125
  66. package/dist/network/http/index.js.map +0 -1
  67. package/dist/network/http/readBody.d.ts +0 -2
  68. package/dist/network/http/readBody.js +0 -134
  69. package/dist/network/http/readBody.js.map +0 -1
  70. package/dist/network/http/readPostData.d.ts +0 -3
  71. package/dist/network/http/readPostData.js +0 -50
  72. package/dist/network/http/readPostData.js.map +0 -1
  73. package/dist/network/http/send.d.ts +0 -6
  74. package/dist/network/http/send.js +0 -65
  75. package/dist/network/http/send.js.map +0 -1
  76. package/dist/network/http/sendError.d.ts +0 -4
  77. package/dist/network/http/sendError.js +0 -27
  78. package/dist/network/http/sendError.js.map +0 -1
  79. package/dist/network/http/stream/DataStream.d.ts +0 -7
  80. package/dist/network/http/stream/DataStream.js +0 -17
  81. package/dist/network/http/stream/DataStream.js.map +0 -1
  82. package/dist/network/http/stream/formStream.d.ts +0 -4
  83. package/dist/network/http/stream/formStream.js +0 -184
  84. package/dist/network/http/stream/formStream.js.map +0 -1
  85. package/dist/network/http/stream/getExtenstion.d.ts +0 -2
  86. package/dist/network/http/stream/getExtenstion.js +0 -22
  87. package/dist/network/http/stream/getExtenstion.js.map +0 -1
  88. package/dist/network/http/stream/index.d.ts +0 -9
  89. package/dist/network/http/stream/index.js +0 -42
  90. package/dist/network/http/stream/index.js.map +0 -1
  91. package/dist/network/http/stream/multipartFormStream.d.ts +0 -0
  92. package/dist/network/http/stream/multipartFormStream.js +0 -194
  93. package/dist/network/http/stream/multipartFormStream.js.map +0 -1
  94. package/dist/network/http/stream/storeFile.d.ts +0 -5
  95. package/dist/network/http/stream/storeFile.js +0 -30
  96. package/dist/network/http/stream/storeFile.js.map +0 -1
  97. package/dist/network/http/stream/stream.d.ts +0 -4
  98. package/dist/network/http/stream/stream.js +0 -49
  99. package/dist/network/http/stream/stream.js.map +0 -1
  100. package/dist/network/http/stream/types.d.ts +0 -9
  101. package/dist/network/http/stream/types.js +0 -3
  102. package/dist/network/http/stream/types.js.map +0 -1
  103. package/dist/network/http/streamFunction/DataStream.d.ts +0 -7
  104. package/dist/network/http/streamFunction/DataStream.js +0 -17
  105. package/dist/network/http/streamFunction/DataStream.js.map +0 -1
  106. package/dist/network/http/streamFunction/endStreamRequest.d.ts +0 -3
  107. package/dist/network/http/streamFunction/endStreamRequest.js +0 -20
  108. package/dist/network/http/streamFunction/endStreamRequest.js.map +0 -1
  109. package/dist/network/http/streamFunction/getExtension.d.ts +0 -2
  110. package/dist/network/http/streamFunction/getExtension.js +0 -22
  111. package/dist/network/http/streamFunction/getExtension.js.map +0 -1
  112. package/dist/network/http/streamFunction/index.d.ts +0 -3
  113. package/dist/network/http/streamFunction/index.js +0 -71
  114. package/dist/network/http/streamFunction/index.js.map +0 -1
  115. package/dist/network/http/streamFunction/multipartFormStream.d.ts +0 -5
  116. package/dist/network/http/streamFunction/multipartFormStream.js +0 -189
  117. package/dist/network/http/streamFunction/multipartFormStream.js.map +0 -1
  118. package/dist/network/http/streamFunction/multipartStream.d.ts +0 -13
  119. package/dist/network/http/streamFunction/multipartStream.js +0 -166
  120. package/dist/network/http/streamFunction/multipartStream.js.map +0 -1
  121. package/dist/network/http/streamFunction/stream.d.ts +0 -4
  122. package/dist/network/http/streamFunction/stream.js +0 -106
  123. package/dist/network/http/streamFunction/stream.js.map +0 -1
  124. package/dist/network/index.d.ts +0 -4
  125. package/dist/network/index.js +0 -84
  126. package/dist/network/index.js.map +0 -1
  127. package/dist/network/message/auth.d.ts +0 -4
  128. package/dist/network/message/auth.js +0 -35
  129. package/dist/network/message/auth.js.map +0 -1
  130. package/dist/network/message/function.d.ts +0 -3
  131. package/dist/network/message/function.js +0 -70
  132. package/dist/network/message/function.js.map +0 -1
  133. package/dist/network/message/get.d.ts +0 -3
  134. package/dist/network/message/get.js +0 -111
  135. package/dist/network/message/get.js.map +0 -1
  136. package/dist/network/message/index.d.ts +0 -3
  137. package/dist/network/message/index.js +0 -61
  138. package/dist/network/message/index.js.map +0 -1
  139. package/dist/network/message/observable.d.ts +0 -5
  140. package/dist/network/message/observable.js +0 -105
  141. package/dist/network/message/observable.js.map +0 -1
  142. package/dist/network/message/send.d.ts +0 -3
  143. package/dist/network/message/send.js +0 -11
  144. package/dist/network/message/send.js.map +0 -1
  145. package/dist/network/rest/function.d.ts +0 -3
  146. package/dist/network/rest/function.js +0 -85
  147. package/dist/network/rest/function.js.map +0 -1
  148. package/dist/network/rest/index.d.ts +0 -3
  149. package/dist/network/rest/index.js +0 -65
  150. package/dist/network/rest/index.js.map +0 -1
  151. package/dist/network/upgrade.d.ts +0 -4
  152. package/dist/network/upgrade.js +0 -48
  153. package/dist/network/upgrade.js.map +0 -1
  154. package/dist/observable/index.d.ts +0 -8
  155. package/dist/observable/index.js +0 -224
  156. package/dist/observable/index.js.map +0 -1
  157. package/dist/protocol.d.ts +0 -18
  158. package/dist/protocol.js +0 -206
  159. package/dist/protocol.js.map +0 -1
  160. package/dist/server.d.ts +0 -28
  161. package/dist/server.js +0 -96
  162. package/dist/server.js.map +0 -1
  163. package/dist/workers/index.d.ts +0 -0
  164. package/dist/workers/index.js +0 -20
  165. package/dist/workers/index.js.map +0 -1
  166. package/dist/workers/workerCode.d.ts +0 -12
  167. package/dist/workers/workerCode.js +0 -46
  168. package/dist/workers/workerCode.js.map +0 -1
package/dist/protocol.js DELETED
@@ -1,206 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.encodeErrorResponse = exports.encodeAuthResponse = exports.encodeObservableDiffResponse = exports.encodeObservableResponse = exports.encodeGetResponse = exports.encodeFunctionResponse = exports.decodeName = exports.decodePayload = exports.valueToBuffer = exports.encodeHeader = exports.readUint8 = exports.storeUint8 = exports.decodeHeader = void 0;
7
- const node_zlib_1 = __importDefault(require("node:zlib"));
8
- const textDecoder = new TextDecoder();
9
- const decodeHeader = (nr) => {
10
- // 4 bytes
11
- // type (3 bits)
12
- // 0 = function
13
- // 1 = subscribe
14
- // 2 = unsubscribe
15
- // 3 = get from observable
16
- // 4 = auth
17
- // 5 = error
18
- // isDeflate (1 bit)
19
- // len (28 bits)
20
- const len = nr >> 4;
21
- const meta = nr & 15;
22
- const type = meta >> 1;
23
- const isDeflate = meta & 1;
24
- return {
25
- type,
26
- isDeflate: isDeflate === 1,
27
- len,
28
- };
29
- };
30
- exports.decodeHeader = decodeHeader;
31
- const storeUint8 = (buff, n, start, len) => {
32
- for (let index = start; index < start + len; index++) {
33
- const byte = n & 0xff;
34
- buff[index] = byte;
35
- n = (n - byte) / 256;
36
- }
37
- };
38
- exports.storeUint8 = storeUint8;
39
- const readUint8 = (buff, start, len) => {
40
- let n = 0;
41
- const s = len - 1 + start;
42
- for (let i = s; i >= start; i--) {
43
- n = n * 256 + buff[i];
44
- }
45
- return n;
46
- };
47
- exports.readUint8 = readUint8;
48
- const encodeHeader = (type, isDeflate, len) => {
49
- // 4 bytes
50
- // type (3 bits)
51
- // 0 = functionData
52
- // 1 = subscriptionData
53
- // 2 = subscriptionDiffData
54
- // isDeflate (1 bit)
55
- // len (28 bits)
56
- const encodedMeta = (type << 1) + (isDeflate ? 1 : 0);
57
- const nr = (len << 4) + encodedMeta;
58
- return nr;
59
- };
60
- exports.encodeHeader = encodeHeader;
61
- const valueToBuffer = (payload) => {
62
- // can use a more elloborate typed response e.g. number etc in there
63
- if (payload === undefined) {
64
- return Buffer.from([]);
65
- }
66
- // only stringify if not string...
67
- return Buffer.from(JSON.stringify(payload));
68
- };
69
- exports.valueToBuffer = valueToBuffer;
70
- const decodePayload = (payload, isDeflate) => {
71
- if (!isDeflate) {
72
- return textDecoder.decode(payload);
73
- }
74
- const buffer = node_zlib_1.default.inflateRawSync(payload);
75
- return textDecoder.decode(buffer);
76
- };
77
- exports.decodePayload = decodePayload;
78
- const decodeName = (arr, start, end) => {
79
- const name = new Uint8Array(arr.slice(start, end));
80
- return textDecoder.decode(name);
81
- };
82
- exports.decodeName = decodeName;
83
- const encodeFunctionResponse = (id, buffer) => {
84
- // Type 0
85
- // | 4 header | 3 id | * payload |
86
- let isDeflate = false;
87
- // implement later
88
- const chunks = 1;
89
- if (buffer.length > 100) {
90
- isDeflate = true;
91
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
92
- }
93
- if (chunks === 1) {
94
- const headerSize = 4;
95
- const idSize = 3;
96
- const msgSize = idSize + buffer.length;
97
- const header = (0, exports.encodeHeader)(0, isDeflate, msgSize);
98
- const array = new Uint8Array(headerSize + msgSize);
99
- (0, exports.storeUint8)(array, header, 0, 4);
100
- (0, exports.storeUint8)(array, id, 4, 3);
101
- if (buffer.length) {
102
- array.set(buffer, 7);
103
- }
104
- return array;
105
- }
106
- else {
107
- console.warn('chunk not implemented yet');
108
- return new Uint8Array(0);
109
- }
110
- };
111
- exports.encodeFunctionResponse = encodeFunctionResponse;
112
- const encodeGetResponse = (id) => {
113
- // Type 4
114
- // | 4 header | 8 id |
115
- const header = (0, exports.encodeHeader)(3, false, 8);
116
- const array = new Uint8Array(12);
117
- (0, exports.storeUint8)(array, header, 0, 4);
118
- (0, exports.storeUint8)(array, id, 4, 8);
119
- return array;
120
- };
121
- exports.encodeGetResponse = encodeGetResponse;
122
- const encodeObservableResponse = (id, checksum, buffer) => {
123
- // Type 1 (full data)
124
- // | 4 header | 8 id | 8 checksum | * payload |
125
- let isDeflate = false;
126
- // implement later
127
- const chunks = 1;
128
- if (buffer.length > 100) {
129
- isDeflate = true;
130
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
131
- }
132
- if (chunks === 1) {
133
- const msgSize = 16 + buffer.length;
134
- const header = (0, exports.encodeHeader)(1, isDeflate, msgSize);
135
- const array = new Uint8Array(4 + msgSize);
136
- (0, exports.storeUint8)(array, header, 0, 4);
137
- (0, exports.storeUint8)(array, id, 4, 8);
138
- (0, exports.storeUint8)(array, checksum, 12, 8);
139
- if (buffer.length) {
140
- array.set(buffer, 20);
141
- }
142
- return [array, isDeflate];
143
- }
144
- else {
145
- console.warn('chunk not implemented yet');
146
- return [new Uint8Array(0), false];
147
- }
148
- };
149
- exports.encodeObservableResponse = encodeObservableResponse;
150
- const encodeObservableDiffResponse = (id, checksum, previousChecksum, buffer) => {
151
- // Type 2 (diff data)
152
- // | 4 header | 8 id | 8 checksum | 8 previousChecksum | * diff |
153
- let isDeflate = false;
154
- // implement later
155
- const chunks = 1;
156
- if (buffer.length > 100) {
157
- isDeflate = true;
158
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
159
- }
160
- if (chunks === 1) {
161
- const msgSize = 24 + buffer.length;
162
- const header = (0, exports.encodeHeader)(2, isDeflate, msgSize);
163
- const array = new Uint8Array(4 + msgSize);
164
- (0, exports.storeUint8)(array, header, 0, 4);
165
- (0, exports.storeUint8)(array, id, 4, 8);
166
- (0, exports.storeUint8)(array, checksum, 12, 8);
167
- (0, exports.storeUint8)(array, previousChecksum, 20, 8);
168
- if (buffer.length) {
169
- array.set(buffer, 28);
170
- }
171
- return array;
172
- }
173
- else {
174
- console.warn('chunk not implemented yet');
175
- return new Uint8Array(0);
176
- }
177
- };
178
- exports.encodeObservableDiffResponse = encodeObservableDiffResponse;
179
- const encodeSimpleResponse = (type, buffer) => {
180
- // | 4 header | * payload |
181
- let isDeflate = false;
182
- if (buffer.length > 100) {
183
- isDeflate = true;
184
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
185
- }
186
- const headerSize = 4;
187
- const msgSize = buffer.length;
188
- const header = (0, exports.encodeHeader)(type, isDeflate, msgSize);
189
- const array = new Uint8Array(headerSize + msgSize);
190
- (0, exports.storeUint8)(array, header, 0, 4);
191
- if (buffer.length) {
192
- array.set(buffer, 4);
193
- }
194
- return array;
195
- };
196
- const encodeAuthResponse = (buffer) => {
197
- // Type 4
198
- return encodeSimpleResponse(4, buffer);
199
- };
200
- exports.encodeAuthResponse = encodeAuthResponse;
201
- const encodeErrorResponse = (buffer) => {
202
- // Type 5
203
- return encodeSimpleResponse(5, buffer);
204
- };
205
- exports.encodeErrorResponse = encodeErrorResponse;
206
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts DELETED
@@ -1,28 +0,0 @@
1
- import uws from '@based/uws';
2
- import type { ServerOptions, ActiveObservable, Listener, EventMap, Event, HttpClient, WebsocketClient } from './types';
3
- import { BasedFunctions } from './functions';
4
- import { BasedAuth } from './auth';
5
- export declare class BasedServer {
6
- functions: BasedFunctions;
7
- auth: BasedAuth;
8
- port: number;
9
- uwsApp: uws.TemplatedApp;
10
- listenSocket: any;
11
- blocked: Set<string>;
12
- cacheSize: number;
13
- activeObservables: {
14
- [name: string]: Map<number, ActiveObservable>;
15
- };
16
- activeObservablesById: Map<number, ActiveObservable>;
17
- listeners: {
18
- [E in Event]?: Listener<EventMap[E]>[];
19
- };
20
- constructor(opts: ServerOptions);
21
- emit(type: Event, client: HttpClient | WebsocketClient, val: EventMap[Event]): void;
22
- on(type: Event, fn: Listener<EventMap[Event]>): void;
23
- removeAllListeners(): void;
24
- once(type: Event, fn: Listener<EventMap[Event]>): void;
25
- off(type: Event, fn: Listener<EventMap[Event]>): void;
26
- start(port?: number): Promise<BasedServer>;
27
- destroy(): Promise<void>;
28
- }
package/dist/server.js DELETED
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BasedServer = void 0;
7
- const uws_1 = __importDefault(require("@based/uws"));
8
- const network_1 = __importDefault(require("./network"));
9
- const functions_1 = require("./functions");
10
- const auth_1 = require("./auth");
11
- // extend emitter
12
- class BasedServer {
13
- constructor(opts) {
14
- this.blocked = new Set();
15
- // in bytes
16
- this.cacheSize = 0;
17
- this.activeObservables = {};
18
- this.activeObservablesById = new Map();
19
- this.listeners = {};
20
- this.functions = new functions_1.BasedFunctions(this, opts.functions);
21
- this.auth = new auth_1.BasedAuth(this, opts.auth);
22
- (0, network_1.default)(this, opts);
23
- }
24
- emit(type, client, val) {
25
- if (this.listeners[type]) {
26
- this.listeners[type].forEach((fn) => fn(client, val));
27
- }
28
- }
29
- on(type, fn) {
30
- if (!this.listeners[type]) {
31
- this.listeners[type] = [];
32
- }
33
- this.listeners[type].push(fn);
34
- }
35
- removeAllListeners() {
36
- this.listeners = {};
37
- }
38
- once(type, fn) {
39
- this.on(type, (v) => {
40
- fn(v);
41
- this.off(type, fn);
42
- });
43
- }
44
- off(type, fn) {
45
- const listeners = this.listeners[type];
46
- if (listeners) {
47
- if (!fn) {
48
- delete this.listeners[type];
49
- }
50
- else {
51
- for (let i = 0, len = listeners.length; i < len; i++) {
52
- if (listeners[i] === fn) {
53
- listeners.splice(i, 1);
54
- break;
55
- }
56
- }
57
- if (listeners.length === 0) {
58
- delete this.listeners[type];
59
- }
60
- }
61
- }
62
- }
63
- start(port) {
64
- if (!port) {
65
- port = this.port;
66
- }
67
- else {
68
- this.port = port;
69
- }
70
- return new Promise((resolve, reject) => {
71
- this.uwsApp.listen(this.port, (listenSocket) => {
72
- if (listenSocket) {
73
- console.info('💫 Based-server v2 listening on port:', this.port);
74
- // do this better wrap a nice thing arround it
75
- this.listenSocket = listenSocket;
76
- resolve(this);
77
- }
78
- else {
79
- console.info('🤮 Based-server v2 error on port:', this.port);
80
- reject(new Error('Cannot start based-server on port: ' + this.port));
81
- }
82
- });
83
- });
84
- }
85
- async destroy() {
86
- console.info('🔥 Based-server v2 Destroy based-server');
87
- if (this.listenSocket) {
88
- uws_1.default.us_listen_socket_close(this.listenSocket);
89
- this.listenSocket = null;
90
- }
91
- this.listenSocket = null;
92
- this.uwsApp = null;
93
- }
94
- }
95
- exports.BasedServer = BasedServer;
96
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,20 +0,0 @@
1
- // make a based server thing useFunctionWorker
2
- // workerConfig = {
3
- // concurrency: 5
4
- // maxCrashRate: [5, 1000] // 20 per second
5
- // logs in a special way
6
- // }
7
- // import workerify from './workerify'
8
- /*
9
- import { CallFunction, ObservableFunction } from '@based/server/src/types'
10
-
11
- export default (
12
- fn: ObservableFunction | CallFunction
13
- ): ObservableFunction | CallFunction => {
14
- console.info('GO GO GO', fn)
15
-
16
- return fn
17
- }
18
-
19
- */
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workers/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,mBAAmB;AACnB,kBAAkB;AAClB,4CAA4C;AAC5C,wBAAwB;AACxB,IAAI;AACJ,sCAAsC;AAEtC;;;;;;;;;;;EAWE"}
@@ -1,12 +0,0 @@
1
- declare class WorkerClient {
2
- constructor(id: number);
3
- }
4
- declare class WorkerBasedClient {
5
- }
6
- declare class WorkerParams {
7
- private _clientId;
8
- payload: any;
9
- callStack: any[];
10
- get user(): WorkerClient;
11
- get based(): WorkerBasedClient;
12
- }
@@ -1,46 +0,0 @@
1
- // import { Client } from '@based/server/src/types'
2
- // import { BasedServerClient } from '@based/server'
3
- // export type CallParams = {
4
- // payload: any
5
- // based: BasedServerClient
6
- // user: Client
7
- // callStack: string[]
8
- // }
9
- // export type ObservableParams = {
10
- // payload: any
11
- // based: BasedServerClient
12
- // user?: Client
13
- // callStack: string[]
14
- // // error later...
15
- // update: (value: any, checksum?: number) => void
16
- // }
17
- // workers
18
- // in the worker we are going to run the code with getters
19
- // e.g.
20
- // fn({ user, payload, update, based }) // we add error later
21
- // fn({ user, payload, based })
22
- // WorkerParams object - mimic normal params object
23
- // this all has to be part of based server
24
- // mimic normal client
25
- class WorkerClient {
26
- constructor(id) {
27
- // yes number
28
- console.info(id);
29
- }
30
- }
31
- // has to wrap every method
32
- class WorkerBasedClient {
33
- }
34
- class WorkerParams {
35
- constructor() {
36
- this.callStack = [];
37
- }
38
- get user() {
39
- // also pair it with other functions potentialy
40
- return new WorkerClient(this._clientId);
41
- }
42
- get based() {
43
- return new WorkerBasedClient();
44
- }
45
- }
46
- //# sourceMappingURL=workerCode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workerCode.js","sourceRoot":"","sources":["../../src/workers/workerCode.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,oDAAoD;AAEpD,6BAA6B;AAC7B,iBAAiB;AACjB,6BAA6B;AAC7B,iBAAiB;AACjB,wBAAwB;AACxB,IAAI;AAEJ,mCAAmC;AACnC,iBAAiB;AACjB,6BAA6B;AAC7B,kBAAkB;AAClB,wBAAwB;AACxB,sBAAsB;AACtB,oDAAoD;AACpD,IAAI;AAEJ,UAAU;AAEV,0DAA0D;AAE1D,OAAO;AAEP,6DAA6D;AAE7D,+BAA+B;AAE/B,mDAAmD;AAEnD,0CAA0C;AAE1C,sBAAsB;AACtB,MAAM,YAAY;IAChB,YAAY,EAAU;QACpB,aAAa;QACb,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClB,CAAC;CAEF;AAED,2BAA2B;AAC3B,MAAM,iBAAiB;CAEtB;AAED,MAAM,YAAY;IAAlB;QAKS,cAAS,GAAG,EAAE,CAAA;IAUvB,CAAC;IARC,IAAI,IAAI;QACN,+CAA+C;QAC/C,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,iBAAiB,EAAE,CAAA;IAChC,CAAC;CACF"}