topsyde-utils 1.0.150 → 1.0.152
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/application.d.ts +1 -0
- package/dist/application.js +12 -8
- package/dist/application.js.map +1 -1
- package/dist/client/rxjs/index.js.map +1 -1
- package/dist/client/rxjs/rxjs.js.map +1 -1
- package/dist/client/rxjs/useRxjs.js.map +1 -1
- package/dist/client/vite/plugins/index.js.map +1 -1
- package/dist/client/vite/plugins/topsydeUtilsVitePlugin.js.map +1 -1
- package/dist/consts.js.map +1 -1
- package/dist/enums.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initializable.js.map +1 -1
- package/dist/server/bun/index.js.map +1 -1
- package/dist/server/bun/router/controller-discovery.js.map +1 -1
- package/dist/server/bun/router/index.js.map +1 -1
- package/dist/server/bun/router/router.internal.js.map +1 -1
- package/dist/server/bun/router/router.js.map +1 -1
- package/dist/server/bun/router/routes.js.map +1 -1
- package/dist/server/bun/websocket/Channel.js.map +1 -1
- package/dist/server/bun/websocket/Client.js.map +1 -1
- package/dist/server/bun/websocket/Message.js.map +1 -1
- package/dist/server/bun/websocket/Websocket.js.map +1 -1
- package/dist/server/bun/websocket/index.js.map +1 -1
- package/dist/server/bun/websocket/websocket.enums.js.map +1 -1
- package/dist/server/bun/websocket/websocket.guards.js.map +1 -1
- package/dist/server/bun/websocket/websocket.types.js.map +1 -1
- package/dist/server/controller.js.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/service.js.map +1 -1
- package/dist/singleton.js.map +1 -1
- package/dist/throwable.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/Console.js.map +1 -1
- package/dist/utils/Guards.js.map +1 -1
- package/dist/utils/Lib.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +5 -3
- package/src/__tests__/app.test.ts +205 -0
- package/src/__tests__/singleton.test.ts +402 -0
- package/src/__tests__/type-inference.test.ts +60 -0
- package/src/application.ts +48 -0
- package/src/client/rxjs/index.ts +5 -0
- package/src/client/rxjs/rxjs.ts +122 -0
- package/src/client/rxjs/useRxjs.ts +111 -0
- package/src/client/vite/plugins/index.ts +5 -0
- package/src/client/vite/plugins/topsydeUtilsVitePlugin.ts +80 -0
- package/src/consts.ts +48 -0
- package/src/enums.ts +14 -0
- package/src/errors.ts +56 -0
- package/src/index.ts +81 -0
- package/src/initializable.ts +375 -0
- package/src/server/bun/index.ts +6 -0
- package/src/server/bun/router/controller-discovery.ts +94 -0
- package/src/server/bun/router/index.ts +9 -0
- package/src/server/bun/router/router.internal.ts +64 -0
- package/src/server/bun/router/router.ts +51 -0
- package/src/server/bun/router/routes.ts +7 -0
- package/src/server/bun/websocket/Channel.ts +157 -0
- package/src/server/bun/websocket/Client.ts +129 -0
- package/src/server/bun/websocket/Message.ts +106 -0
- package/src/server/bun/websocket/Websocket.ts +221 -0
- package/src/server/bun/websocket/index.ts +14 -0
- package/src/server/bun/websocket/websocket.enums.ts +22 -0
- package/src/server/bun/websocket/websocket.guards.ts +6 -0
- package/src/server/bun/websocket/websocket.types.ts +186 -0
- package/src/server/controller.ts +121 -0
- package/src/server/index.ts +7 -0
- package/src/server/service.ts +36 -0
- package/src/singleton.ts +28 -0
- package/src/throwable.ts +87 -0
- package/src/types.ts +10 -0
- package/src/utils/Console.ts +85 -0
- package/src/utils/Guards.ts +61 -0
- package/src/utils/Lib.ts +506 -0
- package/src/utils/index.ts +9 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,OAAO,OAAgB,OAAQ,SAAQ,aAAa;IAC1D,KAAK,CAAC,mBAAmB,CAAI,OAAgB,EAAE,IAAiB;QAC/D,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAI,OAAgB,EAAE,IAAiB;QACtE,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACJ,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,IAAI;qBACtB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBACrC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,4CAA4C;qBACjE,IAAI,EAAE,CAAC,CAAC,qCAAqC;gBAE/C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,MAAM,UAAU,CAAC,cAAc,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,UAAU,CAAC,oBAAoB,CAAC;YACvC,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,WAAW;gBAAE,MAAM,gCAAgC,GAAG,CAAC,CAAC;YAC/F,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;CACD"}
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,OAAO,OAAgB,OAAQ,SAAQ,aAAa;IAC1D,KAAK,CAAC,mBAAmB,CAAI,OAAgB,EAAE,IAAiB;QAC/D,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAI,OAAgB,EAAE,IAAiB;QACtE,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACJ,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,IAAI;qBACtB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBACrC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,4CAA4C;qBACjE,IAAI,EAAE,CAAC,CAAC,qCAAqC;gBAE/C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,MAAM,UAAU,CAAC,cAAc,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,UAAU,CAAC,oBAAoB,CAAC;YACvC,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,WAAW;gBAAE,MAAM,gCAAgC,GAAG,CAAC,CAAC;YAC/F,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC;CACD","sourcesContent":["import { ERROR_CODE } from \"../errors\";\nimport Initializable from \"../initializable\";\nimport { Guards } from \"../utils\";\n\nexport default abstract class Service extends Initializable {\n\tasync validateRequestBody<T>(request: Request, keys: (keyof T)[]): Promise<T> {\n\t\treturn await Service.validateRequestBody(request, keys);\n\t}\n\n\tstatic async validateRequestBody<T>(request: Request, keys: (keyof T)[]): Promise<T> {\n\t\ttry {\n\t\t\tlet body;\n\t\t\ttry {\n\t\t\t\tbody = await request.json();\n\t\t\t} catch (e) {\n\t\t\t\tbody = await request.text();\n\t\t\t\tconst cleanedBody = body\n\t\t\t\t\t.replace(/\\/\\/.*$/gm, \"\") // Remove comments\n\t\t\t\t\t.replace(/\\n/g, \"\") // Remove newlines\n\t\t\t\t\t.replace(/\\s+/g, \" \") // Replace multiple spaces with single space\n\t\t\t\t\t.trim(); // Remove leading/trailing whitespace\n\n\t\t\t\tbody = JSON.parse(cleanedBody);\n\t\t\t}\n\t\t\tif (Guards.IsNil(body)) throw ERROR_CODE.REQ_BODY_EMPTY;\n\t\t\tif (!Guards.IsType<T>(body, keys)) {\n\t\t\t\tconsole.error(`Expected keys: ${keys.join(\", \")}`);\n\t\t\t\tthrow ERROR_CODE.INVALID_METHOD_INPUT;\n\t\t\t}\n\t\t\treturn body;\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error || e instanceof SyntaxError) throw \"Could not parse request body: \" + e;\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n"]}
|
package/dist/singleton.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"AAAA,MAA8B,SAAS;IAKtC;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,WAAW,CAAsB,GAAG,IAAW;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAE5B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAM,CAAC;YACpD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAM,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,cAAc;QAC3B,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,SAAiB;QAC5C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;;AAzBuB,oBAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;eADrC,SAAS"}
|
1
|
+
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"AAAA,MAA8B,SAAS;IAKtC;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,WAAW,CAAsB,GAAG,IAAW;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAE5B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAM,CAAC;YACpD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAM,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,cAAc;QAC3B,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,SAAiB;QAC5C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;;AAzBuB,oBAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;eADrC,SAAS","sourcesContent":["export default abstract class Singleton {\n\tprivate static readonly _instances = new Map<string, Singleton>();\n\n\tprotected timestamp: Date;\n\n\tprotected constructor() {\n\t\tthis.timestamp = new Date();\n\t}\n\n\tpublic static GetInstance<T extends Singleton>(...args: any[]): T {\n\t\tconst className = this.name;\n\n\t\tif (!Singleton._instances.has(className)) {\n\t\t\tconst instance = Reflect.construct(this, args) as T;\n\t\t\tSingleton._instances.set(className, instance);\n\t\t}\n\n\t\treturn Singleton._instances.get(className) as T;\n\t}\n\n\tpublic static ResetInstances(): void {\n\t\tSingleton._instances.clear();\n\t}\n\n\tpublic static ResetInstance(className: string): void {\n\t\tSingleton._instances.delete(className);\n\t}\n}\n"]}
|
package/dist/throwable.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"throwable.js","sourceRoot":"","sources":["../src/throwable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAGtC;;;;;;;;GAQG;AACH,MAAM,SAAU,SAAQ,KAAK;IAU5B;;;;OAIG;IACH,YACC,OAAgB,EAChB,UAKI,EAAE;QAEN,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE7C,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE3H,KAAK,CAAC,QAAQ,CAAC,CAAC;QA5BjB,2EAA2E;QAC3D,iBAAY,GAAY,IAAI,CAAC;QA4B5C,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,6BAA6B;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;QAED,8DAA8D;QAC9D,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC9B,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,CAAM;QACxB,OAAO,CAAC,YAAY,SAAS,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,KAAc,EAAE,OAAiC;QAC5D,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,eAAe,SAAS,CAAC"}
|
1
|
+
{"version":3,"file":"throwable.js","sourceRoot":"","sources":["../src/throwable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAGtC;;;;;;;;GAQG;AACH,MAAM,SAAU,SAAQ,KAAK;IAU5B;;;;OAIG;IACH,YACC,OAAgB,EAChB,UAKI,EAAE;QAEN,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE7C,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE3H,KAAK,CAAC,QAAQ,CAAC,CAAC;QA5BjB,2EAA2E;QAC3D,iBAAY,GAAY,IAAI,CAAC;QA4B5C,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,6BAA6B;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;QAED,8DAA8D;QAC9D,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC9B,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,CAAM;QACxB,OAAO,CAAC,YAAY,SAAS,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,KAAc,EAAE,OAAiC;QAC5D,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,eAAe,SAAS,CAAC","sourcesContent":["import { Guards, Lib } from \"./utils\";\n\n\n/**\n * @description Custom error class for errors that are expected to be thrown\n * and should not trigger retry mechanisms or be reported to error monitoring services.\n *\n * Use this class when you want to throw an error that:\n * 1. Is an expected part of the application flow\n * 2. Should not be retried by retry handlers\n * 3. Should not be reported to error monitoring services like Sentry\n */\nclass Throwable extends Error {\n\t/** Flag indicating this is a deliberate error that shouldn't be retried */\n\tpublic readonly isDeliberate: boolean = true;\n\n\t/** Original error if this Throwable wraps another error */\n\tpublic readonly originalError?: Error;\n\n\t/** Additional context that might be helpful for debugging */\n\tpublic readonly context?: Record<string, unknown>;\n\n\t/**\n\t * Create a new Throwable error\n\t * @param message Error message or existing Error object to wrap\n\t * @param options Configuration options\n\t */\n\tconstructor(\n\t\tmessage: unknown,\n\t\toptions: {\n\t\t\t/** Whether to log this error to console (default: true) */\n\t\t\tlogError?: boolean;\n\t\t\t/** Additional context data to attach to the error */\n\t\t\tcontext?: Record<string, unknown>;\n\t\t} = {},\n\t) {\n\t\tconst { logError = true, context } = options;\n\n\t\t// Format the message appropriately based on type\n\t\tconst _message = Guards.IsString(message) ? message : message instanceof Error ? message.message : JSON.stringify(message);\n\n\t\tsuper(_message);\n\t\tthis.name = \"Throwable\";\n\t\tthis.context = context;\n\n\t\t// Log the error if requested\n\t\tif (logError) {\n\t\t\tif (context) {\n\t\t\t\tLib.$Log(\"Throwable: \", _message, \"Context:\", context);\n\t\t\t} else {\n\t\t\t\tLib.$Log(\"Throwable: \", message);\n\t\t\t}\n\t\t}\n\n\t\t// Capture stack trace and cause if wrapping an existing error\n\t\tif (message instanceof Error) {\n\t\t\tthis.stack = message.stack;\n\t\t\tthis.cause = message.cause;\n\t\t\tthis.originalError = message;\n\t\t}\n\t}\n\n\t/**\n\t * Check if an error is a Throwable\n\t * @param e Any error to check\n\t * @returns True if the error is a Throwable\n\t */\n\tstatic IsThrowable(e: any): e is Throwable {\n\t\treturn e instanceof Throwable;\n\t}\n\n\t/**\n\t * Create a Throwable from any error or message\n\t * @param error Error or message to convert\n\t * @param context Additional context to attach\n\t * @returns A new Throwable instance\n\t */\n\tstatic from(error: unknown, context?: Record<string, unknown>): Throwable {\n\t\tif (error instanceof Throwable) {\n\t\t\treturn error;\n\t\t}\n\n\t\treturn new Throwable(error, { context });\n\t}\n}\n\nexport default Throwable;\n"]}
|
package/dist/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ClassConstructor<T> = new (...args: any[]) => T;\nexport type NonNullableType<T> = Exclude<T, null | undefined>;\ntype ObjectKeysValues = string | number | string[] | number[] | null;\nexport type ObjectKeys<T, U = ObjectKeysValues> = Partial<Record<keyof T, U>>;\nexport type KVObj<T> = { key: string; value: T };\nexport interface I_ApplicationResponse<T = unknown> {\n\tstatus: boolean | number;\n\tdata: T;\n\terror?: T;\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Console.js","sourceRoot":"","sources":["../../src/utils/Console.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Console.js","sourceRoot":"","sources":["../../src/utils/Console.ts"],"names":[],"mappings":"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","sourcesContent":["import { LOG_COLORS, LOG_ICONS } from \"../consts\";\n\nexport class Console {\n\t/**\n\t * Print a blank line\n\t */\n\tstatic blank(): void {\n\t\tconsole.log(\"\");\n\t}\n\n\t/**\n\t * Print a success message\n\t */\n\tstatic success(message: string): void {\n\t\tconsole.log(` ${LOG_COLORS.text.green}${LOG_ICONS.success}${LOG_COLORS.reset} ${message}`);\n\t}\n\n\t/**\n\t * Print an info message\n\t */\n\tstatic info(message: string): void {\n\t\tconsole.log(` ${LOG_COLORS.text.blue}${LOG_ICONS.info}${LOG_COLORS.reset} ${message}`);\n\t}\n\n\t/**\n\t * Print a warning message\n\t */\n\tstatic warning(message: string): void {\n\t\tconsole.log(` ${LOG_COLORS.text.yellow}${LOG_ICONS.warning}${LOG_COLORS.reset} ${message}`);\n\t}\n\n\t/**\n\t * Print an error message\n\t */\n\tstatic error(message: string): void {\n\t\tconsole.log(` ${LOG_COLORS.text.red}${LOG_ICONS.error}${LOG_COLORS.reset} ${message}`);\n\t}\n\n\t/**\n\t * Print a debug message\n\t */\n\tstatic debug(message: string): void {\n\t\tconsole.log(` ${LOG_COLORS.text.magenta}${LOG_ICONS.debug}${LOG_COLORS.reset} ${message}`);\n\t}\n\n\t/**\n\t * Print a list item with an arrow\n\t */\n\tstatic item(label: string, value: string): void {\n\t\tconsole.log(` ${LOG_COLORS.text.cyan}${LOG_ICONS.arrow}${LOG_COLORS.reset} ${LOG_COLORS.bright}${label}:${LOG_COLORS.reset} ${value}`);\n\t}\n\n\t/**\n\t * Print a header with optional emoji\n\t */\n\tstatic header(text: string, emoji?: string): void {\n\t\tconst icon = emoji ? `${emoji} ` : \"\";\n\t\tconsole.log(` ${icon}${LOG_COLORS.bright}${text}${LOG_COLORS.reset}`);\n\t}\n\n\t/**\n\t * Print a subheader with dimmed text\n\t */\n\tstatic subheader(text: string): void {\n\t\tconsole.log(` ${LOG_COLORS.dim}${text}${LOG_COLORS.reset}`);\n\t}\n\n\t/**\n\t * Print a ready message with timing\n\t */\n\tstatic ready(timeMs: number): void {\n\t\tconsole.log(\n\t\t\t` ${LOG_COLORS.text.green}✓${LOG_COLORS.reset} ${LOG_COLORS.dim}Ready in${LOG_COLORS.reset} ${LOG_COLORS.text.cyan}${timeMs}ms${LOG_COLORS.reset}`,\n\t\t);\n\t}\n\n\t/**\n\t * Get a colored string\n\t */\n\tstatic colorize(text: string, color: keyof typeof LOG_COLORS.text): string {\n\t\treturn `${LOG_COLORS.text[color]}${text}${LOG_COLORS.reset}`;\n\t}\n}\n\nexport default Console;\n"]}
|
package/dist/utils/Guards.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Guards.js","sourceRoot":"","sources":["../../src/utils/Guards.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,MAAM,MAAM;IAIJ,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,YAAqB,KAAK,EAAE,WAAW,GAAG,KAAK;QACjF,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAKM,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,YAAqB,KAAK,EAAE,WAAW,GAAG,KAAK;QACjF,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,SAAS,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACtD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;QACtD,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,OAAO,CAAI,KAAU,EAAE,WAAW,GAAG,KAAK;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACrD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,UAAU,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAU;QAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAIM,MAAM,CAAC,MAAM,CAAI,GAAQ,EAAE,IAAkB;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACxC,CAAC;CACD;AAED,eAAe,MAAM,CAAC"}
|
1
|
+
{"version":3,"file":"Guards.js","sourceRoot":"","sources":["../../src/utils/Guards.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,MAAM,MAAM;IAIJ,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,YAAqB,KAAK,EAAE,WAAW,GAAG,KAAK;QACjF,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAKM,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,YAAqB,KAAK,EAAE,WAAW,GAAG,KAAK;QACjF,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,SAAS,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACtD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;QACtD,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,OAAO,CAAI,KAAU,EAAE,WAAW,GAAG,KAAK;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACrD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAIM,MAAM,CAAC,UAAU,CAAC,KAAU,EAAE,WAAW,GAAG,KAAK;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAU;QAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAIM,MAAM,CAAC,MAAM,CAAI,GAAQ,EAAE,IAAkB;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACxC,CAAC;CACD;AAED,eAAe,MAAM,CAAC","sourcesContent":["import type { NonNullableType } from \"../types\";\nimport Lib from \"./Lib\";\n\nclass Guards {\n\tpublic static IsString(value: any): value is string;\n\tpublic static IsString(value: any, as_typeof: boolean): value is NonNullableType<string>;\n\tpublic static IsString(value: any, as_typeof: boolean, excludeNull: true): value is NonNullableType<string>;\n\tpublic static IsString(value: any, as_typeof: boolean = false, excludeNull = false): value is string | NonNullableType<string> {\n\t\tconst output = Lib.IsString(value, as_typeof);\n\t\treturn excludeNull ? !Guards.IsNil(value) && output : output;\n\t}\n\n\tpublic static IsNumber(value: any): value is number;\n\tpublic static IsNumber(value: any, as_typeof: boolean): value is NonNullableType<number>;\n\tpublic static IsNumber(value: any, as_typeof: boolean, excludeNull: true): value is NonNullableType<number>;\n\tpublic static IsNumber(value: any, as_typeof: boolean = false, excludeNull = false): value is number | NonNullableType<number> {\n\t\tconst output = Lib.IsNumber(value, as_typeof);\n\t\treturn excludeNull ? !Guards.IsNil(value) && output : output;\n\t}\n\n\tpublic static IsBoolean(value: any): value is boolean;\n\tpublic static IsBoolean(value: any, excludeNull: true): value is NonNullableType<boolean>;\n\tpublic static IsBoolean(value: any, excludeNull = false): value is boolean | NonNullableType<boolean> {\n\t\tconst output = Lib.GetType(value, true) === \"boolean\";\n\t\treturn excludeNull ? !Guards.IsNil(value) && output : output;\n\t}\n\n\tpublic static IsArray<T>(value: any): value is T[];\n\tpublic static IsArray<T>(value: any, excludeNull: true): value is NonNullableType<T[]>;\n\tpublic static IsArray<T>(value: any, excludeNull = false): value is T[] | NonNullableType<T[]> {\n\t\tconst output = Lib.IsArray(value);\n\t\treturn excludeNull ? !Guards.IsNil(value) && output : output;\n\t}\n\n\tpublic static IsObject(value: any): value is object;\n\tpublic static IsObject(value: any, excludeNull: true): value is NonNullableType<object>;\n\tpublic static IsObject(value: any, excludeNull = false): value is object | NonNullableType<object> {\n\t\tconst output = Lib.IsObject(value);\n\t\treturn excludeNull ? !Guards.IsNil(value) && output : output;\n\t}\n\n\tpublic static IsFunction(value: any): value is Function;\n\tpublic static IsFunction(value: any, excludeNull: true): value is NonNullableType<Function>;\n\tpublic static IsFunction(value: any, excludeNull = false): value is Function | NonNullableType<Function> {\n\t\tconst output = Lib.IsFunction(value);\n\t\treturn excludeNull ? !Guards.IsNil(value) && output : output;\n\t}\n\n\tpublic static IsNil(value: any): value is null | undefined {\n\t\treturn Lib.IsNil(value);\n\t}\n\n\tpublic static IsType<T>(obj: any): obj is T;\n\tpublic static IsType<T>(obj: any, keys: (keyof T)[]): obj is T;\n\tpublic static IsType<T>(obj: any, keys?: (keyof T)[]): obj is T {\n\t\tif (!keys) return !this.IsNil(obj);\n\t\treturn keys.every((key) => key in obj);\n\t}\n}\n\nexport default Guards;\n"]}
|
package/dist/utils/Lib.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Lib.js","sourceRoot":"","sources":["../../src/utils/Lib.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Lib.js","sourceRoot":"","sources":["../../src/utils/Lib.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { E_IS } from \"../enums\";\nimport Throwable from \"../throwable\";\n\nclass Lib {\n\tpublic static Log(...args: any) {\n\t\tconst timestamp = new Date().toLocaleTimeString();\n\t\tconsole.log(`[${timestamp}]:`, ...args);\n\t}\n\n\tpublic static LogObject(object: any, text?: string) {\n\t\tconst timestamp = new Date().toLocaleTimeString();\n\t\tconsole.log(`[${timestamp}]:`, text ?? \"\", JSON.stringify(object, null, 2));\n\t}\n\n\tpublic static Warn(...args: any) {\n\t\tconst timestamp = new Date().toLocaleTimeString();\n\t\tconsole.error(`[${timestamp}] Handled Error: `, ...args);\n\t}\n\n\tpublic static $Log(...args: any) {\n\t\tconst timestamp = new Date().toLocaleTimeString();\n\t\tconsole.error(`[${timestamp}]`, ...args);\n\t}\n\n\tpublic static secondsToMilliseconds(seconds: number): number {\n\t\treturn seconds * 1000;\n\t}\n\n\tpublic static minutesToMilliseconds(minutes: number): number {\n\t\treturn minutes * 60 * 1000;\n\t}\n\n\tpublic static hoursToMilliseconds(hours: number): number {\n\t\treturn hours * 60 * 60 * 1000;\n\t}\n\n\tpublic static GetTimestamp(milliseconds_ago: number) {\n\t\tconst now = new Date();\n\t\treturn new Date(now.getTime() - milliseconds_ago);\n\t}\n\n\tpublic static GetDateTimestamp(date: string | Date, format = \"DD/MM/YYYY HH:mm\", isUTC = false): number {\n\t\tif (typeof date === \"string\") {\n\t\t\tconst formatParts = format.split(/[-\\/. :]/);\n\t\t\tconst dateParts = date.split(/[-\\/. :]/);\n\n\t\t\tlet day: number | undefined;\n\t\t\tlet month: number | undefined;\n\t\t\tlet year: number | undefined;\n\t\t\tlet hours = 0;\n\t\t\tlet minutes = 0;\n\n\t\t\tformatParts.forEach((part, index) => {\n\t\t\t\tswitch (part) {\n\t\t\t\t\tcase \"DD\":\n\t\t\t\t\tcase \"dd\":\n\t\t\t\t\t\tday = parseInt(dateParts[index], 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"MM\":\n\t\t\t\t\t\tmonth = parseInt(dateParts[index], 10) - 1; // Months are 0-based in JavaScript Date\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"YYYY\":\n\t\t\t\t\tcase \"yyyy\":\n\t\t\t\t\t\tyear = parseInt(dateParts[index], 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"HH\":\n\t\t\t\t\tcase \"hh\":\n\t\t\t\t\t\thours = parseInt(dateParts[index], 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"mm\":\n\t\t\t\t\t\tminutes = parseInt(dateParts[index], 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (day === undefined || month === undefined || year === undefined) {\n\t\t\t\tthrow new Error(\"Invalid date format or date string\");\n\t\t\t}\n\n\t\t\tlet dateObj;\n\t\t\tif (isUTC) {\n\t\t\t\tdateObj = new Date(Date.UTC(year, month, day, hours, minutes));\n\t\t\t} else {\n\t\t\t\tdateObj = new Date(year, month, day, hours, minutes);\n\t\t\t}\n\t\t\treturn dateObj.getTime();\n\t\t} else {\n\t\t\treturn date.getTime();\n\t\t}\n\t}\n\n\tpublic static calculatePercentage(x: number, y: number): number {\n\t\tif (y === 0) {\n\t\t\tthrow new Error(\"The denominator (y) cannot be zero.\");\n\t\t}\n\t\treturn x / y;\n\t}\n\n\tpublic static MYSQLTimestamp(): string {\n\t\tconst now = new Date();\n\t\tconst year = now.getFullYear();\n\t\tconst month = now.getMonth() + 1;\n\t\tconst day = now.getDate();\n\t\tconst hours = now.getHours();\n\t\tconst minutes = now.getMinutes();\n\t\tconst seconds = now.getSeconds();\n\n\t\tconst formattedDate = `${year}-${month.toString().padStart(2, \"0\")}-${day.toString().padStart(2, \"0\")}`;\n\t\tconst formattedTime = `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}`;\n\n\t\treturn `${formattedDate} ${formattedTime}`;\n\t}\n\n\tpublic static FormatUnixToDate(unix_time_stamp: number, in_milliseconds = false): Date {\n\t\tconst date = new Date(unix_time_stamp * (in_milliseconds ? 1 : 1000));\n\t\treturn date;\n\t}\n\n\tpublic static FormatDate(date: Date | string, format = \"MM/dd/yyyy\"): string {\n\t\ttry {\n\t\t\tconst leadingZero = (value: number) => (value < 10 ? `0${value}` : `${value}`);\n\t\t\tif (!date) throw new Error(\"Lib.FormatDate() Exception: Date is required\");\n\t\t\tif (typeof date === \"string\") {\n\t\t\t\tdate = new Date(date);\n\t\t\t}\n\t\t\tconst day = leadingZero(date.getDate());\n\t\t\tconst month = leadingZero(date.getMonth() + 1);\n\t\t\tconst year = date.getFullYear();\n\t\t\tconst hours = leadingZero(date.getHours());\n\t\t\tconst minutes = leadingZero(date.getMinutes());\n\t\t\tconst seconds = leadingZero(date.getSeconds());\n\n\t\t\tlet result = format\n\t\t\t\t.replace(/DD|dd/g, day)\n\t\t\t\t.replace(/MM/g, month)\n\t\t\t\t.replace(/yyyy|YYYY/g, year.toString());\n\n\t\t\tif (format.includes(\"HH\")) {\n\t\t\t\tresult = result.replace(/HH/g, hours);\n\t\t\t}\n\t\t\tif (format.toLowerCase().includes(\"mm\")) {\n\t\t\t\tresult = result.replace(/mm/g, minutes);\n\t\t\t}\n\t\t\tif (format.includes(\"ss\")) {\n\t\t\t\tresult = result.replace(/ss/g, seconds);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic static DaysBetweenDates(startDate: Date | string | undefined, endDate: Date | string | undefined, format = \"MM/dd/yyyy\"): number {\n\t\tif (startDate === null || startDate === undefined || endDate === null || endDate === undefined) {\n\t\t\tthrow new Error(\"Lib.DaysBetweenDates() Exception: Dates are required\" + startDate + \" \" + endDate);\n\t\t}\n\t\tconst start = new Date(this.FormatDate(startDate, format)).getTime();\n\t\tconst end = new Date(this.FormatDate(endDate, format)).getTime();\n\t\tconst difference = end - start;\n\t\tconst daysPassed = difference / (1000 * 3600 * 24);\n\t\treturn Math.floor(daysPassed);\n\t}\n\n\tpublic static IsPastDate(date: Date | string, format = \"MM/dd/yyyy HH:mm:ss\", debug = false, currentDate?: Date | string): boolean {\n\t\tconst truncateToSecond = (d: Date) => new Date(Math.floor(d.getTime() / 1000) * 1000);\n\n\t\tconst now = truncateToSecond(currentDate ? (typeof currentDate === \"string\" ? new Date(currentDate) : currentDate) : new Date());\n\t\tconst check = truncateToSecond(typeof date === \"string\" ? new Date(date) : date);\n\n\t\tif (debug) {\n\t\t\tDebug.Log(\"Now:\", this.FormatDate(now, format));\n\t\t\tDebug.Log(\"Check:\", this.FormatDate(check, format));\n\t\t}\n\n\t\treturn now.getTime() > check.getTime();\n\t}\n\n\tpublic static IsPastDateFrom(date: Date | string, from: Date | string, format = \"MM/dd/yyyy\"): boolean {\n\t\tconst now = this.FormatDate(from, format);\n\t\tconst check = this.FormatDate(date, format);\n\t\treturn new Date(now).getTime() > new Date(check).getTime();\n\t}\n\n\tpublic static addTimeFromDate(date: Date | string, milliseconds: number): Date {\n\t\tconst dateObj = new Date(typeof date === \"string\" ? new Date(date).getTime() : date.getTime() + milliseconds);\n\t\treturn dateObj;\n\t}\n\n\tpublic static UUID(minLength = 36): string {\n\t\tconst template = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\n\t\tlet uuid = template.replace(/[xy]/g, function (c) {\n\t\t\tconst r = (Math.random() * 16) | 0,\n\t\t\t\tv = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\t\treturn v.toString(16);\n\t\t});\n\n\t\t// If the generated UUID is shorter than the minimum length, pad it with additional random characters\n\t\twhile (uuid.length < minLength) {\n\t\t\tuuid += ((Math.random() * 16) | 0).toString(16);\n\t\t}\n\n\t\treturn uuid.substring(0, minLength);\n\t}\n\n\tpublic static Debounce(callback: (...args: any[]) => void, delay = 500): (...args: any[]) => any {\n\t\tlet timeout: Timer;\n\t\treturn (...args: any[]) => {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\treturn callback(...args);\n\t\t\t}, delay);\n\t\t};\n\t}\n\n\tpublic static IsNil(value: any): boolean {\n\t\treturn value === null || value === undefined;\n\t}\n\n\tpublic static IsPrimitive(value: any): boolean {\n\t\treturn this.IsNumber(value) || this.IsString(value) || this.IsBoolean(value);\n\t}\n\n\tpublic static EmptyObject(value: any): boolean {\n\t\tlet empty_object = true;\n\t\tif (this.GetType(value) !== \"object\") {\n\t\t\tempty_object = false;\n\t\t\treturn empty_object;\n\t\t}\n\t\tif (Object.keys(value).length === 0) {\n\t\t\tempty_object = true;\n\t\t\treturn empty_object;\n\t\t}\n\t\tfor (const k in value) {\n\t\t\tif (!this.IsNil(value[k]) && value[k] !== \"\") {\n\t\t\t\tempty_object = false;\n\t\t\t}\n\t\t}\n\t\treturn empty_object;\n\t}\n\n\tpublic static IsNumpty(value: any, _objectsOnly = false): boolean {\n\t\treturn typeof value === \"number\" ? false : this.IsNil(value) || this.IsEmpty(value, _objectsOnly);\n\t}\n\n\tpublic static IsEmpty(value: any, _objectsOnly = false): boolean {\n\t\treturn (\n\t\t\t(this.GetType(value) === \"array\" && value.length === 0 && !_objectsOnly) ||\n\t\t\t(this.GetType(value) === \"object\" && this.EmptyObject(value)) ||\n\t\t\t(typeof value === \"string\" && value.trim().length === 0)\n\t\t);\n\t}\n\n\tpublic static IsArray(variable: any): boolean {\n\t\treturn this.GetType(variable) === E_IS.ARRAY;\n\t}\n\n\tpublic static IsString(variable: any, as_typeof: boolean = false): boolean {\n\t\treturn this.GetType(variable, as_typeof) === E_IS.STRING;\n\t}\n\n\tpublic static IsNumber(variable: any, as_typeof: boolean = false): boolean {\n\t\treturn this.GetType(variable, as_typeof) === E_IS.NUMBER;\n\t}\n\n\tpublic static IsObject(variable: any): boolean {\n\t\treturn this.GetType(variable) === E_IS.OBJECT;\n\t}\n\n\tpublic static IsFunction(variable: any): boolean {\n\t\treturn this.GetType(variable) === E_IS.FUNCTION;\n\t}\n\n\tpublic static IsRegex(variable: any): boolean {\n\t\treturn this.GetType(variable) === E_IS.REGEX;\n\t}\n\n\tpublic static IsBoolean(variable: any): boolean {\n\t\treturn this.GetType(variable, true) === E_IS.BOOLEAN;\n\t}\n\n\tpublic static GetType(value: any, asTypeOf = false): null | string | boolean {\n\t\tif (asTypeOf) {\n\t\t\treturn typeof value;\n\t\t}\n\t\tif (value === \"0\" || value === \"1\") {\n\t\t\treturn \"number\";\n\t\t}\n\t\tif (value === true) {\n\t\t\treturn true;\n\t\t} else if (value === false) {\n\t\t\treturn false;\n\t\t} else if (value === null || value === undefined) {\n\t\t\treturn null;\n\t\t} else if (Array.isArray(value)) {\n\t\t\treturn \"array\";\n\t\t} else if (value instanceof RegExp) {\n\t\t\treturn \"regex\";\n\t\t} else if (!isNaN(Number(value))) {\n\t\t\treturn \"number\";\n\t\t} else if (typeof value === \"string\") {\n\t\t\treturn \"string\";\n\t\t} else if ({}.toString.call(value) === \"[object Function]\" || typeof value === \"function\") {\n\t\t\treturn \"function\";\n\t\t} else {\n\t\t\treturn \"object\";\n\t\t}\n\t}\n\n\tpublic static GetProjectRoot(startDir: string = __dirname, rootReference = \"package.json\"): string {\n\t\tlet currentDir = startDir;\n\n\t\twhile (!fs.existsSync(path.join(currentDir, rootReference))) {\n\t\t\tconst parentDir = path.resolve(currentDir, \"..\");\n\t\t\tif (parentDir === currentDir) {\n\t\t\t\tthrow new Error(\"Unable to find project root\");\n\t\t\t}\n\t\t\tcurrentDir = parentDir;\n\t\t}\n\n\t\treturn currentDir;\n\t}\n\n\tpublic static async RunTaskWithTimeout(task: () => Promise<void>, timeout: number) {\n\t\treturn Promise.race([task(), new Promise((_, reject) => setTimeout(() => reject(new Error(\"Task timed out\")), timeout))]);\n\t}\n\n\tpublic static GetFolderPath(folder: string): string {\n\t\treturn path.join(this.GetProjectRoot(), folder);\n\t}\n\n\tpublic static GetFilePath(folder: string, file: string): string {\n\t\treturn path.join(this.GetFolderPath(folder), file);\n\t}\n\n\tpublic static async CreateDirectory(folderToCreate: string) {\n\t\tconst directoryPath = Lib.GetFolderPath(folderToCreate);\n\t\tawait fs.promises.access(directoryPath, fs.constants.F_OK).catch(async () => {\n\t\t\tawait fs.promises.mkdir(directoryPath, { recursive: true });\n\t\t});\n\t\treturn directoryPath;\n\t}\n\n\tpublic static async DeleteDirectory(folderToDelete: string) {\n\t\tconst directoryPath = path.join(this.GetProjectRoot(), folderToDelete);\n\t\tawait fs.promises.rm(directoryPath, { recursive: true, force: true });\n\t}\n\n\tpublic static async CreateFile(folderPath: string, filePath: string, content: string) {\n\t\tawait Lib.CreateDirectory(folderPath);\n\t\tconst file = Lib.GetFilePath(folderPath, filePath);\n\t\tawait fs.promises.writeFile(file, content, \"utf8\");\n\t}\n\n\tpublic static GetFile(filePathFromRoot: string) {\n\t\treturn fs.createReadStream(filePathFromRoot);\n\t}\n\n\tpublic static GetFilesInDirectory(directoryPath: string): string[] {\n\t\treturn fs.readdirSync(directoryPath);\n\t}\n\n\tpublic static async DeleteFile(filePathFromRoot: string) {\n\t\tawait fs.promises.unlink(filePathFromRoot);\n\t}\n\n\tpublic static Timestamp(log = false) {\n\t\tconst currentTime = new Date().toLocaleTimeString();\n\t\tif (log) console.log(`[${currentTime}]`);\n\t\treturn currentTime;\n\t}\n\n\tpublic static RemoveWhitespace(value: string): string {\n\t\treturn value.replace(/\\s/g, \"\");\n\t}\n\n\tpublic static msToString(ms: number): string {\n\t\tif (ms === 0) return \"0ms\"; // Handle zero duration case\n\t\tconst seconds = Math.floor(ms / 1000);\n\t\tconst minutes = Math.floor(seconds / 60);\n\t\tconst hours = Math.floor(minutes / 60);\n\t\tlet output = hours > 0 ? `${hours}h ` : \"\";\n\t\toutput += minutes > 0 ? `${minutes % 60}m ` : \"\";\n\t\toutput += seconds % 60 > 0 ? `${seconds % 60}s ` : \"\";\n\t\toutput += ms % 1000 > 0 ? `${(ms % 1000).toFixed(2)}ms` : \"\";\n\t\treturn output.trim();\n\t}\n\n\tpublic static FormatPhone(phone_number: string): string {\n\t\tlet output: string = phone_number;\n\t\t//remove all non-digit characters and whitespaces using regex\n\t\toutput = output.replace(/\\D/g, \"\");\n\t\t//if phone number doesn't start with + add +\n\t\tif (!output.startsWith(\"+\")) {\n\t\t\toutput = `+${output}`;\n\t\t}\n\t\treturn output;\n\t}\n\n\tpublic static ToMB(bytes: number, as_KB = true, decimalPlaces = 2): string {\n\t\tconst kb = bytes / 1024;\n\t\treturn (as_KB ? kb : kb / 1024).toFixed(decimalPlaces);\n\t}\n\n\tpublic static ToGB(bytes: number, as_KB = true, decimalPlaces = 2): string {\n\t\tconst mb = this.ToMB(bytes, as_KB, decimalPlaces);\n\t\treturn (parseInt(mb) / 1024).toFixed(decimalPlaces);\n\t}\n\n\tpublic static async RetryHandler<T extends (...args: any[]) => any>(func: T, retries = 3, ...args: Parameters<T>): Promise<ReturnType<T>> {\n\t\tlet attempts = 0;\n\t\tlet toThrow;\n\n\t\twhile (attempts < retries) {\n\t\t\ttry {\n\t\t\t\treturn await func(...args);\n\t\t\t} catch (e) {\n\t\t\t\tattempts++;\n\t\t\t\ttoThrow = e;\n\t\t\t\tif (attempts <= retries && !Throwable.IsThrowable(e)) {\n\t\t\t\t\tLib.$Log(`Attempt ${attempts} failed. Retrying...(${func.name})`);\n\t\t\t\t\tif (attempts == 1) Lib.Warn(toThrow);\n\t\t\t\t\t// Lib.Warn(toThrow, { hint: `Attempt ${attempts} failed. Retrying...(${func.name})`, data: JSON.stringify(args) });\n\t\t\t\t\t// Wait for 1 second before retrying\n\t\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthrow toThrow;\n\t}\n\n\tpublic static Difference(x: any[], y: any[]) {\n\t\treturn x.filter((x) => !y.includes(x));\n\t}\n\n\tpublic static async ReadFileContent(filePath: string): Promise<string> {\n\t\treturn fs.promises.readFile(filePath, \"utf8\");\n\t}\n\n\tpublic static async measureExecutionTime<T extends (...args: any[]) => any, U extends ReturnType<T>>(\n\t\tfunc: T,\n\t\t...args: Parameters<T>\n\t): Promise<{ result: Awaited<U>; time: number | string }> {\n\t\tconst start = performance.now();\n\t\tconst result = await func(...args);\n\t\tconst end = performance.now();\n\t\treturn { result, time: this.msToString(end - start) };\n\t}\n\n\tpublic static ToCamelCase(str: string): string {\n\t\treturn str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (word, index) => (index === 0 ? word.toLowerCase() : word.toUpperCase())).replace(/\\s+/g, \"\");\n\t}\n\n\tpublic static ToSnakeCase(str: string): string {\n\t\treturn str.replace(/([a-z])([A-Z])/g, \"$1_$2\").toLowerCase();\n\t}\n\n\tpublic static ToKebebCase(str: string): string {\n\t\treturn str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\t}\n\n\tpublic static ToPascalCase(str: string): string {\n\t\treturn str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (word, index) => (index === 0 ? word.toUpperCase() : word.toLowerCase())).replace(/\\s+/g, \"\");\n\t}\n}\n\nexport default Lib;\n\nexport class Debug {\n\tpublic static Log(...args: any) {\n\t\tif (process.env.NODE_ENV === \"production\") return;\n\t\tLib.Log(...args);\n\t}\n\n\tpublic static $Log(...args: any) {\n\t\tif (process.env.NODE_ENV === \"production\") return;\n\t\tLib.$Log(...args);\n\t}\n\n\tpublic static LogObject(object: any, text?: string) {\n\t\tif (process.env.NODE_ENV === \"production\") return;\n\t\tLib.LogObject(object, text);\n\t}\n\n\tpublic static GetLocalIpAddress(): string {\n\t\ttry {\n\t\t\tconst { networkInterfaces } = require(\"os\");\n\t\t\tconst nets = networkInterfaces();\n\n\t\t\tfor (const name of Object.keys(nets)) {\n\t\t\t\tfor (const net of nets[name]) {\n\t\t\t\t\t// Skip internal and non-IPv4 addresses\n\t\t\t\t\tif (!net.internal && net.family === \"IPv4\") {\n\t\t\t\t\t\treturn net.address;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"127.0.0.1\"; // Fallback to localhost\n\t\t} catch (err) {\n\t\t\treturn \"127.0.0.1\"; // Fallback to localhost\n\t\t}\n\t}\n}\n"]}
|
package/dist/utils/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,iCAAiC;AAEjC,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,iCAAiC;AAEjC,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-indexes.ts\n// Do not edit this file directly\n\nexport * from './Guards';\nexport * from './Lib';\nexport * from './Console';\nexport { default as Guards } from './Guards';\nexport { default as Lib } from './Lib';\nexport { default as Console } from './Console';\n"]}
|
package/package.json
CHANGED
@@ -1,19 +1,21 @@
|
|
1
1
|
{
|
2
2
|
"name": "topsyde-utils",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.152",
|
4
4
|
"description": "A bundle of TypeScript utility classes and functions",
|
5
|
+
"type": "module",
|
5
6
|
"main": "dist/index.js",
|
6
7
|
"types": "dist/index.d.ts",
|
7
8
|
"files": [
|
8
9
|
"dist",
|
9
|
-
"dist/**/*"
|
10
|
+
"dist/**/*",
|
11
|
+
"src"
|
10
12
|
],
|
11
13
|
"scripts": {
|
12
14
|
"clean": "rimraf dist",
|
13
15
|
"format": "prettier --cache --write \"**/*.ts\"",
|
14
16
|
"format:generated": "prettier --cache --write \"src/index.ts\"",
|
15
17
|
"generate-indexes": "bash ./scripts/generate-indexes.sh",
|
16
|
-
"build:ts": "tsc",
|
18
|
+
"build:ts": "tsc --sourceMap --inlineSources",
|
17
19
|
"build:types": "tsc --emitDeclarationOnly --declaration --outDir ./dist",
|
18
20
|
"build:prepare": "bun run clean && bun run generate-indexes && bun run format:generated",
|
19
21
|
"build": "bun run build:prepare && bun run build:ts && bun run build:types",
|
@@ -0,0 +1,205 @@
|
|
1
|
+
import * as app from "../server/bun/websocket";
|
2
|
+
import { WebsocketStructuredMessage } from "../server/bun/websocket/websocket.types";
|
3
|
+
import Singleton from "../singleton";
|
4
|
+
import Channel from "../server/bun/websocket/Channel";
|
5
|
+
|
6
|
+
describe("Websocket Tests", () => {
|
7
|
+
const _Websocket = app.Websocket;
|
8
|
+
let server: any;
|
9
|
+
|
10
|
+
beforeEach(() => {
|
11
|
+
// Reset all singleton instances before each test
|
12
|
+
Singleton.ResetInstances();
|
13
|
+
|
14
|
+
// Create a mock server
|
15
|
+
server = {
|
16
|
+
publish: (channel: string, message: string) => {},
|
17
|
+
};
|
18
|
+
|
19
|
+
// Set up the Websocket instance with the server
|
20
|
+
const wsInstance = _Websocket.GetInstance<app.Websocket>();
|
21
|
+
wsInstance.set(server);
|
22
|
+
});
|
23
|
+
|
24
|
+
it("should set up the websocket server correctly", () => {
|
25
|
+
const wsInstance = _Websocket.GetInstance<app.Websocket>();
|
26
|
+
expect(_Websocket.Server()).toBe(server);
|
27
|
+
});
|
28
|
+
|
29
|
+
it("should broadcast messages to channels", () => {
|
30
|
+
// Test broadcasting a message
|
31
|
+
const message: WebsocketStructuredMessage = {
|
32
|
+
type: "test",
|
33
|
+
content: "Hello from test",
|
34
|
+
};
|
35
|
+
|
36
|
+
// This should work because the server is set
|
37
|
+
_Websocket.Broadcast("global", message);
|
38
|
+
// No assertion needed, just checking it doesn't throw
|
39
|
+
});
|
40
|
+
|
41
|
+
it("should handle the case when server is not set", () => {
|
42
|
+
// Create a new instance with Singleton.ResetInstance and don't set a server
|
43
|
+
const newWs = _Websocket.GetInstance<app.Websocket>();
|
44
|
+
(newWs.server as any) = null;
|
45
|
+
// This should log a warning but not throw an error
|
46
|
+
const message: WebsocketStructuredMessage = {
|
47
|
+
type: "test",
|
48
|
+
content: "This should warn but not error",
|
49
|
+
};
|
50
|
+
|
51
|
+
// expect newWs.server.publish("global", JSON.stringify(message)); to throw an error
|
52
|
+
expect(() => newWs.server.publish("global", JSON.stringify(message))).toThrow();
|
53
|
+
});
|
54
|
+
|
55
|
+
it("should join and leave channels", () => {
|
56
|
+
// Create a properly mocked WebSocket client with the required methods
|
57
|
+
const mockWs = {
|
58
|
+
send: (data: string) => {},
|
59
|
+
subscribe: (channel: string) => {},
|
60
|
+
unsubscribe: (channel: string) => {},
|
61
|
+
data: { id: "test-client" },
|
62
|
+
};
|
63
|
+
|
64
|
+
const mockClient = {
|
65
|
+
id: "123",
|
66
|
+
ws: mockWs as any,
|
67
|
+
name: "test-client",
|
68
|
+
};
|
69
|
+
|
70
|
+
// Join a channel
|
71
|
+
_Websocket.Join("global", mockClient);
|
72
|
+
|
73
|
+
// Leave the channel
|
74
|
+
_Websocket.Leave("global", mockClient);
|
75
|
+
// No assertion needed, just checking it doesn't throw
|
76
|
+
});
|
77
|
+
|
78
|
+
it("should publish messages to all channels", () => {
|
79
|
+
// Test publishing a message to all channels
|
80
|
+
const message: WebsocketStructuredMessage = {
|
81
|
+
type: "test",
|
82
|
+
content: "Broadcast to all channels",
|
83
|
+
};
|
84
|
+
|
85
|
+
_Websocket.BraodcastAll(message);
|
86
|
+
// No assertion needed, just checking it doesn't throw
|
87
|
+
});
|
88
|
+
|
89
|
+
it("should verify static method behavior with inheritance", () => {
|
90
|
+
// This test specifically checks if static methods are called on the correct class
|
91
|
+
// when using inheritance
|
92
|
+
|
93
|
+
// Create a second derived class to test inheritance behavior
|
94
|
+
class AnotherWebsocket extends app.Websocket {}
|
95
|
+
|
96
|
+
// Get instances of both classes
|
97
|
+
const wsInstance1 = _Websocket.GetInstance<app.Websocket>();
|
98
|
+
const wsInstance2 = AnotherWebsocket.GetInstance<AnotherWebsocket>();
|
99
|
+
|
100
|
+
// Each class should have its own singleton instance
|
101
|
+
expect(wsInstance1).not.toBe(wsInstance2);
|
102
|
+
|
103
|
+
// Set up server for both instances
|
104
|
+
wsInstance1.set(server);
|
105
|
+
wsInstance2.set(server);
|
106
|
+
|
107
|
+
// Both classes should share the same server instance
|
108
|
+
expect(_Websocket.Server()).toBe(server);
|
109
|
+
expect(AnotherWebsocket.Server()).toBe(server);
|
110
|
+
});
|
111
|
+
|
112
|
+
it("should test static method calls from derived class instance", () => {
|
113
|
+
// This test checks if calling static methods from a derived class instance
|
114
|
+
// correctly uses the static methods of the derived class
|
115
|
+
|
116
|
+
// Create a derived class with a custom static method
|
117
|
+
class CustomWebsocket extends app.Websocket {
|
118
|
+
public static CustomServer() {
|
119
|
+
// This should call the Server() method on CustomWebsocket, not on Websocket
|
120
|
+
return this.Server();
|
121
|
+
}
|
122
|
+
|
123
|
+
// Override the Broadcast method to add logging
|
124
|
+
public static Broadcast(channel: string, message: WebsocketStructuredMessage) {
|
125
|
+
console.log("CustomWebsocket.Broadcast called");
|
126
|
+
// Call the parent method
|
127
|
+
super.Broadcast(channel, message);
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
// Get an instance of the custom class and set up its server
|
132
|
+
const customWs = CustomWebsocket.GetInstance<CustomWebsocket>();
|
133
|
+
customWs.set(server);
|
134
|
+
|
135
|
+
// Both classes should share the same server instance
|
136
|
+
expect(_Websocket.Server()).toBe(server);
|
137
|
+
expect(CustomWebsocket.Server()).toBe(server);
|
138
|
+
|
139
|
+
// Test broadcasting a message through the custom class
|
140
|
+
const message: WebsocketStructuredMessage = {
|
141
|
+
type: "test",
|
142
|
+
content: "Hello from custom test",
|
143
|
+
};
|
144
|
+
|
145
|
+
// This should use the overridden Broadcast method
|
146
|
+
CustomWebsocket.Broadcast("global", message);
|
147
|
+
});
|
148
|
+
|
149
|
+
it("should simulate the real-world scenario with modules", () => {
|
150
|
+
// This test simulates the real-world scenario where a derived class is used in a different module
|
151
|
+
|
152
|
+
// First, let's create a module-like structure
|
153
|
+
const moduleA = {
|
154
|
+
// This represents the topsyde-utils module
|
155
|
+
Websocket: app.Websocket,
|
156
|
+
};
|
157
|
+
|
158
|
+
// Create a derived class that extends the base Websocket
|
159
|
+
class DerivedWebsocket extends moduleA.Websocket {
|
160
|
+
protected constructor() {
|
161
|
+
super();
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
const moduleB = {
|
166
|
+
// This represents the server_rune_matchmaking module
|
167
|
+
Websocket: DerivedWebsocket,
|
168
|
+
};
|
169
|
+
|
170
|
+
// Now simulate the app.ts setup
|
171
|
+
class TestApp {
|
172
|
+
private websocket: app.Websocket;
|
173
|
+
|
174
|
+
constructor() {
|
175
|
+
this.websocket = moduleB.Websocket.GetInstance();
|
176
|
+
// Set up the server for this instance
|
177
|
+
this.websocket.set(server);
|
178
|
+
}
|
179
|
+
|
180
|
+
setup() {
|
181
|
+
return server;
|
182
|
+
}
|
183
|
+
|
184
|
+
broadcast(message: WebsocketStructuredMessage) {
|
185
|
+
moduleB.Websocket.Broadcast("global", message);
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
// Create and set up the app
|
190
|
+
const testApp = new TestApp();
|
191
|
+
testApp.setup();
|
192
|
+
|
193
|
+
// Test broadcasting a message
|
194
|
+
const message: WebsocketStructuredMessage = {
|
195
|
+
type: "test",
|
196
|
+
content: "Hello from app test",
|
197
|
+
};
|
198
|
+
|
199
|
+
// This should work because the server is set
|
200
|
+
testApp.broadcast(message);
|
201
|
+
|
202
|
+
// Verify that the server is set correctly
|
203
|
+
expect(moduleB.Websocket.Server()).toBeDefined();
|
204
|
+
});
|
205
|
+
});
|