@meridianjs/framework 0.1.7 → 0.1.9
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/index.d.ts +1 -1
- package/dist/index.js +9 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -120,7 +120,7 @@ declare function loadRoutes(app: Express, container: MeridianContainer, apiDir:
|
|
|
120
120
|
* - default: async function handler({ event, container }) { ... }
|
|
121
121
|
* - config: { event: "event.name" | string[] }
|
|
122
122
|
*/
|
|
123
|
-
declare function loadSubscribers(container: MeridianContainer, subscribersDir: string): Promise<void>;
|
|
123
|
+
declare function loadSubscribers(container: MeridianContainer, subscribersDir: string, disabledEvents?: string[]): Promise<void>;
|
|
124
124
|
|
|
125
125
|
/**
|
|
126
126
|
* Scans src/jobs/ for scheduled job files and registers them with the scheduler.
|
package/dist/index.js
CHANGED
|
@@ -233,7 +233,7 @@ function filePathToRoutePath(filePath, baseDir) {
|
|
|
233
233
|
import fs2 from "fs/promises";
|
|
234
234
|
import path4 from "path";
|
|
235
235
|
import { pathToFileURL as pathToFileURL4 } from "url";
|
|
236
|
-
async function loadSubscribers(container, subscribersDir) {
|
|
236
|
+
async function loadSubscribers(container, subscribersDir, disabledEvents = []) {
|
|
237
237
|
const logger = container.resolve("logger");
|
|
238
238
|
try {
|
|
239
239
|
await fs2.access(subscribersDir);
|
|
@@ -244,6 +244,7 @@ async function loadSubscribers(container, subscribersDir) {
|
|
|
244
244
|
const eventBus = container.resolve("eventBus");
|
|
245
245
|
const files = await fs2.readdir(subscribersDir);
|
|
246
246
|
for (const file of files) {
|
|
247
|
+
if (file.startsWith("_")) continue;
|
|
247
248
|
if (/\.d\.(ts|mts)$/.test(file)) continue;
|
|
248
249
|
if (!/\.(ts|mts|js|mjs|cjs)$/.test(file)) continue;
|
|
249
250
|
const fullPath = path4.join(subscribersDir, file);
|
|
@@ -266,6 +267,10 @@ async function loadSubscribers(container, subscribersDir) {
|
|
|
266
267
|
}
|
|
267
268
|
const events = Array.isArray(config.event) ? config.event : [config.event];
|
|
268
269
|
for (const eventName of events) {
|
|
270
|
+
if (disabledEvents.includes(eventName)) {
|
|
271
|
+
logger.debug(`Subscriber ${file} skipped (disabled by plugin config)`);
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
269
274
|
eventBus.subscribe(
|
|
270
275
|
eventName,
|
|
271
276
|
(args) => handler({ ...args, container })
|
|
@@ -447,12 +452,12 @@ async function loadPlugins(container, plugins, rootDir, server) {
|
|
|
447
452
|
}
|
|
448
453
|
}
|
|
449
454
|
if (scanRoot) {
|
|
450
|
-
await autoScanPlugin(scanRoot, container, logger, server);
|
|
455
|
+
await autoScanPlugin(scanRoot, container, logger, server, plugin.disableSubscribers ?? []);
|
|
451
456
|
}
|
|
452
457
|
logger.info(`Plugin loaded: ${plugin.resolve}`);
|
|
453
458
|
}
|
|
454
459
|
}
|
|
455
|
-
async function autoScanPlugin(scanRoot, container, logger, server) {
|
|
460
|
+
async function autoScanPlugin(scanRoot, container, logger, server, disabledEvents = []) {
|
|
456
461
|
const candidates = [
|
|
457
462
|
scanRoot,
|
|
458
463
|
// pluginRoot already points to compiled dir
|
|
@@ -470,7 +475,7 @@ async function autoScanPlugin(scanRoot, container, logger, server) {
|
|
|
470
475
|
}
|
|
471
476
|
await Promise.all([
|
|
472
477
|
server ? loadRoutes(server, container, apiDir) : Promise.resolve(),
|
|
473
|
-
loadSubscribers(container, path7.join(candidate, "subscribers")),
|
|
478
|
+
loadSubscribers(container, path7.join(candidate, "subscribers"), disabledEvents),
|
|
474
479
|
loadJobs(container, path7.join(candidate, "jobs")),
|
|
475
480
|
loadLinks(container, path7.join(candidate, "links"))
|
|
476
481
|
]);
|
package/package.json
CHANGED