@meridianjs/framework 0.1.7 → 0.1.8

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 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);
@@ -266,6 +266,10 @@ async function loadSubscribers(container, subscribersDir) {
266
266
  }
267
267
  const events = Array.isArray(config.event) ? config.event : [config.event];
268
268
  for (const eventName of events) {
269
+ if (disabledEvents.includes(eventName)) {
270
+ logger.debug(`Subscriber ${file} skipped (disabled by plugin config)`);
271
+ continue;
272
+ }
269
273
  eventBus.subscribe(
270
274
  eventName,
271
275
  (args) => handler({ ...args, container })
@@ -447,12 +451,12 @@ async function loadPlugins(container, plugins, rootDir, server) {
447
451
  }
448
452
  }
449
453
  if (scanRoot) {
450
- await autoScanPlugin(scanRoot, container, logger, server);
454
+ await autoScanPlugin(scanRoot, container, logger, server, plugin.disableSubscribers ?? []);
451
455
  }
452
456
  logger.info(`Plugin loaded: ${plugin.resolve}`);
453
457
  }
454
458
  }
455
- async function autoScanPlugin(scanRoot, container, logger, server) {
459
+ async function autoScanPlugin(scanRoot, container, logger, server, disabledEvents = []) {
456
460
  const candidates = [
457
461
  scanRoot,
458
462
  // pluginRoot already points to compiled dir
@@ -470,7 +474,7 @@ async function autoScanPlugin(scanRoot, container, logger, server) {
470
474
  }
471
475
  await Promise.all([
472
476
  server ? loadRoutes(server, container, apiDir) : Promise.resolve(),
473
- loadSubscribers(container, path7.join(candidate, "subscribers")),
477
+ loadSubscribers(container, path7.join(candidate, "subscribers"), disabledEvents),
474
478
  loadJobs(container, path7.join(candidate, "jobs")),
475
479
  loadLinks(container, path7.join(candidate, "links"))
476
480
  ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridianjs/framework",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Core Meridian framework: bootstrap, DI container, module/route/subscriber/job loaders",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",