@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
|
@@ -77,6 +77,7 @@ var MiddlewareFactory = class {
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
80
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
80
81
|
var CompiledRoute = class {
|
|
81
82
|
static {
|
|
82
83
|
__name(this, "CompiledRoute");
|
|
@@ -97,7 +98,7 @@ var CompiledRoute = class {
|
|
|
97
98
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
98
99
|
if (middleware instanceof Middleware) {
|
|
99
100
|
this.middlewares.push(middleware);
|
|
100
|
-
} else if (
|
|
101
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
101
102
|
this.middlewares.push(middleware.getInstance({}));
|
|
102
103
|
} else if (typeof middleware === "function") {
|
|
103
104
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -106,13 +107,8 @@ var CompiledRoute = class {
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
|
-
isClass(func) {
|
|
110
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
111
|
-
}
|
|
112
110
|
async run() {
|
|
113
|
-
|
|
114
|
-
this.response.end();
|
|
115
|
-
return rc;
|
|
111
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
116
112
|
}
|
|
117
113
|
prepareOutputJsonFormat(obj) {
|
|
118
114
|
function traverse(value) {
|
|
@@ -246,7 +242,7 @@ var Route = class {
|
|
|
246
242
|
i = start;
|
|
247
243
|
} else if (char === "*") {
|
|
248
244
|
let start = i + 1;
|
|
249
|
-
while (start < path3.length && /[a-zA-Z0-9_
|
|
245
|
+
while (start < path3.length && /[a-zA-Z0-9_]/.test(path3[start])) {
|
|
250
246
|
start++;
|
|
251
247
|
}
|
|
252
248
|
tokens.push({ type: "WILDCARD", value: path3.slice(i + 1, start) });
|
|
@@ -457,7 +453,7 @@ var Router = class {
|
|
|
457
453
|
|
|
458
454
|
// src/facades.mts
|
|
459
455
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
460
|
-
var
|
|
456
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
461
457
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
462
458
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
463
459
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -466,7 +462,24 @@ var import_clipanion = require("clipanion");
|
|
|
466
462
|
|
|
467
463
|
// src/http.mts
|
|
468
464
|
var http_exports = {};
|
|
465
|
+
__export(http_exports, {
|
|
466
|
+
handleHttpErrors: () => handleHttpErrors
|
|
467
|
+
});
|
|
468
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
469
469
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
470
|
+
async function handleHttpErrors(err, req, res) {
|
|
471
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
472
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
473
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
474
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
475
|
+
return;
|
|
476
|
+
} else {
|
|
477
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
478
|
+
}
|
|
479
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
480
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
481
|
+
}
|
|
482
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
470
483
|
|
|
471
484
|
// src/facades.mts
|
|
472
485
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -481,7 +494,7 @@ __export(queue_exports, {
|
|
|
481
494
|
DatabaseTransport: () => DatabaseTransport
|
|
482
495
|
});
|
|
483
496
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
484
|
-
var
|
|
497
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
485
498
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
486
499
|
var DatabaseTransport = class {
|
|
487
500
|
static {
|
|
@@ -542,7 +555,7 @@ var DatabaseTransport = class {
|
|
|
542
555
|
}, "processMessage");
|
|
543
556
|
constructor(config3 = {}) {
|
|
544
557
|
this.config = { ...this.config, ...config3 };
|
|
545
|
-
this.repeater = (0,
|
|
558
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
546
559
|
this.processMessage,
|
|
547
560
|
this.config.listen_interval * 1e3
|
|
548
561
|
);
|
|
@@ -610,6 +623,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
610
623
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
611
624
|
return new import_neko_queue.MemoryTransport(opt);
|
|
612
625
|
});
|
|
626
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
627
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
628
|
+
});
|
|
629
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
630
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
631
|
+
});
|
|
632
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
633
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
634
|
+
});
|
|
635
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
636
|
+
return new import_neko_queue.AsyncTransport();
|
|
637
|
+
});
|
|
638
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
639
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
640
|
+
});
|
|
641
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
642
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
643
|
+
});
|
|
613
644
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
614
645
|
static {
|
|
615
646
|
__name(this, "CacheProviderFactory");
|
|
@@ -640,12 +671,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
640
671
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
641
672
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
642
673
|
});
|
|
674
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
675
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
676
|
+
});
|
|
677
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
678
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
679
|
+
});
|
|
680
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
681
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
682
|
+
});
|
|
683
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
684
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
685
|
+
});
|
|
643
686
|
|
|
644
687
|
// src/facades.mts
|
|
645
688
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
646
689
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
647
|
-
var router = (0,
|
|
648
|
-
var scheduler = (0,
|
|
690
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
691
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
649
692
|
const rc = new import_neko_scheduler.Scheduler();
|
|
650
693
|
rc.setErrorHandler((err, job) => {
|
|
651
694
|
logger().error({
|
|
@@ -657,7 +700,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
657
700
|
return rc;
|
|
658
701
|
});
|
|
659
702
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
660
|
-
var storage = (0,
|
|
703
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
661
704
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
662
705
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
663
706
|
storage_config.provider,
|
|
@@ -665,7 +708,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
665
708
|
);
|
|
666
709
|
return new import_neko_storage2.Storage(provider);
|
|
667
710
|
});
|
|
668
|
-
var cli = (0,
|
|
711
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
669
712
|
const [node, app, ...args] = process.argv;
|
|
670
713
|
return new import_clipanion.Cli({
|
|
671
714
|
binaryLabel: `My Application`,
|
|
@@ -673,24 +716,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
673
716
|
binaryVersion: `1.0.0`
|
|
674
717
|
});
|
|
675
718
|
});
|
|
676
|
-
var httpServer = (0,
|
|
719
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
677
720
|
const server = new http_exports.HttpServer();
|
|
678
|
-
server.setErrorHandler(
|
|
679
|
-
if (err instanceof http_exports.HttpError) {
|
|
680
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
681
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
682
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
683
|
-
return;
|
|
684
|
-
} else {
|
|
685
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
686
|
-
}
|
|
687
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
688
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
689
|
-
});
|
|
721
|
+
server.setErrorHandler(handleHttpErrors);
|
|
690
722
|
server.setRouter(router());
|
|
691
723
|
return server;
|
|
692
724
|
});
|
|
693
|
-
var logger = (0,
|
|
725
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
694
726
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
695
727
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
696
728
|
rc.setExtrasFunction((message) => {
|
|
@@ -699,7 +731,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
699
731
|
});
|
|
700
732
|
return rc;
|
|
701
733
|
});
|
|
702
|
-
var mailer = (0,
|
|
734
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
703
735
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
704
736
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
705
737
|
mailer_config.provider,
|
|
@@ -708,7 +740,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
708
740
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
709
741
|
return rc;
|
|
710
742
|
});
|
|
711
|
-
var queue = (0,
|
|
743
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
712
744
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
713
745
|
if (!queue_config) {
|
|
714
746
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -719,7 +751,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
719
751
|
);
|
|
720
752
|
return new import_neko_queue2.QueueConnection(provider);
|
|
721
753
|
});
|
|
722
|
-
var cache = (0,
|
|
754
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
723
755
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
724
756
|
if (!cache_config) {
|
|
725
757
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -77,6 +77,7 @@ var MiddlewareFactory = class {
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
80
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
80
81
|
var CompiledRoute = class {
|
|
81
82
|
static {
|
|
82
83
|
__name(this, "CompiledRoute");
|
|
@@ -97,7 +98,7 @@ var CompiledRoute = class {
|
|
|
97
98
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
98
99
|
if (middleware instanceof Middleware) {
|
|
99
100
|
this.middlewares.push(middleware);
|
|
100
|
-
} else if (
|
|
101
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
101
102
|
this.middlewares.push(middleware.getInstance({}));
|
|
102
103
|
} else if (typeof middleware === "function") {
|
|
103
104
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -106,13 +107,8 @@ var CompiledRoute = class {
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
|
-
isClass(func) {
|
|
110
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
111
|
-
}
|
|
112
110
|
async run() {
|
|
113
|
-
|
|
114
|
-
this.response.end();
|
|
115
|
-
return rc;
|
|
111
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
116
112
|
}
|
|
117
113
|
prepareOutputJsonFormat(obj) {
|
|
118
114
|
function traverse(value) {
|
|
@@ -246,7 +242,7 @@ var Route = class {
|
|
|
246
242
|
i = start;
|
|
247
243
|
} else if (char === "*") {
|
|
248
244
|
let start = i + 1;
|
|
249
|
-
while (start < path3.length && /[a-zA-Z0-9_
|
|
245
|
+
while (start < path3.length && /[a-zA-Z0-9_]/.test(path3[start])) {
|
|
250
246
|
start++;
|
|
251
247
|
}
|
|
252
248
|
tokens.push({ type: "WILDCARD", value: path3.slice(i + 1, start) });
|
|
@@ -457,7 +453,7 @@ var Router = class {
|
|
|
457
453
|
|
|
458
454
|
// src/facades.mts
|
|
459
455
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
460
|
-
var
|
|
456
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
461
457
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
462
458
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
463
459
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -466,7 +462,24 @@ var import_clipanion = require("clipanion");
|
|
|
466
462
|
|
|
467
463
|
// src/http.mts
|
|
468
464
|
var http_exports = {};
|
|
465
|
+
__export(http_exports, {
|
|
466
|
+
handleHttpErrors: () => handleHttpErrors
|
|
467
|
+
});
|
|
468
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
469
469
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
470
|
+
async function handleHttpErrors(err, req, res) {
|
|
471
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
472
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
473
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
474
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
475
|
+
return;
|
|
476
|
+
} else {
|
|
477
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
478
|
+
}
|
|
479
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
480
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
481
|
+
}
|
|
482
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
470
483
|
|
|
471
484
|
// src/facades.mts
|
|
472
485
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -481,7 +494,7 @@ __export(queue_exports, {
|
|
|
481
494
|
DatabaseTransport: () => DatabaseTransport
|
|
482
495
|
});
|
|
483
496
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
484
|
-
var
|
|
497
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
485
498
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
486
499
|
var DatabaseTransport = class {
|
|
487
500
|
static {
|
|
@@ -542,7 +555,7 @@ var DatabaseTransport = class {
|
|
|
542
555
|
}, "processMessage");
|
|
543
556
|
constructor(config3 = {}) {
|
|
544
557
|
this.config = { ...this.config, ...config3 };
|
|
545
|
-
this.repeater = (0,
|
|
558
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
546
559
|
this.processMessage,
|
|
547
560
|
this.config.listen_interval * 1e3
|
|
548
561
|
);
|
|
@@ -610,6 +623,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
610
623
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
611
624
|
return new import_neko_queue.MemoryTransport(opt);
|
|
612
625
|
});
|
|
626
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
627
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
628
|
+
});
|
|
629
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
630
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
631
|
+
});
|
|
632
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
633
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
634
|
+
});
|
|
635
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
636
|
+
return new import_neko_queue.AsyncTransport();
|
|
637
|
+
});
|
|
638
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
639
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
640
|
+
});
|
|
641
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
642
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
643
|
+
});
|
|
613
644
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
614
645
|
static {
|
|
615
646
|
__name(this, "CacheProviderFactory");
|
|
@@ -640,12 +671,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
640
671
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
641
672
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
642
673
|
});
|
|
674
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
675
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
676
|
+
});
|
|
677
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
678
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
679
|
+
});
|
|
680
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
681
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
682
|
+
});
|
|
683
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
684
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
685
|
+
});
|
|
643
686
|
|
|
644
687
|
// src/facades.mts
|
|
645
688
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
646
689
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
647
|
-
var router = (0,
|
|
648
|
-
var scheduler = (0,
|
|
690
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
691
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
649
692
|
const rc = new import_neko_scheduler.Scheduler();
|
|
650
693
|
rc.setErrorHandler((err, job) => {
|
|
651
694
|
logger().error({
|
|
@@ -657,7 +700,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
657
700
|
return rc;
|
|
658
701
|
});
|
|
659
702
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
660
|
-
var storage = (0,
|
|
703
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
661
704
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
662
705
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
663
706
|
storage_config.provider,
|
|
@@ -665,7 +708,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
665
708
|
);
|
|
666
709
|
return new import_neko_storage2.Storage(provider);
|
|
667
710
|
});
|
|
668
|
-
var cli = (0,
|
|
711
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
669
712
|
const [node, app, ...args] = process.argv;
|
|
670
713
|
return new import_clipanion.Cli({
|
|
671
714
|
binaryLabel: `My Application`,
|
|
@@ -673,24 +716,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
673
716
|
binaryVersion: `1.0.0`
|
|
674
717
|
});
|
|
675
718
|
});
|
|
676
|
-
var httpServer = (0,
|
|
719
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
677
720
|
const server = new http_exports.HttpServer();
|
|
678
|
-
server.setErrorHandler(
|
|
679
|
-
if (err instanceof http_exports.HttpError) {
|
|
680
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
681
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
682
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
683
|
-
return;
|
|
684
|
-
} else {
|
|
685
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
686
|
-
}
|
|
687
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
688
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
689
|
-
});
|
|
721
|
+
server.setErrorHandler(handleHttpErrors);
|
|
690
722
|
server.setRouter(router());
|
|
691
723
|
return server;
|
|
692
724
|
});
|
|
693
|
-
var logger = (0,
|
|
725
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
694
726
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
695
727
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
696
728
|
rc.setExtrasFunction((message) => {
|
|
@@ -699,7 +731,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
699
731
|
});
|
|
700
732
|
return rc;
|
|
701
733
|
});
|
|
702
|
-
var mailer = (0,
|
|
734
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
703
735
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
704
736
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
705
737
|
mailer_config.provider,
|
|
@@ -708,7 +740,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
708
740
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
709
741
|
return rc;
|
|
710
742
|
});
|
|
711
|
-
var queue = (0,
|
|
743
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
712
744
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
713
745
|
if (!queue_config) {
|
|
714
746
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -719,7 +751,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
719
751
|
);
|
|
720
752
|
return new import_neko_queue2.QueueConnection(provider);
|
|
721
753
|
});
|
|
722
|
-
var cache = (0,
|
|
754
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
723
755
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
724
756
|
if (!cache_config) {
|
|
725
757
|
throw new Error(`Cache configuration for '${label}' not found`);
|
|
@@ -1232,6 +1232,7 @@ var MiddlewareFactory = class {
|
|
|
1232
1232
|
};
|
|
1233
1233
|
|
|
1234
1234
|
// ../neko-router/dist/CompiledRoute.mjs
|
|
1235
|
+
var import_neko_helper = require("@devbro/neko-helper");
|
|
1235
1236
|
var CompiledRoute = class {
|
|
1236
1237
|
static {
|
|
1237
1238
|
__name(this, "CompiledRoute");
|
|
@@ -1252,7 +1253,7 @@ var CompiledRoute = class {
|
|
|
1252
1253
|
for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {
|
|
1253
1254
|
if (middleware instanceof Middleware) {
|
|
1254
1255
|
this.middlewares.push(middleware);
|
|
1255
|
-
} else if (
|
|
1256
|
+
} else if ((0, import_neko_helper.isClass)(middleware)) {
|
|
1256
1257
|
this.middlewares.push(middleware.getInstance({}));
|
|
1257
1258
|
} else if (typeof middleware === "function") {
|
|
1258
1259
|
this.middlewares.push(MiddlewareFactory.create(middleware));
|
|
@@ -1261,13 +1262,8 @@ var CompiledRoute = class {
|
|
|
1261
1262
|
}
|
|
1262
1263
|
}
|
|
1263
1264
|
}
|
|
1264
|
-
isClass(func) {
|
|
1265
|
-
return typeof func === "function" && /^class\s/.test(Function.prototype.toString.call(func));
|
|
1266
|
-
}
|
|
1267
1265
|
async run() {
|
|
1268
|
-
|
|
1269
|
-
this.response.end();
|
|
1270
|
-
return rc;
|
|
1266
|
+
return await this.runMiddlewares(this.middlewares, this.request, this.response);
|
|
1271
1267
|
}
|
|
1272
1268
|
prepareOutputJsonFormat(obj) {
|
|
1273
1269
|
function traverse(value) {
|
|
@@ -1401,7 +1397,7 @@ var Route = class {
|
|
|
1401
1397
|
i = start;
|
|
1402
1398
|
} else if (char === "*") {
|
|
1403
1399
|
let start = i + 1;
|
|
1404
|
-
while (start < path3.length && /[a-zA-Z0-9_
|
|
1400
|
+
while (start < path3.length && /[a-zA-Z0-9_]/.test(path3[start])) {
|
|
1405
1401
|
start++;
|
|
1406
1402
|
}
|
|
1407
1403
|
tokens.push({ type: "WILDCARD", value: path3.slice(i + 1, start) });
|
|
@@ -1612,7 +1608,7 @@ var Router = class {
|
|
|
1612
1608
|
|
|
1613
1609
|
// src/facades.mts
|
|
1614
1610
|
var import_neko_scheduler = require("@devbro/neko-scheduler");
|
|
1615
|
-
var
|
|
1611
|
+
var import_neko_helper3 = require("@devbro/neko-helper");
|
|
1616
1612
|
var import_neko_context3 = require("@devbro/neko-context");
|
|
1617
1613
|
var import_neko_storage2 = require("@devbro/neko-storage");
|
|
1618
1614
|
var import_neko_mailer2 = require("@devbro/neko-mailer");
|
|
@@ -1621,7 +1617,24 @@ var import_clipanion = require("clipanion");
|
|
|
1621
1617
|
|
|
1622
1618
|
// src/http.mts
|
|
1623
1619
|
var http_exports = {};
|
|
1620
|
+
__export(http_exports, {
|
|
1621
|
+
handleHttpErrors: () => handleHttpErrors
|
|
1622
|
+
});
|
|
1623
|
+
var import_neko_http = require("@devbro/neko-http");
|
|
1624
1624
|
__reExport(http_exports, require("@devbro/neko-http"));
|
|
1625
|
+
async function handleHttpErrors(err, req, res) {
|
|
1626
|
+
if (err instanceof import_neko_http.HttpError) {
|
|
1627
|
+
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
1628
|
+
res.write(JSON.stringify({ message: err.message, error: err.code }));
|
|
1629
|
+
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
1630
|
+
return;
|
|
1631
|
+
} else {
|
|
1632
|
+
logger().error({ msg: "Error: " + err.message, err });
|
|
1633
|
+
}
|
|
1634
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
1635
|
+
res.write(JSON.stringify({ error: "Internal Server Error" }));
|
|
1636
|
+
}
|
|
1637
|
+
__name(handleHttpErrors, "handleHttpErrors");
|
|
1625
1638
|
|
|
1626
1639
|
// src/facades.mts
|
|
1627
1640
|
var import_neko_logger = require("@devbro/neko-logger");
|
|
@@ -1636,7 +1649,7 @@ __export(queue_exports, {
|
|
|
1636
1649
|
DatabaseTransport: () => DatabaseTransport
|
|
1637
1650
|
});
|
|
1638
1651
|
__reExport(queue_exports, require("@devbro/neko-queue"));
|
|
1639
|
-
var
|
|
1652
|
+
var import_neko_helper2 = require("@devbro/neko-helper");
|
|
1640
1653
|
var import_neko_context2 = require("@devbro/neko-context");
|
|
1641
1654
|
var DatabaseTransport = class {
|
|
1642
1655
|
static {
|
|
@@ -1697,7 +1710,7 @@ var DatabaseTransport = class {
|
|
|
1697
1710
|
}, "processMessage");
|
|
1698
1711
|
constructor(config3 = {}) {
|
|
1699
1712
|
this.config = { ...this.config, ...config3 };
|
|
1700
|
-
this.repeater = (0,
|
|
1713
|
+
this.repeater = (0, import_neko_helper2.createRepeater)(
|
|
1701
1714
|
this.processMessage,
|
|
1702
1715
|
this.config.listen_interval * 1e3
|
|
1703
1716
|
);
|
|
@@ -1765,6 +1778,24 @@ import_neko_queue.QueueTransportFactory.register("database", (opt) => {
|
|
|
1765
1778
|
import_neko_queue.QueueTransportFactory.register("memory", (opt) => {
|
|
1766
1779
|
return new import_neko_queue.MemoryTransport(opt);
|
|
1767
1780
|
});
|
|
1781
|
+
import_neko_queue.QueueTransportFactory.register("sqs", (opt) => {
|
|
1782
|
+
return new import_neko_queue.AwsSqsTransport(opt);
|
|
1783
|
+
});
|
|
1784
|
+
import_neko_queue.QueueTransportFactory.register("amqp", (opt) => {
|
|
1785
|
+
return new import_neko_queue.AmqpTransport(opt);
|
|
1786
|
+
});
|
|
1787
|
+
import_neko_queue.QueueTransportFactory.register("redis", (opt) => {
|
|
1788
|
+
return new import_neko_queue.RedisTransport(opt);
|
|
1789
|
+
});
|
|
1790
|
+
import_neko_queue.QueueTransportFactory.register("async", (opt) => {
|
|
1791
|
+
return new import_neko_queue.AsyncTransport();
|
|
1792
|
+
});
|
|
1793
|
+
import_neko_queue.QueueTransportFactory.register("azure_service_bus", (opt) => {
|
|
1794
|
+
return new import_neko_queue.AzureServiceBusTransport(opt);
|
|
1795
|
+
});
|
|
1796
|
+
import_neko_queue.QueueTransportFactory.register("google_pubsub", (opt) => {
|
|
1797
|
+
return new import_neko_queue.GooglePubSubTransport(opt);
|
|
1798
|
+
});
|
|
1768
1799
|
var CacheProviderFactory = class _CacheProviderFactory {
|
|
1769
1800
|
static {
|
|
1770
1801
|
__name(this, "CacheProviderFactory");
|
|
@@ -1795,12 +1826,24 @@ import_neko_storage.StorageProviderFactory.register("local", (opt) => {
|
|
|
1795
1826
|
import_neko_storage.StorageProviderFactory.register("s3", (opt) => {
|
|
1796
1827
|
return new import_neko_storage.AWSS3StorageProvider(opt);
|
|
1797
1828
|
});
|
|
1829
|
+
import_neko_storage.StorageProviderFactory.register("gcp", (opt) => {
|
|
1830
|
+
return new import_neko_storage.GCPStorageProvider(opt);
|
|
1831
|
+
});
|
|
1832
|
+
import_neko_storage.StorageProviderFactory.register("azure", (opt) => {
|
|
1833
|
+
return new import_neko_storage.AzureBlobStorageProvider(opt);
|
|
1834
|
+
});
|
|
1835
|
+
import_neko_storage.StorageProviderFactory.register("ftp", (opt) => {
|
|
1836
|
+
return new import_neko_storage.FTPStorageProvider(opt);
|
|
1837
|
+
});
|
|
1838
|
+
import_neko_storage.StorageProviderFactory.register("sftp", (opt) => {
|
|
1839
|
+
return new import_neko_storage.SFTPStorageProvider(opt);
|
|
1840
|
+
});
|
|
1798
1841
|
|
|
1799
1842
|
// src/facades.mts
|
|
1800
1843
|
var import_neko_cache2 = require("@devbro/neko-cache");
|
|
1801
1844
|
var import_neko_queue2 = require("@devbro/neko-queue");
|
|
1802
|
-
var router = (0,
|
|
1803
|
-
var scheduler = (0,
|
|
1845
|
+
var router = (0, import_neko_helper3.createSingleton)(() => new Router());
|
|
1846
|
+
var scheduler = (0, import_neko_helper3.createSingleton)(() => {
|
|
1804
1847
|
const rc = new import_neko_scheduler.Scheduler();
|
|
1805
1848
|
rc.setErrorHandler((err, job) => {
|
|
1806
1849
|
logger().error({
|
|
@@ -1812,7 +1855,7 @@ var scheduler = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
1812
1855
|
return rc;
|
|
1813
1856
|
});
|
|
1814
1857
|
var db = /* @__PURE__ */ __name((label = "default") => (0, import_neko_context3.ctx)().getOrThrow(["database", label]), "db");
|
|
1815
|
-
var storage = (0,
|
|
1858
|
+
var storage = (0, import_neko_helper3.createSingleton)((label = "default") => {
|
|
1816
1859
|
let storage_config = import_neko_config.config.get(["storages", label].join("."));
|
|
1817
1860
|
const provider = import_neko_storage2.StorageProviderFactory.create(
|
|
1818
1861
|
storage_config.provider,
|
|
@@ -1820,7 +1863,7 @@ var storage = (0, import_neko_helper2.createSingleton)((label = "default") => {
|
|
|
1820
1863
|
);
|
|
1821
1864
|
return new import_neko_storage2.Storage(provider);
|
|
1822
1865
|
});
|
|
1823
|
-
var cli = (0,
|
|
1866
|
+
var cli = (0, import_neko_helper3.createSingleton)(() => {
|
|
1824
1867
|
const [node, app, ...args] = process.argv;
|
|
1825
1868
|
return new import_clipanion.Cli({
|
|
1826
1869
|
binaryLabel: `My Application`,
|
|
@@ -1828,24 +1871,13 @@ var cli = (0, import_neko_helper2.createSingleton)(() => {
|
|
|
1828
1871
|
binaryVersion: `1.0.0`
|
|
1829
1872
|
});
|
|
1830
1873
|
});
|
|
1831
|
-
var httpServer = (0,
|
|
1874
|
+
var httpServer = (0, import_neko_helper3.createSingleton)(() => {
|
|
1832
1875
|
const server = new http_exports.HttpServer();
|
|
1833
|
-
server.setErrorHandler(
|
|
1834
|
-
if (err instanceof http_exports.HttpError) {
|
|
1835
|
-
res.writeHead(err.statusCode, { "Content-Type": "application/json" });
|
|
1836
|
-
res.end(JSON.stringify({ message: err.message, error: err.code }));
|
|
1837
|
-
logger().warn({ msg: "HttpError: " + err.message, err });
|
|
1838
|
-
return;
|
|
1839
|
-
} else {
|
|
1840
|
-
logger().error({ msg: "Error: " + err.message, err });
|
|
1841
|
-
}
|
|
1842
|
-
res.writeHead(500, { "Content-Type": "" });
|
|
1843
|
-
res.end(JSON.stringify({ error: "Internal Server Error" }));
|
|
1844
|
-
});
|
|
1876
|
+
server.setErrorHandler(handleHttpErrors);
|
|
1845
1877
|
server.setRouter(router());
|
|
1846
1878
|
return server;
|
|
1847
1879
|
});
|
|
1848
|
-
var logger = (0,
|
|
1880
|
+
var logger = (0, import_neko_helper3.createSingleton)((label) => {
|
|
1849
1881
|
const logger_config = import_neko_config.config.get(["loggers", label].join("."));
|
|
1850
1882
|
const rc = new import_neko_logger.Logger(logger_config);
|
|
1851
1883
|
rc.setExtrasFunction((message) => {
|
|
@@ -1854,7 +1886,7 @@ var logger = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
1854
1886
|
});
|
|
1855
1887
|
return rc;
|
|
1856
1888
|
});
|
|
1857
|
-
var mailer = (0,
|
|
1889
|
+
var mailer = (0, import_neko_helper3.createSingleton)((label) => {
|
|
1858
1890
|
const mailer_config = import_neko_config.config.get(["mailer", label].join("."));
|
|
1859
1891
|
const provider = import_neko_mailer2.MailerProviderFactory.create(
|
|
1860
1892
|
mailer_config.provider,
|
|
@@ -1863,7 +1895,7 @@ var mailer = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
1863
1895
|
const rc = new import_neko_mailer2.Mailer(provider);
|
|
1864
1896
|
return rc;
|
|
1865
1897
|
});
|
|
1866
|
-
var queue = (0,
|
|
1898
|
+
var queue = (0, import_neko_helper3.createSingleton)((label) => {
|
|
1867
1899
|
const queue_config = import_neko_config.config.get(["queues", label].join("."));
|
|
1868
1900
|
if (!queue_config) {
|
|
1869
1901
|
throw new Error(`Queue configuration for '${label}' not found`);
|
|
@@ -1874,7 +1906,7 @@ var queue = (0, import_neko_helper2.createSingleton)((label) => {
|
|
|
1874
1906
|
);
|
|
1875
1907
|
return new import_neko_queue2.QueueConnection(provider);
|
|
1876
1908
|
});
|
|
1877
|
-
var cache = (0,
|
|
1909
|
+
var cache = (0, import_neko_helper3.createSingleton)((label) => {
|
|
1878
1910
|
const cache_config = import_neko_config.config.get(["caches", label].join("."));
|
|
1879
1911
|
if (!cache_config) {
|
|
1880
1912
|
throw new Error(`Cache configuration for '${label}' not found`);
|