@devbro/pashmak 0.1.47 → 0.1.49
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/DatabaseServiceProvider.d.mts +4 -1
- package/dist/DatabaseServiceProvider.mjs +5 -2
- package/dist/DatabaseServiceProvider.mjs.map +1 -1
- package/dist/app/console/StartCommand.d.mts +1 -0
- package/dist/app/console/StartCommand.mjs +5 -2
- package/dist/app/console/StartCommand.mjs.map +1 -1
- package/dist/app/console/generate/GenerateApiDocsCommand.d.mts +34 -2
- package/dist/app/console/generate/GenerateApiDocsCommand.mjs +183 -100
- package/dist/app/console/generate/GenerateApiDocsCommand.mjs.map +1 -1
- package/dist/app/console/project/base_project/src/config/storages.ts.tpl +2 -2
- package/dist/bin/DatabaseServiceProvider.cjs +8 -2
- package/dist/bin/app/console/DefaultCommand.cjs +64 -32
- package/dist/bin/app/console/KeyGenerateCommand.cjs +64 -32
- package/dist/bin/app/console/StartCommand.cjs +69 -34
- package/dist/bin/app/console/generate/GenerateApiDocsCommand.cjs +248 -133
- package/dist/bin/app/console/generate/GenerateControllerCommand.cjs +64 -32
- package/dist/bin/app/console/generate/index.cjs +248 -133
- package/dist/bin/app/console/index.cjs +253 -135
- package/dist/bin/app/console/migrate/GenerateMigrateCommand.cjs +64 -32
- package/dist/bin/app/console/migrate/MigrateCommand.cjs +64 -32
- package/dist/bin/app/console/migrate/MigrateRollbackCommand.cjs +64 -32
- package/dist/bin/app/console/migrate/index.cjs +64 -32
- package/dist/bin/app/console/queue/GenerateQueueMigrateCommand.cjs +64 -32
- package/dist/bin/cache.cjs +64 -32
- package/dist/bin/facades.cjs +64 -32
- package/dist/bin/factories.cjs +64 -32
- package/dist/bin/http.cjs +739 -0
- package/dist/bin/index.cjs +264 -141
- package/dist/bin/middlewares.cjs +66 -34
- package/dist/bin/queue.cjs +64 -32
- package/dist/bin/router.cjs +4 -8
- package/dist/config.d.mts +0 -1
- package/dist/facades.mjs +2 -13
- package/dist/facades.mjs.map +1 -1
- package/dist/factories.mjs +45 -2
- package/dist/factories.mjs.map +1 -1
- package/dist/http.d.mts +4 -0
- package/dist/http.mjs +20 -0
- package/dist/http.mjs.map +1 -1
- package/dist/queue.d.mts +1 -1
- package/dist/queue.mjs.map +1 -1
- package/package.json +1 -1
package/dist/bin/middlewares.cjs
CHANGED
|
@@ -75,6 +75,7 @@ var MiddlewareFactory = class {
|
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
78
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
78
79
|
var CompiledRoute = class {
|
|
79
80
|
static {
|
|
80
81
|
__name(this, "CompiledRoute");
|
|
@@ -95,7 +96,7 @@ var CompiledRoute = class {
|
|
|
95
96
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
96
97
|
if (middleware instanceof Middleware) {
|
|
97
98
|
this.middlewares.push(middleware);
|
|
98
|
-
} else if (
|
|
99
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
99
100
|
this.middlewares.push(middleware.getInstance({}));
|
|
100
101
|
} else if (typeof middleware === "function") {
|
|
101
102
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -104,13 +105,8 @@ var CompiledRoute = class {
|
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
|
-
isClass(func) {
|
|
108
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
109
|
-
}
|
|
110
108
|
async run() {
|
|
111
|
-
|
|
112
|
-
this.response.end();
|
|
113
|
-
return rc;
|
|
109
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
114
110
|
}
|
|
115
111
|
prepareOutputJsonFormat(obj) {
|
|
116
112
|
function traverse(value) {
|
|
@@ -244,7 +240,7 @@ var Route = class {
|
|
|
244
240
|
i = start;
|
|
245
241
|
} else if (char === "*") {
|
|
246
242
|
let start = i + 1;
|
|
247
|
-
while (start < path2.length && /[a-zA-Z0-9_
|
|
243
|
+
while (start < path2.length && /[a-zA-Z0-9_]/.test(path2[start])) {
|
|
248
244
|
start++;
|
|
249
245
|
}
|
|
250
246
|
tokens.push({ type: "WILDCARD", value: path2.slice(i + 1, start) });
|
|
@@ -459,7 +455,7 @@ var import_errors = require("@devbro/neko-http/errors");
|
|
|
459
455
|
|
|
460
456
|
// src/facades.mts
|
|
461
457
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
462
|
-
var
|
|
458
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
463
459
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
464
460
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
465
461
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -468,7 +464,24 @@ var import_clipanion = require("clipanion");
|
|
|
468
464
|
|
|
469
465
|
// src/http.mts
|
|
470
466
|
var http_exports = {};
|
|
467
|
+
__export(http_exports, {
|
|
468
|
+
handleHttpErrors: () => handleHttpErrors
|
|
469
|
+
});
|
|
470
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
471
471
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
472
|
+
async function handleHttpErrors(err, req, res) {
|
|
473
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
474
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
475
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
476
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
477
|
+
return;
|
|
478
|
+
} else {
|
|
479
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
480
|
+
}
|
|
481
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
482
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
483
|
+
}
|
|
484
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
472
485
|
|
|
473
486
|
// src/facades.mts
|
|
474
487
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -483,7 +496,7 @@ __export(queue_exports, {
|
|
|
483
496
|
DatabaseTransport: () => DatabaseTransport
|
|
484
497
|
});
|
|
485
498
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
486
|
-
var
|
|
499
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
487
500
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
488
501
|
var DatabaseTransport = class {
|
|
489
502
|
static {
|
|
@@ -544,7 +557,7 @@ var DatabaseTransport = class {
|
|
|
544
557
|
}, "processMessage");
|
|
545
558
|
constructor(config2 = {}) {
|
|
546
559
|
this.config = { ...this.config, ...config2 };
|
|
547
|
-
this.repeater = (0,
|
|
560
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
548
561
|
this.processMessage,
|
|
549
562
|
this.config.listen_interval * 1e3
|
|
550
563
|
);
|
|
@@ -612,6 +625,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
612
625
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
613
626
|
return new import_neko_queue.MemoryTransport(opt);
|
|
614
627
|
});
|
|
628
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
629
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
630
|
+
});
|
|
631
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
632
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
633
|
+
});
|
|
634
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
635
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
636
|
+
});
|
|
637
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
638
|
+
return new import_neko_queue.AsyncTransport();
|
|
639
|
+
});
|
|
640
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
641
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
642
|
+
});
|
|
643
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
644
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
645
|
+
});
|
|
615
646
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
616
647
|
static {
|
|
617
648
|
__name(this, "CacheProviderFactory");
|
|
@@ -642,12 +673,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
642
673
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
643
674
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
644
675
|
});
|
|
676
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
677
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
678
|
+
});
|
|
679
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
680
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
681
|
+
});
|
|
682
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
683
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
684
|
+
});
|
|
685
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
686
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
687
|
+
});
|
|
645
688
|
|
|
646
689
|
// src/facades.mts
|
|
647
690
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
648
691
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
649
|
-
var router = (0,
|
|
650
|
-
var scheduler = (0,
|
|
692
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
693
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
651
694
|
const rc = new import_neko_scheduler.Scheduler();
|
|
652
695
|
rc.setErrorHandler((err, job) => {
|
|
653
696
|
logger().error({
|
|
@@ -659,7 +702,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
659
702
|
return rc;
|
|
660
703
|
});
|
|
661
704
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
662
|
-
var storage = (0,
|
|
705
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
663
706
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
664
707
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
665
708
|
storage_config.provider,
|
|
@@ -667,7 +710,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
667
710
|
);
|
|
668
711
|
return new import_neko_storage2.Storage(provider);
|
|
669
712
|
});
|
|
670
|
-
var cli = (0,
|
|
713
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
671
714
|
const [node, app, ...args] = process.argv;
|
|
672
715
|
return new import_clipanion.Cli({
|
|
673
716
|
binaryLabel: `My Application`,
|
|
@@ -675,24 +718,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
675
718
|
binaryVersion: `1.0.0`
|
|
676
719
|
});
|
|
677
720
|
});
|
|
678
|
-
var httpServer = (0,
|
|
721
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
679
722
|
const server = new http_exports.HttpServer();
|
|
680
|
-
server.setErrorHandler(
|
|
681
|
-
if (err instanceof http_exports.HttpError) {
|
|
682
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
683
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
684
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
685
|
-
return;
|
|
686
|
-
} else {
|
|
687
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
688
|
-
}
|
|
689
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
690
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
691
|
-
});
|
|
723
|
+
server.setErrorHandler(handleHttpErrors);
|
|
692
724
|
server.setRouter(router());
|
|
693
725
|
return server;
|
|
694
726
|
});
|
|
695
|
-
var logger = (0,
|
|
727
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
696
728
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
697
729
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
698
730
|
rc.setExtrasFunction((message) => {
|
|
@@ -701,7 +733,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
701
733
|
});
|
|
702
734
|
return rc;
|
|
703
735
|
});
|
|
704
|
-
var mailer = (0,
|
|
736
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
705
737
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
706
738
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
707
739
|
mailer_config.provider,
|
|
@@ -710,7 +742,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
710
742
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
711
743
|
return rc;
|
|
712
744
|
});
|
|
713
|
-
var queue = (0,
|
|
745
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
714
746
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
715
747
|
if (!queue_config) {
|
|
716
748
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -721,7 +753,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
721
753
|
);
|
|
722
754
|
return new import_neko_queue2.QueueConnection(provider);
|
|
723
755
|
});
|
|
724
|
-
var cache = (0,
|
|
756
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
725
757
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
726
758
|
if (!cache_config) {
|
|
727
759
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -734,7 +766,7 @@ var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
734
766
|
});
|
|
735
767
|
|
|
736
768
|
// src/middlewares.mts
|
|
737
|
-
var
|
|
769
|
+
var import_neko_http2 = require("@devbro/neko-http");
|
|
738
770
|
function cors(options = {}) {
|
|
739
771
|
return async (req, res, next) => {
|
|
740
772
|
const allowedOrigins = options.allowedOrigins || ["*"];
|
|
@@ -815,7 +847,7 @@ var RateLimiterMiddleware = class _RateLimiterMiddleware extends Middleware {
|
|
|
815
847
|
);
|
|
816
848
|
}
|
|
817
849
|
if (count > this.params.maxRequests) {
|
|
818
|
-
throw new
|
|
850
|
+
throw new import_neko_http2.HttpTooManyRequestsError(
|
|
819
851
|
"Too many requests. Please try again later."
|
|
820
852
|
);
|
|
821
853
|
}
|
package/dist/bin/queue.cjs
CHANGED
|
@@ -78,6 +78,7 @@ var MiddlewareFactory = class {
|
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
81
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
81
82
|
var CompiledRoute = class {
|
|
82
83
|
static {
|
|
83
84
|
__name(this, "CompiledRoute");
|
|
@@ -98,7 +99,7 @@ var CompiledRoute = class {
|
|
|
98
99
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
99
100
|
if (middleware instanceof Middleware) {
|
|
100
101
|
this.middlewares.push(middleware);
|
|
101
|
-
} else if (
|
|
102
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
102
103
|
this.middlewares.push(middleware.getInstance({}));
|
|
103
104
|
} else if (typeof middleware === "function") {
|
|
104
105
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -107,13 +108,8 @@ var CompiledRoute = class {
|
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
isClass(func) {
|
|
111
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
112
|
-
}
|
|
113
111
|
async run() {
|
|
114
|
-
|
|
115
|
-
this.response.end();
|
|
116
|
-
return rc;
|
|
112
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
117
113
|
}
|
|
118
114
|
prepareOutputJsonFormat(obj) {
|
|
119
115
|
function traverse(value) {
|
|
@@ -247,7 +243,7 @@ var Route = class {
|
|
|
247
243
|
i = start;
|
|
248
244
|
} else if (char === "*") {
|
|
249
245
|
let start = i + 1;
|
|
250
|
-
while (start < path2.length && /[a-zA-Z0-9_
|
|
246
|
+
while (start < path2.length && /[a-zA-Z0-9_]/.test(path2[start])) {
|
|
251
247
|
start++;
|
|
252
248
|
}
|
|
253
249
|
tokens.push({ type: "WILDCARD", value: path2.slice(i + 1, start) });
|
|
@@ -458,7 +454,7 @@ var Router = class {
|
|
|
458
454
|
|
|
459
455
|
// src/facades.mts
|
|
460
456
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
461
|
-
var
|
|
457
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
462
458
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
463
459
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
464
460
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -467,7 +463,24 @@ var import_clipanion = require("clipanion");
|
|
|
467
463
|
|
|
468
464
|
// src/http.mts
|
|
469
465
|
var http_exports = {};
|
|
466
|
+
__export(http_exports, {
|
|
467
|
+
handleHttpErrors: () => handleHttpErrors
|
|
468
|
+
});
|
|
469
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
470
470
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
471
|
+
async function handleHttpErrors(err, req, res) {
|
|
472
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
473
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
474
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
475
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
476
|
+
return;
|
|
477
|
+
} else {
|
|
478
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
479
|
+
}
|
|
480
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
481
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
482
|
+
}
|
|
483
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
471
484
|
|
|
472
485
|
// src/facades.mts
|
|
473
486
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -508,6 +521,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
508
521
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
509
522
|
return new import_neko_queue.MemoryTransport(opt);
|
|
510
523
|
});
|
|
524
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
525
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
526
|
+
});
|
|
527
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
528
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
529
|
+
});
|
|
530
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
531
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
532
|
+
});
|
|
533
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
534
|
+
return new import_neko_queue.AsyncTransport();
|
|
535
|
+
});
|
|
536
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
537
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
538
|
+
});
|
|
539
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
540
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
541
|
+
});
|
|
511
542
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
512
543
|
static {
|
|
513
544
|
__name(this, "CacheProviderFactory");
|
|
@@ -538,12 +569,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
538
569
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
539
570
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
540
571
|
});
|
|
572
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
573
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
574
|
+
});
|
|
575
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
576
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
577
|
+
});
|
|
578
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
579
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
580
|
+
});
|
|
581
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
582
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
583
|
+
});
|
|
541
584
|
|
|
542
585
|
// src/facades.mts
|
|
543
586
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
544
587
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
545
|
-
var router = (0,
|
|
546
|
-
var scheduler = (0,
|
|
588
|
+
var router = (0, import_neko_helper2.createSingleton)(() => new Router());
|
|
589
|
+
var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
547
590
|
const rc = new import_neko_scheduler.Scheduler();
|
|
548
591
|
rc.setErrorHandler((err, job) => {
|
|
549
592
|
logger().error({
|
|
@@ -555,7 +598,7 @@ var scheduler = (0, import_neko_helper.createSingleton)(() => {
|
|
|
555
598
|
return rc;
|
|
556
599
|
});
|
|
557
600
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context2.ctx)().getOrThrow(["database", label]), "db");
|
|
558
|
-
var storage = (0,
|
|
601
|
+
var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
559
602
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
560
603
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
561
604
|
storage_config.provider,
|
|
@@ -563,7 +606,7 @@ var storage = (0, import_neko_helper.createSingleton)((label = "default") => {
|
|
|
563
606
|
);
|
|
564
607
|
return new import_neko_storage2.Storage(provider);
|
|
565
608
|
});
|
|
566
|
-
var cli = (0,
|
|
609
|
+
var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
567
610
|
const [node, app, ...args] = process.argv;
|
|
568
611
|
return new import_clipanion.Cli({
|
|
569
612
|
binaryLabel: `My Application`,
|
|
@@ -571,24 +614,13 @@ var cli = (0, import_neko_helper.createSingleton)(() => {
|
|
|
571
614
|
binaryVersion: `1.0.0`
|
|
572
615
|
});
|
|
573
616
|
});
|
|
574
|
-
var httpServer = (0,
|
|
617
|
+
var httpServer = (0, import_neko_helper2.createSingleton)(() => {
|
|
575
618
|
const server = new http_exports.HttpServer();
|
|
576
|
-
server.setErrorHandler(
|
|
577
|
-
if (err instanceof http_exports.HttpError) {
|
|
578
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
579
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
580
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
581
|
-
return;
|
|
582
|
-
} else {
|
|
583
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
584
|
-
}
|
|
585
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
586
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
587
|
-
});
|
|
619
|
+
server.setErrorHandler(handleHttpErrors);
|
|
588
620
|
server.setRouter(router());
|
|
589
621
|
return server;
|
|
590
622
|
});
|
|
591
|
-
var logger = (0,
|
|
623
|
+
var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
592
624
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
593
625
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
594
626
|
rc.setExtrasFunction((message) => {
|
|
@@ -597,7 +629,7 @@ var logger = (0, import_neko_helper.createSingleton)((label) => {
|
|
|
597
629
|
});
|
|
598
630
|
return rc;
|
|
599
631
|
});
|
|
600
|
-
var mailer = (0,
|
|
632
|
+
var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
601
633
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
602
634
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
603
635
|
mailer_config.provider,
|
|
@@ -606,7 +638,7 @@ var mailer = (0, import_neko_helper.createSingleton)((label) => {
|
|
|
606
638
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
607
639
|
return rc;
|
|
608
640
|
});
|
|
609
|
-
var queue = (0,
|
|
641
|
+
var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
610
642
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
611
643
|
if (!queue_config) {
|
|
612
644
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -617,7 +649,7 @@ var queue = (0, import_neko_helper.createSingleton)((label) => {
|
|
|
617
649
|
);
|
|
618
650
|
return new import_neko_queue2.QueueConnection(provider);
|
|
619
651
|
});
|
|
620
|
-
var cache = (0,
|
|
652
|
+
var cache = (0, import_neko_helper2.createSingleton)((label) => {
|
|
621
653
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
622
654
|
if (!cache_config) {
|
|
623
655
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -630,7 +662,7 @@ var cache = (0, import_neko_helper.createSingleton)((label) => {
|
|
|
630
662
|
});
|
|
631
663
|
|
|
632
664
|
// src/queue.mts
|
|
633
|
-
var
|
|
665
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
634
666
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
635
667
|
var DatabaseTransport = class {
|
|
636
668
|
static {
|
|
@@ -691,7 +723,7 @@ var DatabaseTransport = class {
|
|
|
691
723
|
}, "processMessage");
|
|
692
724
|
constructor(config2 = {}) {
|
|
693
725
|
this.config = { ...this.config, ...config2 };
|
|
694
|
-
this.repeater = (0,
|
|
726
|
+
this.repeater = (0, import_neko_helper3.createRepeater)(
|
|
695
727
|
this.processMessage,
|
|
696
728
|
this.config.listen_interval * 1e3
|
|
697
729
|
);
|
package/dist/bin/router.cjs
CHANGED
|
@@ -91,6 +91,7 @@ var MiddlewareFactory = class {
|
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
94
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
94
95
|
var CompiledRoute = class {
|
|
95
96
|
static {
|
|
96
97
|
__name(this, "CompiledRoute");
|
|
@@ -111,7 +112,7 @@ var CompiledRoute = class {
|
|
|
111
112
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
112
113
|
if (middleware instanceof Middleware) {
|
|
113
114
|
this.middlewares.push(middleware);
|
|
114
|
-
} else if (
|
|
115
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
115
116
|
this.middlewares.push(middleware.getInstance({}));
|
|
116
117
|
} else if (typeof middleware === "function") {
|
|
117
118
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -120,13 +121,8 @@ var CompiledRoute = class {
|
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
|
-
isClass(func) {
|
|
124
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
125
|
-
}
|
|
126
124
|
async run() {
|
|
127
|
-
|
|
128
|
-
this.response.end();
|
|
129
|
-
return rc;
|
|
125
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
130
126
|
}
|
|
131
127
|
prepareOutputJsonFormat(obj) {
|
|
132
128
|
function traverse(value) {
|
|
@@ -363,7 +359,7 @@ var Route = class {
|
|
|
363
359
|
i = start;
|
|
364
360
|
} else if (char === "*") {
|
|
365
361
|
let start = i + 1;
|
|
366
|
-
while (start < path2.length && /[a-zA-Z0-9_
|
|
362
|
+
while (start < path2.length && /[a-zA-Z0-9_]/.test(path2[start])) {
|
|
367
363
|
start++;
|
|
368
364
|
}
|
|
369
365
|
tokens.push({ type: "WILDCARD", value: path2.slice(i + 1, start) });
|
package/dist/config.d.mts
CHANGED
package/dist/facades.mjs
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "@devbro/neko-mailer";
|
|
12
12
|
import { config } from "@devbro/neko-config";
|
|
13
13
|
import { Cli } from "clipanion";
|
|
14
|
-
import { HttpServer,
|
|
14
|
+
import { HttpServer, handleHttpErrors } from "./http.mjs";
|
|
15
15
|
import { Logger } from "@devbro/neko-logger";
|
|
16
16
|
import { CacheProviderFactory } from "./factories.mjs";
|
|
17
17
|
import { Cache } from "@devbro/neko-cache";
|
|
@@ -47,18 +47,7 @@ const cli = createSingleton(() => {
|
|
|
47
47
|
});
|
|
48
48
|
const httpServer = createSingleton(() => {
|
|
49
49
|
const server = new HttpServer();
|
|
50
|
-
server.setErrorHandler(
|
|
51
|
-
if (err instanceof HttpError) {
|
|
52
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
53
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
54
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
55
|
-
return;
|
|
56
|
-
} else {
|
|
57
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
58
|
-
}
|
|
59
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
60
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
61
|
-
});
|
|
50
|
+
server.setErrorHandler(handleHttpErrors);
|
|
62
51
|
server.setRouter(router());
|
|
63
52
|
return server;
|
|
64
53
|
});
|
package/dist/facades.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/facades.mts"],"sourcesContent":["import { Router } from \"./router.mjs\";\nimport { Schedule, Scheduler } from \"@devbro/neko-scheduler\";\nimport { createSingleton } from \"@devbro/neko-helper\";\nimport { ctx, ctxSafe } from \"@devbro/neko-context\";\nimport { Connection } from \"@devbro/neko-sql\";\nimport { Storage, StorageProviderFactory } from \"@devbro/neko-storage\";\nimport {\n Mailer,\n MailerProvider,\n MailerProviderFactory,\n} from \"@devbro/neko-mailer\";\nimport { config } from \"@devbro/neko-config\";\nimport { Cli } from \"clipanion\";\nimport { HttpServer, HttpError } from \"./http.mjs\";\nimport * as yup from \"yup\";\nimport { Logger } from \"@devbro/neko-logger\";\nimport { CacheProviderFactory } from \"./factories.mjs\";\nimport { Cache } from \"@devbro/neko-cache\";\nimport { QueueConnection, QueueTransportFactory } from \"@devbro/neko-queue\";\n\nexport const router = createSingleton<Router>(() => new Router());\nexport const scheduler = createSingleton<Scheduler>(() => {\n const rc = new Scheduler();\n rc.setErrorHandler((err: any, job: Schedule) => {\n logger().error({\n msg: \"Scheduled job error\",\n err,\n job_name: job.getName(),\n });\n });\n return rc;\n});\nexport const db = (label = \"default\") =>\n ctx().getOrThrow<Connection>([\"database\", label]);\n\nexport const storage = createSingleton<Storage>((label: string = \"default\") => {\n let storage_config: any = config.get([\"storages\", label].join(\".\"));\n\n const provider = StorageProviderFactory.create(\n storage_config.provider,\n storage_config.config,\n );\n\n return new Storage(provider);\n});\n\nexport const cli = createSingleton<Cli>(() => {\n const [node, app, ...args] = process.argv;\n return new Cli({\n binaryLabel: `My Application`,\n binaryName: `${node} ${app}`,\n binaryVersion: `1.0.0`,\n });\n});\n\nexport const httpServer = createSingleton<HttpServer>(() => {\n const server = new HttpServer();\n\n server.setErrorHandler(
|
|
1
|
+
{"version":3,"sources":["../src/facades.mts"],"sourcesContent":["import { Router } from \"./router.mjs\";\nimport { Schedule, Scheduler } from \"@devbro/neko-scheduler\";\nimport { createSingleton } from \"@devbro/neko-helper\";\nimport { ctx, ctxSafe } from \"@devbro/neko-context\";\nimport { Connection } from \"@devbro/neko-sql\";\nimport { Storage, StorageProviderFactory } from \"@devbro/neko-storage\";\nimport {\n Mailer,\n MailerProvider,\n MailerProviderFactory,\n} from \"@devbro/neko-mailer\";\nimport { config } from \"@devbro/neko-config\";\nimport { Cli } from \"clipanion\";\nimport { HttpServer, HttpError, handleHttpErrors } from \"./http.mjs\";\nimport * as yup from \"yup\";\nimport { Logger } from \"@devbro/neko-logger\";\nimport { CacheProviderFactory } from \"./factories.mjs\";\nimport { Cache } from \"@devbro/neko-cache\";\nimport { QueueConnection, QueueTransportFactory } from \"@devbro/neko-queue\";\n\nexport const router = createSingleton<Router>(() => new Router());\nexport const scheduler = createSingleton<Scheduler>(() => {\n const rc = new Scheduler();\n rc.setErrorHandler((err: any, job: Schedule) => {\n logger().error({\n msg: \"Scheduled job error\",\n err,\n job_name: job.getName(),\n });\n });\n return rc;\n});\nexport const db = (label = \"default\") =>\n ctx().getOrThrow<Connection>([\"database\", label]);\n\nexport const storage = createSingleton<Storage>((label: string = \"default\") => {\n let storage_config: any = config.get([\"storages\", label].join(\".\"));\n\n const provider = StorageProviderFactory.create(\n storage_config.provider,\n storage_config.config,\n );\n\n return new Storage(provider);\n});\n\nexport const cli = createSingleton<Cli>(() => {\n const [node, app, ...args] = process.argv;\n return new Cli({\n binaryLabel: `My Application`,\n binaryName: `${node} ${app}`,\n binaryVersion: `1.0.0`,\n });\n});\n\nexport const httpServer = createSingleton<HttpServer>(() => {\n const server = new HttpServer();\n\n server.setErrorHandler(handleHttpErrors);\n server.setRouter(router());\n\n return server;\n});\n\nexport const logger = createSingleton<Logger>((label) => {\n const logger_config: any = config.get([\"loggers\", label].join(\".\"));\n const rc = new Logger(logger_config);\n rc.setExtrasFunction((message: any) => {\n message.requestId = ctxSafe()?.get(\"requestId\") || \"N/A\";\n return message;\n });\n\n return rc;\n});\n\nexport const mailer = createSingleton((label) => {\n const mailer_config: any = config.get([\"mailer\", label].join(\".\"));\n\n const provider: MailerProvider = MailerProviderFactory.create(\n mailer_config.provider,\n mailer_config.config,\n );\n\n const rc = new Mailer(provider);\n return rc;\n});\n\nexport const queue = createSingleton((label) => {\n const queue_config: any = config.get([\"queues\", label].join(\".\"));\n if (!queue_config) {\n throw new Error(`Queue configuration for '${label}' not found`);\n }\n const provider = QueueTransportFactory.create(\n queue_config.provider,\n queue_config.config,\n );\n return new QueueConnection(provider);\n});\n\nexport const cache = createSingleton((label) => {\n const cache_config: any = config.get([\"caches\", label].join(\".\"));\n if (!cache_config) {\n throw new Error(`Cache configuration for '${label}' not found`);\n }\n const provider = CacheProviderFactory.create(\n cache_config.provider,\n cache_config.config,\n );\n\n return new Cache(provider);\n});\n"],"mappings":"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","names":[]}
|
package/dist/factories.mjs
CHANGED
|
@@ -6,7 +6,16 @@ import {
|
|
|
6
6
|
MemoryProvider,
|
|
7
7
|
MailerProviderFactory
|
|
8
8
|
} from "@devbro/neko-mailer";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
MemoryTransport,
|
|
11
|
+
QueueTransportFactory,
|
|
12
|
+
AwsSqsTransport,
|
|
13
|
+
AmqpTransport,
|
|
14
|
+
RedisTransport,
|
|
15
|
+
AsyncTransport,
|
|
16
|
+
AzureServiceBusTransport,
|
|
17
|
+
GooglePubSubTransport
|
|
18
|
+
} from "@devbro/neko-queue";
|
|
10
19
|
import { DatabaseTransport } from "./queue.mjs";
|
|
11
20
|
import {
|
|
12
21
|
MemoryCacheProvider,
|
|
@@ -17,7 +26,11 @@ import {
|
|
|
17
26
|
import {
|
|
18
27
|
AWSS3StorageProvider,
|
|
19
28
|
LocalStorageProvider,
|
|
20
|
-
StorageProviderFactory
|
|
29
|
+
StorageProviderFactory,
|
|
30
|
+
GCPStorageProvider,
|
|
31
|
+
AzureBlobStorageProvider,
|
|
32
|
+
FTPStorageProvider,
|
|
33
|
+
SFTPStorageProvider
|
|
21
34
|
} from "@devbro/neko-storage";
|
|
22
35
|
class FlexibleFactory {
|
|
23
36
|
static {
|
|
@@ -50,6 +63,24 @@ QueueTransportFactory.register("database", (opt) => {
|
|
|
50
63
|
QueueTransportFactory.register("memory", (opt) => {
|
|
51
64
|
return new MemoryTransport(opt);
|
|
52
65
|
});
|
|
66
|
+
QueueTransportFactory.register("sqs", (opt) => {
|
|
67
|
+
return new AwsSqsTransport(opt);
|
|
68
|
+
});
|
|
69
|
+
QueueTransportFactory.register("amqp", (opt) => {
|
|
70
|
+
return new AmqpTransport(opt);
|
|
71
|
+
});
|
|
72
|
+
QueueTransportFactory.register("redis", (opt) => {
|
|
73
|
+
return new RedisTransport(opt);
|
|
74
|
+
});
|
|
75
|
+
QueueTransportFactory.register("async", (opt) => {
|
|
76
|
+
return new AsyncTransport();
|
|
77
|
+
});
|
|
78
|
+
QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
79
|
+
return new AzureServiceBusTransport(opt);
|
|
80
|
+
});
|
|
81
|
+
QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
82
|
+
return new GooglePubSubTransport(opt);
|
|
83
|
+
});
|
|
53
84
|
class CacheProviderFactory {
|
|
54
85
|
static {
|
|
55
86
|
__name(this, "CacheProviderFactory");
|
|
@@ -80,6 +111,18 @@ StorageProviderFactory.register("local", (opt) => {
|
|
|
80
111
|
StorageProviderFactory.register("s3", (opt) => {
|
|
81
112
|
return new AWSS3StorageProvider(opt);
|
|
82
113
|
});
|
|
114
|
+
StorageProviderFactory.register("gcp", (opt) => {
|
|
115
|
+
return new GCPStorageProvider(opt);
|
|
116
|
+
});
|
|
117
|
+
StorageProviderFactory.register("azure", (opt) => {
|
|
118
|
+
return new AzureBlobStorageProvider(opt);
|
|
119
|
+
});
|
|
120
|
+
StorageProviderFactory.register("ftp", (opt) => {
|
|
121
|
+
return new FTPStorageProvider(opt);
|
|
122
|
+
});
|
|
123
|
+
StorageProviderFactory.register("sftp", (opt) => {
|
|
124
|
+
return new SFTPStorageProvider(opt);
|
|
125
|
+
});
|
|
83
126
|
export {
|
|
84
127
|
CacheProviderFactory,
|
|
85
128
|
FlexibleFactory
|
package/dist/factories.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/factories.mts"],"sourcesContent":["import {\n SESProvider,\n SMTPProvider,\n MemoryProvider,\n MailerProviderFactory,\n} from \"@devbro/neko-mailer\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/factories.mts"],"sourcesContent":["import {\n SESProvider,\n SMTPProvider,\n MemoryProvider,\n MailerProviderFactory,\n} from \"@devbro/neko-mailer\";\nimport {\n MemoryTransport,\n QueueTransportFactory,\n AwsSqsTransport,\n AmqpTransport,\n RedisTransport,\n AsyncTransport,\n AzureServiceBusTransport,\n GooglePubSubTransport,\n} from \"@devbro/neko-queue\";\nimport { DatabaseTransport } from \"./queue.mjs\";\nimport {\n CacheProviderInterface,\n MemoryCacheProvider,\n RedisCacheProvider,\n FileCacheProvider,\n DisabledCacheProvider,\n} from \"@devbro/neko-cache\";\nimport {\n AWSS3StorageProvider,\n LocalStorageProvider,\n StorageProviderFactory,\n GCPStorageProvider,\n AzureBlobStorageProvider,\n FTPStorageProvider,\n SFTPStorageProvider,\n} from \"@devbro/neko-storage\";\n\nexport class FlexibleFactory<T> {\n registry: Map<string, any> = new Map();\n\n register<T>(key: string, ctor: (...args: any[]) => T) {\n this.registry.set(key, ctor);\n }\n\n create<T>(key: string, ...args: any[]): T {\n const ctor = this.registry.get(key);\n if (!ctor) {\n throw new Error(`No factory registered for key: ${key}`);\n }\n return ctor(...args);\n }\n}\n\nMailerProviderFactory.register(\"ses\", (opt) => {\n return new SESProvider(opt);\n});\n\nMailerProviderFactory.register(\"smtp\", (opt) => {\n return new SMTPProvider(opt);\n});\n\nMailerProviderFactory.register(\"memory\", (opt) => {\n return new MemoryProvider();\n});\n\n// Queue\n\nQueueTransportFactory.register(\"database\", (opt) => {\n return new DatabaseTransport(opt);\n});\n\nQueueTransportFactory.register(\"memory\", (opt) => {\n return new MemoryTransport(opt);\n});\n\nQueueTransportFactory.register(\"sqs\", (opt) => {\n return new AwsSqsTransport(opt);\n});\n\nQueueTransportFactory.register(\"amqp\", (opt) => {\n return new AmqpTransport(opt);\n});\n\nQueueTransportFactory.register(\"redis\", (opt) => {\n return new RedisTransport(opt);\n});\n\nQueueTransportFactory.register(\"async\", (opt) => {\n return new AsyncTransport();\n});\n\nQueueTransportFactory.register(\"azure_service_bus\", (opt) => {\n return new AzureServiceBusTransport(opt);\n});\n\nQueueTransportFactory.register(\"google_pubsub\", (opt) => {\n return new GooglePubSubTransport(opt);\n});\n\n// CACHE\nexport class CacheProviderFactory {\n static instance: FlexibleFactory<CacheProviderInterface> =\n new FlexibleFactory<CacheProviderInterface>();\n\n static register(\n key: string,\n factory: (...args: any[]) => CacheProviderInterface,\n ): void {\n CacheProviderFactory.instance.register(key, factory);\n }\n\n static create<T>(key: string, ...args: any[]): CacheProviderInterface {\n return CacheProviderFactory.instance.create(key, ...args);\n }\n}\n\nCacheProviderFactory.register(\"memory\", (opt) => {\n return new MemoryCacheProvider(opt);\n});\n\nCacheProviderFactory.register(\"redis\", (opt) => {\n return new RedisCacheProvider(opt);\n});\n\nCacheProviderFactory.register(\"file\", (opt) => {\n return new FileCacheProvider(opt);\n});\n\nCacheProviderFactory.register(\"disabled\", (opt) => {\n return new DisabledCacheProvider();\n});\n\nStorageProviderFactory.register(\"local\", (opt) => {\n return new LocalStorageProvider(opt);\n});\n\nStorageProviderFactory.register(\"s3\", (opt) => {\n return new AWSS3StorageProvider(opt);\n});\n\nStorageProviderFactory.register(\"gcp\", (opt) => {\n return new GCPStorageProvider(opt);\n});\n\nStorageProviderFactory.register(\"azure\", (opt) => {\n return new AzureBlobStorageProvider(opt);\n});\n\nStorageProviderFactory.register(\"ftp\", (opt) => {\n return new FTPStorageProvider(opt);\n});\n\nStorageProviderFactory.register(\"sftp\", (opt) => {\n return new SFTPStorageProvider(opt);\n});\n"],"mappings":"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","names":[]}
|