prostgles-client 4.0.138 → 4.0.139

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.
@@ -1,6 +1,8 @@
1
1
  import type { AnyObject, ClientSyncHandles, DBSchema, DBSchemaTable, DbJoinMaker, EqualityFilter, FullFilter, GetSelectReturnType, MethodHandler, SQLHandler, SQLResult, SelectParams, SubscribeParams, TableHandler, ViewHandler } from "prostgles-types";
2
2
  import { asName } from "prostgles-types";
3
- import type { SyncDataItem, SyncOneOptions, SyncOptions, SyncedTable, Sync, SyncOne } from "./SyncedTable/SyncedTable";
3
+ import type { Sync, SyncDataItem, SyncOne, SyncOneOptions, SyncOptions, SyncedTable } from "./SyncedTable/SyncedTable";
4
+ import { type AuthHandler } from "./Auth";
5
+ export declare const hasWnd: boolean;
4
6
  export declare const debug: any;
5
7
  export { MethodHandler, SQLResult, asName };
6
8
  export * from "./react-hooks";
@@ -106,7 +108,7 @@ export type InitOptions<DBSchema = void> = {
106
108
  * true by default
107
109
  */
108
110
  onSchemaChange?: false | (() => void);
109
- onReady: (dbo: DBHandlerClient<DBSchema>, methods: MethodHandler | undefined, tableSchema: DBSchemaTable[] | undefined, auth: Auth | undefined, isReconnect: boolean) => any;
111
+ onReady: (dbo: DBHandlerClient<DBSchema>, methods: MethodHandler | undefined, tableSchema: DBSchemaTable[] | undefined, auth: AuthHandler, isReconnect: boolean) => any;
110
112
  /**
111
113
  * If not provided will fire onReady
112
114
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prostgles.d.ts","sourceRoot":"","sources":["../lib/prostgles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prostgles.d.ts","sourceRoot":"","sources":["../lib/prostgles.ts"],"names":[],"mappings":"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"}
package/dist/prostgles.js CHANGED
@@ -18,14 +18,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
18
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.prostgles = exports.asName = exports.debug = void 0;
21
+ exports.prostgles = exports.asName = exports.debug = exports.hasWnd = void 0;
22
22
  const prostgles_types_1 = require("prostgles-types");
23
23
  Object.defineProperty(exports, "asName", { enumerable: true, get: function () { return prostgles_types_1.asName; } });
24
24
  const react_hooks_1 = require("./react-hooks");
25
+ const SQL_1 = require("./SQL");
26
+ const FunctionQueuer_1 = require("./FunctionQueuer");
27
+ const Auth_1 = require("./Auth");
25
28
  const DEBUG_KEY = "DEBUG_SYNCEDTABLE";
26
- const hasWnd = typeof window !== "undefined";
29
+ exports.hasWnd = typeof window !== "undefined";
27
30
  const debug = function (...args) {
28
- if (hasWnd && window[DEBUG_KEY]) {
31
+ if (exports.hasWnd && window[DEBUG_KEY]) {
29
32
  window[DEBUG_KEY](...args);
30
33
  }
31
34
  };
@@ -49,72 +52,8 @@ function prostgles(initOpts, syncedTable) {
49
52
  const subscriptions = {};
50
53
  let syncedTables = {};
51
54
  let syncs = {};
52
- const notifSubs = {};
53
- const removeNotifListener = (listener, conf) => {
54
- const channelSubs = notifSubs[conf.notifChannel];
55
- if (channelSubs) {
56
- channelSubs.listeners = channelSubs.listeners.filter(nl => nl !== listener);
57
- if (!channelSubs.listeners.length && channelSubs.config.socketUnsubChannel && socket) {
58
- socket.emit(channelSubs.config.socketUnsubChannel, {});
59
- delete notifSubs[conf.notifChannel];
60
- }
61
- }
62
- };
63
- const addNotifListener = (listener, conf) => {
64
- var _a;
65
- const channelSubs = notifSubs[conf.notifChannel];
66
- if (!channelSubs) {
67
- notifSubs[conf.notifChannel] = {
68
- config: conf,
69
- listeners: [listener]
70
- };
71
- socket.removeAllListeners(conf.socketChannel);
72
- socket.on(conf.socketChannel, (notif) => {
73
- var _a, _b;
74
- if ((_a = notifSubs[conf.notifChannel]) === null || _a === void 0 ? void 0 : _a.listeners.length) {
75
- notifSubs[conf.notifChannel].listeners.map(l => {
76
- l(notif);
77
- });
78
- }
79
- else {
80
- socket.emit((_b = notifSubs[conf.notifChannel]) === null || _b === void 0 ? void 0 : _b.config.socketUnsubChannel, {});
81
- }
82
- });
83
- }
84
- else {
85
- (_a = notifSubs[conf.notifChannel]) === null || _a === void 0 ? void 0 : _a.listeners.push(listener);
86
- }
87
- };
88
- let noticeSubs;
89
- const removeNoticeListener = (listener) => {
90
- if (noticeSubs) {
91
- noticeSubs.listeners = noticeSubs.listeners.filter(nl => nl !== listener);
92
- if (!noticeSubs.listeners.length && noticeSubs.config.socketUnsubChannel && socket) {
93
- socket.emit(noticeSubs.config.socketUnsubChannel, {});
94
- }
95
- }
96
- };
97
- const addNoticeListener = (listener, conf) => {
98
- noticeSubs !== null && noticeSubs !== void 0 ? noticeSubs : (noticeSubs = {
99
- config: conf,
100
- listeners: []
101
- });
102
- if (!noticeSubs.listeners.length) {
103
- socket.removeAllListeners(conf.socketChannel);
104
- socket.on(conf.socketChannel, (notice) => {
105
- if (noticeSubs && noticeSubs.listeners.length) {
106
- noticeSubs.listeners.map(l => {
107
- l(notice);
108
- });
109
- }
110
- else {
111
- socket.emit(conf.socketUnsubChannel, {});
112
- }
113
- });
114
- }
115
- noticeSubs.listeners.push(listener);
116
- };
117
55
  let state;
56
+ const sql = new SQL_1.SQL();
118
57
  const destroySyncs = async () => {
119
58
  (0, exports.debug)("destroySyncs", { subscriptions, syncedTables });
120
59
  await Promise.all(Object.values(subscriptions).map(s => s.destroy()));
@@ -205,7 +144,7 @@ function prostgles(initOpts, syncedTable) {
205
144
  });
206
145
  });
207
146
  }
208
- const addSyncQueuer = new FunctionQueuer(_addSync, ([{ tableName }]) => tableName);
147
+ const addSyncQueuer = new FunctionQueuer_1.FunctionQueuer(_addSync, ([{ tableName }]) => tableName);
209
148
  async function addSync(params, triggers) {
210
149
  return addSyncQueuer.run([params, triggers]);
211
150
  }
@@ -302,7 +241,7 @@ function prostgles(initOpts, syncedTable) {
302
241
  /**
303
242
  * Can be used concurrently
304
243
  */
305
- const addSubQueuer = new FunctionQueuer(_addSub, ([_, { tableName }]) => tableName);
244
+ const addSubQueuer = new FunctionQueuer_1.FunctionQueuer(_addSub, ([_, { tableName }]) => tableName);
306
245
  async function addSub(dbo, params, onChange, _onError) {
307
246
  return addSubQueuer.run([dbo, params, onChange, _onError]);
308
247
  }
@@ -421,7 +360,7 @@ function prostgles(initOpts, syncedTable) {
421
360
  }
422
361
  /* Schema = published schema */
423
362
  socket.on(prostgles_types_1.CHANNELS.SCHEMA, async ({ joinTables = [], ...clientSchema }) => {
424
- const { schema, methods, tableSchema, auth, rawSQL, err } = clientSchema;
363
+ const { schema, methods, tableSchema, auth: authConfig, rawSQL, err } = clientSchema;
425
364
  /** Only destroy existing syncs if schema changed */
426
365
  const schemaDidNotChange = (schemaAge === null || schemaAge === void 0 ? void 0 : schemaAge.clientSchema) && (0, react_hooks_1.isEqual)(schemaAge.clientSchema, clientSchema);
427
366
  if (!schemaDidNotChange) {
@@ -447,42 +386,7 @@ function prostgles(initOpts, syncedTable) {
447
386
  const dbo = JSON.parse(JSON.stringify(schema));
448
387
  const _methods = JSON.parse(JSON.stringify(methods));
449
388
  let methodsObj = {};
450
- let _auth = {};
451
- if (auth) {
452
- if (auth.pathGuard && hasWnd) {
453
- const doReload = (res) => {
454
- if (res === null || res === void 0 ? void 0 : res.shouldReload) {
455
- if (onReload)
456
- onReload();
457
- else if (typeof window !== "undefined") {
458
- window.location.reload();
459
- }
460
- }
461
- };
462
- socket.emit(prostgles_types_1.CHANNELS.AUTHGUARD, JSON.stringify(window.location), (err, res) => {
463
- doReload(res);
464
- });
465
- socket.removeAllListeners(prostgles_types_1.CHANNELS.AUTHGUARD);
466
- socket.on(prostgles_types_1.CHANNELS.AUTHGUARD, (res) => {
467
- doReload(res);
468
- });
469
- }
470
- _auth = { ...auth };
471
- [prostgles_types_1.CHANNELS.LOGIN, prostgles_types_1.CHANNELS.LOGOUT, prostgles_types_1.CHANNELS.REGISTER].map(funcName => {
472
- if (auth[funcName]) {
473
- _auth[funcName] = function (params) {
474
- return new Promise((resolve, reject) => {
475
- socket.emit(preffix + funcName, params, (err, res) => {
476
- if (err)
477
- reject(err);
478
- else
479
- resolve(res);
480
- });
481
- });
482
- };
483
- }
484
- });
485
- }
389
+ const auth = (0, Auth_1.setupAuth)({ authData: authConfig, socket, onReload });
486
390
  _methods.map(method => {
487
391
  /** New method def */
488
392
  const isBasic = typeof method === "string";
@@ -505,101 +409,7 @@ function prostgles(initOpts, syncedTable) {
505
409
  });
506
410
  methodsObj = Object.freeze(methodsObj);
507
411
  if (rawSQL) {
508
- dbo.sql = function (query, params, options) {
509
- return new Promise((resolve, reject) => {
510
- socket.emit(prostgles_types_1.CHANNELS.SQL, { query, params, options }, (err, res) => {
511
- if (err)
512
- reject(err);
513
- else {
514
- if ((options === null || options === void 0 ? void 0 : options.returnType) === "stream") {
515
- const { channel, unsubChannel } = res;
516
- const start = (listener) => new Promise((resolveStart, rejectStart) => {
517
- socket.on(channel, listener);
518
- socket.emit(channel, {}, (pid, err) => {
519
- if (err) {
520
- rejectStart(err);
521
- socket.removeAllListeners(channel);
522
- }
523
- else {
524
- resolveStart({
525
- pid,
526
- run: (query, params) => {
527
- return new Promise((resolveRun, rejectRun) => {
528
- socket.emit(channel, { query, params }, (data, _err) => {
529
- if (_err) {
530
- rejectRun(_err);
531
- }
532
- else {
533
- resolveRun(data);
534
- }
535
- });
536
- });
537
- },
538
- stop: (terminate) => {
539
- return new Promise((resolveStop, rejectStop) => {
540
- socket.emit(unsubChannel, { terminate }, (data, _err) => {
541
- if (_err) {
542
- rejectStop(_err);
543
- }
544
- else {
545
- resolveStop(data);
546
- }
547
- });
548
- });
549
- }
550
- });
551
- }
552
- });
553
- });
554
- const streamHandlers = {
555
- channel,
556
- unsubChannel,
557
- start,
558
- };
559
- return resolve(streamHandlers);
560
- }
561
- else if (options &&
562
- (options.returnType === "noticeSubscription") &&
563
- res &&
564
- Object.keys(res).sort().join() === ["socketChannel", "socketUnsubChannel"].sort().join() &&
565
- !Object.values(res).find(v => typeof v !== "string")) {
566
- const sockInfo = res;
567
- const addListener = (listener) => {
568
- addNoticeListener(listener, sockInfo);
569
- return {
570
- ...sockInfo,
571
- removeListener: () => removeNoticeListener(listener)
572
- };
573
- };
574
- const handle = {
575
- ...sockInfo,
576
- addListener
577
- };
578
- // @ts-ignore
579
- resolve(handle);
580
- }
581
- else if ((!options || !options.returnType || options.returnType !== "statement") &&
582
- res &&
583
- Object.keys(res).sort().join() === ["socketChannel", "socketUnsubChannel", "notifChannel"].sort().join() &&
584
- !Object.values(res).find(v => typeof v !== "string")) {
585
- const sockInfo = res;
586
- const addListener = (listener) => {
587
- addNotifListener(listener, sockInfo);
588
- return {
589
- ...res,
590
- removeListener: () => removeNotifListener(listener, sockInfo)
591
- };
592
- };
593
- const handle = { ...res, addListener };
594
- resolve(handle);
595
- }
596
- else {
597
- resolve(res);
598
- }
599
- }
600
- });
601
- });
602
- };
412
+ sql.setup({ dbo, socket });
603
413
  }
604
414
  /* Building DBO object */
605
415
  const checkSubscriptionArgs = (basicFilter, options, onChange, onError) => {
@@ -758,7 +568,7 @@ function prostgles(initOpts, syncedTable) {
758
568
  });
759
569
  (async () => {
760
570
  try {
761
- await onReady(dbo, methodsObj, tableSchema, _auth, isReconnect);
571
+ await onReady(dbo, methodsObj, tableSchema, auth, isReconnect);
762
572
  }
763
573
  catch (err) {
764
574
  console.error("Prostgles: Error within onReady: \n", err);
@@ -770,62 +580,3 @@ function prostgles(initOpts, syncedTable) {
770
580
  });
771
581
  }
772
582
  exports.prostgles = prostgles;
773
- class FunctionQueuer {
774
- constructor(func, groupBy) {
775
- this.queue = [];
776
- this.isRunning = false;
777
- this.func = func;
778
- this.groupBy = groupBy;
779
- }
780
- async run(args) {
781
- const result = new Promise((resolve, reject) => {
782
- const item = { arguments: args, onResult: resolve, onFail: reject };
783
- this.queue.push(item);
784
- });
785
- const startQueueJob = async () => {
786
- if (this.isRunning) {
787
- return;
788
- }
789
- this.isRunning = true;
790
- const runItem = async (item) => {
791
- if (item) {
792
- try {
793
- const result = await this.func(...item.arguments);
794
- item.onResult(result);
795
- }
796
- catch (error) {
797
- item.onFail(error);
798
- }
799
- }
800
- };
801
- if (!this.groupBy) {
802
- const item = this.queue.shift();
803
- await runItem(item);
804
- /** Run items in parallel for each group */
805
- }
806
- else {
807
- const groups = [];
808
- const items = [];
809
- this.queue.forEach(async (item, index) => {
810
- const group = this.groupBy(item.arguments);
811
- if (!groups.includes(group)) {
812
- groups.push(group);
813
- items.push({ index, item });
814
- }
815
- });
816
- items.slice(0).reverse().forEach((item) => {
817
- this.queue.splice(item.index, 1);
818
- });
819
- await Promise.all(items.map(item => {
820
- return runItem(item.item);
821
- }));
822
- }
823
- this.isRunning = false;
824
- if (this.queue.length) {
825
- startQueueJob();
826
- }
827
- };
828
- startQueueJob();
829
- return result;
830
- }
831
- }
@@ -1,11 +1,12 @@
1
1
  import { type DBSchema, type DBSchemaTable, type MethodHandler } from "prostgles-types";
2
2
  import type { ManagerOptions, Socket, SocketOptions } from "socket.io-client";
3
- import { type Auth, type DBHandlerClient, type InitOptions } from "./prostgles";
3
+ import { type DBHandlerClient, type InitOptions } from "./prostgles";
4
+ import type { AuthHandler } from "./Auth";
4
5
  type OnReadyParams<DBSchema> = {
5
6
  dbo: DBHandlerClient<DBSchema>;
6
7
  methods: MethodHandler | undefined;
7
8
  tableSchema: DBSchemaTable[] | undefined;
8
- auth: Auth | undefined;
9
+ auth: AuthHandler | undefined;
9
10
  isReconnect: boolean;
10
11
  socket: Socket;
11
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useProstglesClient.d.ts","sourceRoot":"","sources":["../lib/useProstglesClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAa,KAAK,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3F,KAAK,aAAa,CAAC,QAAQ,IAAI;IAC7B,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;KAAE,CAAC;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,KAAK,oBAAoB,CAAC,GAAG,IAC3B;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAAE,GACvC;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAAE,GAAG,GAAG,GAC9C;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CAAE,CAAC;AAE/C,eAAO,MAAM,kBAAkB,sDAAoD,YAAY,oDAmD9F,CAAA"}
1
+ {"version":3,"file":"useProstglesClient.d.ts","sourceRoot":"","sources":["../lib/useProstglesClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAwB,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,KAAK,aAAa,CAAC,QAAQ,IAAI;IAC7B,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAA;AACD,KAAK,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;KAAE,CAAC;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,KAAK,oBAAoB,CAAC,GAAG,IAC3B;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAAE,GACvC;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAAE,GAAG,GAAG,GAC9C;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CAAE,CAAC;AAE/C,eAAO,MAAM,kBAAkB,sDAAoD,YAAY,oDAmD9F,CAAA"}
package/lib/Auth.ts ADDED
@@ -0,0 +1,90 @@
1
+ import { type AnyObject, type AuthGuardLocation, type AuthGuardLocationResponse, type AuthSocketSchema, CHANNELS, type IdentityProvider, type EmailAuthType } from "prostgles-types";
2
+ import { hasWnd } from "./prostgles";
3
+
4
+ type Args = {
5
+ socket: any;
6
+ authData: AuthSocketSchema | undefined;
7
+ onReload: VoidFunction | undefined;
8
+ }
9
+
10
+ type AuthStateLoggedOut = {
11
+ isLoggedin: false;
12
+ user?: undefined;
13
+ prefferedLogin: string;
14
+ login?: {
15
+ withEmailAndPassword?: (params: { email: string; password: string }) => Promise<any>;
16
+ withMagicLink?: (params: { email: string; }) => Promise<any>;
17
+ withProvider?: (provider: IdentityProvider) => void;
18
+ };
19
+ register?: {
20
+ withPassword: (params: { email: string; password: string }) => Promise<any>;
21
+ } | {
22
+ magicLink: (params: { email: string; }) => Promise<any>;
23
+ }
24
+ }
25
+ type AuthStateLoggedIn = {
26
+ isLoggedin: true;
27
+ user: AnyObject;
28
+ prefferedLogin: string;
29
+ logout: VoidFunction;
30
+ }
31
+ export type AuthHandler =
32
+ | AuthStateLoggedOut
33
+ | AuthStateLoggedIn;
34
+
35
+ export const setupAuth = ({ authData: authConfig, socket, onReload }: Args): AuthHandler => {
36
+
37
+ const emit = (channel: string, params: any) => {
38
+ return new Promise((resolve, reject) => {
39
+ socket.emit(channel, params, (err, res) => {
40
+ if (err) reject(err);
41
+ else resolve(res);
42
+ });
43
+ });
44
+ }
45
+
46
+ if(!authConfig?.user){
47
+ return {
48
+ isLoggedin: false,
49
+ user: undefined,
50
+ prefferedLogin: "",
51
+ login: {
52
+ withEmailAndPassword: (params) => emit(CHANNELS.LOGIN, { type: "withPassword" satisfies EmailAuthType, params }),
53
+ withMagicLink: (params) => emit(CHANNELS.LOGIN, { type: "magicLink" satisfies EmailAuthType, params }),
54
+ withProvider: (provider) => {
55
+ const url = authConfig?.providers?.[provider]?.url;
56
+ if(!url) throw new Error(`Provider ${provider} not enabled`);
57
+ window.location.assign(url);
58
+ }
59
+ },
60
+ register: authConfig?.register? {
61
+ [authConfig.register]: (params) => emit(CHANNELS.REGISTER, { type: authConfig.register, params })
62
+ } as any : undefined
63
+ } satisfies AuthStateLoggedOut;
64
+ }
65
+ if (authConfig.pathGuard && hasWnd) {
66
+ const doReload = (res?: AuthGuardLocationResponse) => {
67
+ if (res?.shouldReload) {
68
+ if (onReload) onReload();
69
+ else if (hasWnd) {
70
+ window.location.reload();
71
+ }
72
+ }
73
+ }
74
+ socket.emit(CHANNELS.AUTHGUARD, JSON.stringify(window.location as AuthGuardLocation), (err: any, res: AuthGuardLocationResponse) => {
75
+ doReload(res)
76
+ });
77
+
78
+ socket.removeAllListeners(CHANNELS.AUTHGUARD);
79
+ socket.on(CHANNELS.AUTHGUARD, (res: AuthGuardLocationResponse) => {
80
+ doReload(res);
81
+ });
82
+ }
83
+
84
+ return {
85
+ isLoggedin: true,
86
+ user: authConfig.user,
87
+ logout: () => emit(CHANNELS.LOGOUT, {}),
88
+ prefferedLogin: "",
89
+ } satisfies AuthStateLoggedIn;
90
+ }
@@ -0,0 +1,71 @@
1
+
2
+ type Func = (...args: any[]) => any;
3
+ export class FunctionQueuer<F extends Func> {
4
+ private queue: { arguments: Parameters<F>; onResult: (result: ReturnType<F>) => void; onFail: (error: any) => void }[] = [];
5
+ private func: F;
6
+ private groupBy?: (args: Parameters<F>) => string;
7
+ constructor(func: F, groupBy?: ((args: Parameters<F>) => string)) {
8
+ this.func = func;
9
+ this.groupBy = groupBy;
10
+ }
11
+ private isRunning = false;
12
+ async run(args: Parameters<F>): Promise<ReturnType<F>> {
13
+
14
+ const result = new Promise<ReturnType<F>>((resolve, reject) => {
15
+ const item = { arguments: args, onResult: resolve, onFail: reject }
16
+ this.queue.push(item);
17
+ });
18
+
19
+ const startQueueJob = async () => {
20
+ if (this.isRunning) {
21
+ return;
22
+ }
23
+ this.isRunning = true;
24
+
25
+ const runItem = async (item: undefined | typeof this.queue[number]) => {
26
+ if (item) {
27
+ try {
28
+ const result = await this.func(...item.arguments);
29
+ item.onResult(result);
30
+ } catch(error) {
31
+ item.onFail(error);
32
+ }
33
+ }
34
+ }
35
+
36
+ if(!this.groupBy){
37
+ const item = this.queue.shift();
38
+ await runItem(item);
39
+
40
+ /** Run items in parallel for each group */
41
+ } else {
42
+ type Item = typeof this.queue[number];
43
+ const groups: string[] = [];
44
+ const items: { index: number; item: Item; }[] = [];
45
+ this.queue.forEach(async (item, index) => {
46
+ const group = this.groupBy!(item.arguments);
47
+ if(!groups.includes(group)){
48
+ groups.push(group);
49
+ items.push({ index, item });
50
+ }
51
+ });
52
+ items.slice(0).reverse().forEach((item) => {
53
+ this.queue.splice(item.index, 1);
54
+ });
55
+ await Promise.all(items.map(item => {
56
+ return runItem(item.item);
57
+ }));
58
+ }
59
+
60
+ this.isRunning = false;
61
+ if (this.queue.length) {
62
+ startQueueJob();
63
+ }
64
+ }
65
+
66
+ startQueueJob();
67
+
68
+ return result;
69
+
70
+ }
71
+ }