@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridianjs/framework",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
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",