@devbro/pashmak 0.1.12 → 0.1.14
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/facades.d.mts +2 -2
- package/dist/facades.mjs +1 -1
- package/dist/facades.mjs.map +1 -1
- package/dist/factories.mjs +1 -1
- package/dist/factories.mjs.map +1 -1
- package/package.json +1 -1
package/dist/facades.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as _devbro_neko_queue from '@devbro/neko-queue';
|
|
1
2
|
import * as clipanion from 'clipanion';
|
|
2
3
|
import { Cli } from 'clipanion';
|
|
3
4
|
import { Router } from '@devbro/neko-router';
|
|
@@ -7,7 +8,6 @@ import { Storage } from '@devbro/neko-storage';
|
|
|
7
8
|
import { Mailer } from '@devbro/neko-mailer';
|
|
8
9
|
import { HttpServer } from '@devbro/neko-http';
|
|
9
10
|
import { Logger } from '@devbro/neko-logger';
|
|
10
|
-
import { QueueConnection } from '@devbro/neko-queue';
|
|
11
11
|
|
|
12
12
|
declare const router: (label?: string, ...args: any[]) => Router;
|
|
13
13
|
declare const scheduler: (label?: string, ...args: any[]) => Scheduler;
|
|
@@ -17,6 +17,6 @@ declare const cli: (label?: string, ...args: any[]) => Cli<clipanion.BaseContext
|
|
|
17
17
|
declare const httpServer: (label?: string, ...args: any[]) => HttpServer;
|
|
18
18
|
declare const logger: (label?: string, ...args: any[]) => Logger;
|
|
19
19
|
declare const mailer: (label?: string, ...args: any[]) => Mailer;
|
|
20
|
-
declare const queue: (label?: string, ...args: any[]) => Promise<QueueConnection<any>>;
|
|
20
|
+
declare const queue: (label?: string, ...args: any[]) => Promise<_devbro_neko_queue.QueueConnection<any>>;
|
|
21
21
|
|
|
22
22
|
export { cli, db, httpServer, logger, mailer, queue, router, scheduler, storage };
|
package/dist/facades.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import { HttpServer } from "./http.mjs";
|
|
|
12
12
|
import { HttpError } from "./http.mjs";
|
|
13
13
|
import * as yup from "yup";
|
|
14
14
|
import { Logger } from "@devbro/neko-logger";
|
|
15
|
-
import { MailerFactory, QueueFactory } from "./factories.
|
|
15
|
+
import { MailerFactory, QueueFactory } from "./factories.mjs";
|
|
16
16
|
const router = createSingleton(() => new Router());
|
|
17
17
|
const scheduler = createSingleton(() => {
|
|
18
18
|
const rc = new Scheduler();
|
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, StorageFactory } from \"@devbro/neko-storage\";\nimport { Mailer, MailerProvider } from \"@devbro/neko-mailer\";\nimport { config } from \"@devbro/neko-config\";\nimport { Cli } from \"clipanion\";\nimport { HttpServer } from \"./http.mjs\";\nimport { HttpError } from \"./http.mjs\";\nimport * as yup from \"yup\";\nimport { Logger } from \"@devbro/neko-logger\";\nimport { MailerFactory, QueueFactory } from \"./factories.
|
|
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, StorageFactory } from \"@devbro/neko-storage\";\nimport { Mailer, MailerProvider } from \"@devbro/neko-mailer\";\nimport { config } from \"@devbro/neko-config\";\nimport { Cli } from \"clipanion\";\nimport { HttpServer } from \"./http.mjs\";\nimport { HttpError } from \"./http.mjs\";\nimport * as yup from \"yup\";\nimport { Logger } from \"@devbro/neko-logger\";\nimport { MailerFactory, QueueFactory } from \"./factories.mjs\";\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 StorageFactory.create(config.get([\"storages\", label].join(\".\"))),\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(async (err: Error, req: any, res: any) => {\n if (err instanceof HttpError) {\n res.writeHead(err.statusCode, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify({ message: err.message, error: err.code }));\n logger().warn({ msg: \"HttpError: \" + err.message, err });\n return;\n } else if (err instanceof yup.ValidationError) {\n res.writeHead(422, { \"Content-Type\": \"application/json\" });\n const errs: any = {};\n err.inner.forEach((e: yup.ValidationError) => {\n // Sanitize sensitive fields\n const sanitizedParams = { ...e.params };\n if (/passw/i.test(e.path!)) {\n sanitizedParams.value = \"******\";\n sanitizedParams.originalValue = \"******\";\n }\n\n errs[e.path!] = {\n type: e.type,\n message: e.message,\n params: sanitizedParams,\n };\n });\n\n res.end(JSON.stringify({ message: \"validation error\", errors: errs }));\n logger().warn({ msg: \"ValidationError: \" + err.message, err });\n return;\n } else {\n logger().error({ msg: \"Error: \" + err.message, err });\n }\n res.writeHead(500, { \"Content-Type\": \"\" });\n res.end(JSON.stringify({ error: \"Internal Server Error\" }));\n });\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 let provider: MailerProvider | undefined =\n MailerFactory.create<MailerProvider>(\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(async (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 rc = await QueueFactory.create(queue_config.type, queue_config);\n return rc;\n});\n"],"mappings":"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","names":[]}
|
package/dist/factories.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
SMTPProvider,
|
|
7
7
|
MemoryProvider
|
|
8
8
|
} from "@devbro/neko-mailer";
|
|
9
|
-
import { logger } from "./facades.
|
|
9
|
+
import { logger } from "./facades.mjs";
|
|
10
10
|
import { QueueConnection } from "@devbro/neko-queue";
|
|
11
11
|
import { MemoryTransport } from "@devbro/neko-queue";
|
|
12
12
|
import { DatabaseTransport } from "./queue.mjs";
|
package/dist/factories.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/factories.mts"],"sourcesContent":["import {\n Mailer,\n Mailable,\n MailerProvider,\n FunctionProvider,\n SESProvider,\n SMTPProvider,\n MemoryProvider,\n} from \"@devbro/neko-mailer\";\nimport { logger } from \"./facades.
|
|
1
|
+
{"version":3,"sources":["../src/factories.mts"],"sourcesContent":["import {\n Mailer,\n Mailable,\n MailerProvider,\n FunctionProvider,\n SESProvider,\n SMTPProvider,\n MemoryProvider,\n} from \"@devbro/neko-mailer\";\nimport { logger } from \"./facades.mjs\";\nimport { QueueConnection } from \"@devbro/neko-queue\";\nimport { MemoryTransport } from \"@devbro/neko-queue\";\nimport { DatabaseTransport } from \"./queue.mjs\";\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 new ctor(...args);\n }\n}\n\nexport class MailerFactory {\n static instance: FlexibleFactory<MailerProvider> =\n new FlexibleFactory<MailerProvider>();\n\n static register<T>(\n key: string,\n factory: (...args: any[]) => MailerProvider,\n ): void {\n MailerFactory.instance.register(key, factory);\n }\n\n static create<T>(key: string, ...args: any[]): MailerProvider {\n return MailerFactory.instance.create(key, ...args);\n }\n}\n\nMailerFactory.register(\"logger\", (opt) => {\n return new FunctionProvider((mail: Mailable) => {\n logger().info({\n msg: \"Sending email\",\n mail,\n });\n });\n});\n\nMailerFactory.register(\"SES\", (opt) => {\n return new SESProvider(opt);\n});\n\nMailerFactory.register(\"SMTP\", (opt) => {\n return new SMTPProvider(opt);\n});\n\nMailerFactory.register(\"MEMORY\", (opt) => {\n return new MemoryProvider();\n});\n\nexport class QueueFactory {\n static instance: FlexibleFactory<QueueConnection<any>> = new FlexibleFactory<\n QueueConnection<any>\n >();\n\n static register<T>(key: string, factory: (...args: any[]) => T): void {\n QueueFactory.instance.register(key, factory);\n }\n\n static create<T>(key: string, ...args: any[]): QueueConnection<any> {\n return QueueFactory.instance.create(key, ...args);\n }\n}\n\nQueueFactory.register(\"database\", (opt) => {\n let transport = new DatabaseTransport(opt);\n return new QueueConnection(transport);\n});\n\nQueueFactory.register(\"memory\", (opt) => {\n let transport = new MemoryTransport(opt);\n return new QueueConnection(transport);\n});\n"],"mappings":";;AAAA;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAE3B,MAAM,gBAAmB;AAAA,EAdhC,OAcgC;AAAA;AAAA;AAAA,EAC9B,WAA6B,oBAAI,IAAI;AAAA,EAErC,SAAY,KAAa,MAA6B;AACpD,SAAK,SAAS,IAAI,KAAK,IAAI;AAAA,EAC7B;AAAA,EAEA,OAAU,QAAgB,MAAgB;AACxC,UAAM,OAAO,KAAK,SAAS,IAAI,GAAG;AAClC,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,kCAAkC,GAAG,EAAE;AAAA,IACzD;AACA,WAAO,IAAI,KAAK,GAAG,IAAI;AAAA,EACzB;AACF;AAEO,MAAM,cAAc;AAAA,EA9B3B,OA8B2B;AAAA;AAAA;AAAA,EACzB,OAAO,WACL,IAAI,gBAAgC;AAAA,EAEtC,OAAO,SACL,KACA,SACM;AACN,kBAAc,SAAS,SAAS,KAAK,OAAO;AAAA,EAC9C;AAAA,EAEA,OAAO,OAAU,QAAgB,MAA6B;AAC5D,WAAO,cAAc,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,EACnD;AACF;AAEA,cAAc,SAAS,UAAU,CAAC,QAAQ;AACxC,SAAO,IAAI,iBAAiB,CAAC,SAAmB;AAC9C,WAAO,EAAE,KAAK;AAAA,MACZ,KAAK;AAAA,MACL;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AAED,cAAc,SAAS,OAAO,CAAC,QAAQ;AACrC,SAAO,IAAI,YAAY,GAAG;AAC5B,CAAC;AAED,cAAc,SAAS,QAAQ,CAAC,QAAQ;AACtC,SAAO,IAAI,aAAa,GAAG;AAC7B,CAAC;AAED,cAAc,SAAS,UAAU,CAAC,QAAQ;AACxC,SAAO,IAAI,eAAe;AAC5B,CAAC;AAEM,MAAM,aAAa;AAAA,EAnE1B,OAmE0B;AAAA;AAAA;AAAA,EACxB,OAAO,WAAkD,IAAI,gBAE3D;AAAA,EAEF,OAAO,SAAY,KAAa,SAAsC;AACpE,iBAAa,SAAS,SAAS,KAAK,OAAO;AAAA,EAC7C;AAAA,EAEA,OAAO,OAAU,QAAgB,MAAmC;AAClE,WAAO,aAAa,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,EAClD;AACF;AAEA,aAAa,SAAS,YAAY,CAAC,QAAQ;AACzC,MAAI,YAAY,IAAI,kBAAkB,GAAG;AACzC,SAAO,IAAI,gBAAgB,SAAS;AACtC,CAAC;AAED,aAAa,SAAS,UAAU,CAAC,QAAQ;AACvC,MAAI,YAAY,IAAI,gBAAgB,GAAG;AACvC,SAAO,IAAI,gBAAgB,SAAS;AACtC,CAAC;","names":[]}
|