@bluelibs/runner 3.4.2 → 3.4.3

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/define.d.ts CHANGED
@@ -58,7 +58,7 @@ export type MiddlewareEverywhereOptions = {
58
58
  * @param middlewareDef - The middleware definition config.
59
59
  * @returns A branded middleware definition usable by the runner.
60
60
  */
61
- export declare function defineMiddleware<TConfig extends Record<string, any>, TDependencies extends DependencyMapType>(middlewareDef: IMiddlewareDefinition<TConfig, TDependencies>): IMiddleware<TConfig, TDependencies>;
61
+ export declare function defineMiddleware<TConfig extends Record<string, any> = any, TDependencies extends DependencyMapType = any>(middlewareDef: IMiddlewareDefinition<TConfig, TDependencies>): IMiddleware<TConfig, TDependencies>;
62
62
  /**
63
63
  * Type guard: checks if a definition is a Task.
64
64
  * @param definition - Any value to test.
package/dist/define.js CHANGED
@@ -232,7 +232,7 @@ function defineEvent(config) {
232
232
  */
233
233
  function defineMiddleware(middlewareDef) {
234
234
  const filePath = (0, getCallerFile_1.getCallerFile)();
235
- const object = {
235
+ const base = {
236
236
  [defs_1.symbolFilePath]: filePath,
237
237
  [defs_1.symbolMiddleware]: true,
238
238
  config: {},
@@ -240,39 +240,45 @@ function defineMiddleware(middlewareDef) {
240
240
  ...middlewareDef,
241
241
  dependencies: middlewareDef.dependencies || {},
242
242
  };
243
- return {
244
- ...object,
245
- with: (config) => {
246
- // Validate config with schema if provided (fail fast)
247
- if (object.configSchema) {
248
- try {
249
- config = object.configSchema.parse(config);
243
+ // Wrap an object to ensure we always return chainable helpers
244
+ const wrap = (obj) => {
245
+ return {
246
+ ...obj,
247
+ with: (config) => {
248
+ // Validate config with schema if provided (fail fast)
249
+ if (obj.configSchema) {
250
+ try {
251
+ config = obj.configSchema.parse(config);
252
+ }
253
+ catch (error) {
254
+ throw new errors_1.ValidationError("Middleware config", obj.id, error instanceof Error ? error : new Error(String(error)));
255
+ }
250
256
  }
251
- catch (error) {
252
- throw new errors_1.ValidationError("Middleware config", object.id, error instanceof Error ? error : new Error(String(error)));
257
+ return wrap({
258
+ ...obj,
259
+ [defs_1.symbolMiddlewareConfigured]: true,
260
+ config: {
261
+ ...obj.config,
262
+ ...config,
263
+ },
264
+ });
265
+ },
266
+ everywhere(options = {}) {
267
+ const { tasks = true, resources = true } = options;
268
+ // If already global, prevent calling again
269
+ if (obj[defs_1.symbolMiddlewareEverywhereTasks] ||
270
+ obj[defs_1.symbolMiddlewareEverywhereResources]) {
271
+ throw new errors_1.MiddlewareAlreadyGlobalError(obj.id);
253
272
  }
254
- }
255
- return {
256
- ...object,
257
- [defs_1.symbolMiddlewareConfigured]: true,
258
- config: {
259
- ...object.config,
260
- ...config,
261
- },
262
- };
263
- },
264
- everywhere(options = {}) {
265
- const { tasks = true, resources = true } = options;
266
- return {
267
- ...object,
268
- [defs_1.symbolMiddlewareEverywhereTasks]: tasks,
269
- [defs_1.symbolMiddlewareEverywhereResources]: resources,
270
- everywhere() {
271
- throw new errors_1.MiddlewareAlreadyGlobalError(object.id);
272
- },
273
- };
274
- },
273
+ return wrap({
274
+ ...obj,
275
+ [defs_1.symbolMiddlewareEverywhereTasks]: tasks,
276
+ [defs_1.symbolMiddlewareEverywhereResources]: resources,
277
+ });
278
+ },
279
+ };
275
280
  };
281
+ return wrap(base);
276
282
  }
277
283
  /**
278
284
  * Type guard: checks if a definition is a Task.
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ import { Context } from "../context";
5
5
  export declare const globalMiddlewares: {
6
6
  requireContext: import("../defs").IMiddleware<{
7
7
  context: Context<any>;
8
- }, import("../defs").DependencyMapType>;
9
- retry: import("../defs").IMiddleware<import("./middleware/retry.middleware").RetryMiddlewareConfig, import("../defs").DependencyMapType>;
8
+ }, any>;
9
+ retry: import("../defs").IMiddleware<import("./middleware/retry.middleware").RetryMiddlewareConfig, any>;
10
10
  cache: import("../defs").IMiddleware<any, {
11
11
  cache: import("../defs").IResource<{
12
12
  defaultOptions?: any;
@@ -20,5 +20,5 @@ export declare const globalMiddlewares: {
20
20
  cacheFactoryTask: import("../defs").ITask<any, Promise<import("./middleware/cache.middleware").ICacheInstance>, any, undefined, any>;
21
21
  }, any, any>;
22
22
  }>;
23
- timeout: import("../defs").IMiddleware<import("./middleware/timeout.middleware").TimeoutMiddlewareConfig, import("../defs").DependencyMapType>;
23
+ timeout: import("../defs").IMiddleware<import("./middleware/timeout.middleware").TimeoutMiddlewareConfig, any>;
24
24
  };
@@ -2,5 +2,5 @@ import { Context } from "../../context";
2
2
  type RequireContextMiddlewareConfig = {
3
3
  context: Context<any>;
4
4
  };
5
- export declare const requireContextMiddleware: import("../../defs").IMiddleware<RequireContextMiddlewareConfig, import("../../defs").DependencyMapType>;
5
+ export declare const requireContextMiddleware: import("../../defs").IMiddleware<RequireContextMiddlewareConfig, any>;
6
6
  export {};
@@ -17,4 +17,4 @@ export interface RetryMiddlewareConfig {
17
17
  */
18
18
  delayStrategy?: (attempt: number, error: Error) => number;
19
19
  }
20
- export declare const retryMiddleware: import("../../defs").IMiddleware<RetryMiddlewareConfig, import("../../defs").DependencyMapType>;
20
+ export declare const retryMiddleware: import("../../defs").IMiddleware<RetryMiddlewareConfig, any>;
@@ -5,4 +5,4 @@ export interface TimeoutMiddlewareConfig {
5
5
  */
6
6
  ttl: number;
7
7
  }
8
- export declare const timeoutMiddleware: import("../../defs").IMiddleware<TimeoutMiddlewareConfig, import("../../defs").DependencyMapType>;
8
+ export declare const timeoutMiddleware: import("../../defs").IMiddleware<TimeoutMiddlewareConfig, any>;
package/dist/index.d.ts CHANGED
@@ -85,8 +85,8 @@ declare const globals: {
85
85
  middlewares: {
86
86
  requireContext: import("./defs").IMiddleware<{
87
87
  context: import("./context").Context<any>;
88
- }, import("./defs").DependencyMapType>;
89
- retry: import("./defs").IMiddleware<import("./globals/middleware/retry.middleware").RetryMiddlewareConfig, import("./defs").DependencyMapType>;
88
+ }, any>;
89
+ retry: import("./defs").IMiddleware<import("./globals/middleware/retry.middleware").RetryMiddlewareConfig, any>;
90
90
  cache: import("./defs").IMiddleware<any, {
91
91
  cache: import("./defs").IResource<{
92
92
  defaultOptions?: any;
@@ -100,7 +100,7 @@ declare const globals: {
100
100
  cacheFactoryTask: import("./defs").ITask<any, Promise<import("./defs").ICacheInstance>, any, undefined, any>;
101
101
  }, any, any>;
102
102
  }>;
103
- timeout: import("./defs").IMiddleware<import("./globals/middleware/timeout.middleware").TimeoutMiddlewareConfig, import("./defs").DependencyMapType>;
103
+ timeout: import("./defs").IMiddleware<import("./globals/middleware/timeout.middleware").TimeoutMiddlewareConfig, any>;
104
104
  };
105
105
  };
106
106
  export { globals };
@@ -11,4 +11,4 @@ export declare function getBuiltInResources(eventManager: EventManager, store: S
11
11
  }> | import("../defs").IResourceWithConfig<EventManager, Promise<EventManager>, {}> | import("../defs").IResourceWithConfig<Store, Promise<Store>, {}>)[];
12
12
  export declare function getBuiltInMiddlewares(): (import("../defs").IMiddleware<{
13
13
  context: import("../context").Context<any>;
14
- }, import("../defs").DependencyMapType> | import("../defs").IMiddleware<import("../globals/middleware/retry.middleware").RetryMiddlewareConfig, import("../defs").DependencyMapType> | import("../defs").IMiddleware<import("../globals/middleware/timeout.middleware").TimeoutMiddlewareConfig, import("../defs").DependencyMapType>)[];
14
+ }, any> | import("../defs").IMiddleware<import("../globals/middleware/retry.middleware").RetryMiddlewareConfig, any> | import("../defs").IMiddleware<import("../globals/middleware/timeout.middleware").TimeoutMiddlewareConfig, any>)[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelibs/runner",
3
- "version": "3.4.2",
3
+ "version": "3.4.3",
4
4
  "description": "BlueLibs Runner",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -400,6 +400,77 @@ describe("Configurable Middleware (.with)", () => {
400
400
 
401
401
  await run(app);
402
402
  });
403
+
404
+ it("should allow configured middleware to be global for tasks", async () => {
405
+ const calls: string[] = [];
406
+ const validate = defineMiddleware<{ schema: string }>({
407
+ id: "validate.global.tasks",
408
+ run: async ({ next }, _deps, config) => {
409
+ calls.push(`global:${config.schema}`);
410
+ return next();
411
+ },
412
+ });
413
+
414
+ const task = defineTask({
415
+ id: "task.global",
416
+ run: async () => "ok",
417
+ });
418
+
419
+ const app = defineResource({
420
+ id: "app.global.tasks",
421
+ register: [
422
+ validate
423
+ .with({ schema: "user" })
424
+ .everywhere({ tasks: true, resources: false }),
425
+ task,
426
+ ],
427
+ dependencies: { task },
428
+ async init(_, { task }) {
429
+ const result = await task();
430
+ expect(result).toBe("ok");
431
+ },
432
+ });
433
+
434
+ await run(app);
435
+ expect(calls).toContain("global:user");
436
+ });
437
+
438
+ it("should allow configured middleware to be global for resources", async () => {
439
+ const calls: string[] = [];
440
+ const m = defineMiddleware<{ flag: string }>({
441
+ id: "validate.global.resources",
442
+ run: async ({ next, resource }, _deps, config) => {
443
+ if (resource) {
444
+ calls.push(`${String(resource.definition.id)}:${config.flag}`);
445
+ }
446
+ return next();
447
+ },
448
+ });
449
+
450
+ const sub = defineResource({
451
+ id: "res.sub",
452
+ async init() {
453
+ return "Sub";
454
+ },
455
+ });
456
+
457
+ const app = defineResource({
458
+ id: "res.app",
459
+ register: [
460
+ m.with({ flag: "X" }).everywhere({ tasks: false, resources: true }),
461
+ sub,
462
+ ],
463
+ dependencies: { sub },
464
+ async init(_, { sub }) {
465
+ return sub;
466
+ },
467
+ });
468
+
469
+ const result = await run(app);
470
+ expect(String(result.value)).toBe("Sub");
471
+ expect(calls).toContain("res.app:X");
472
+ expect(calls).toContain("res.sub:X");
473
+ });
403
474
  });
404
475
 
405
476
  describe("Middleware.everywhere()", () => {
package/src/define.ts CHANGED
@@ -306,13 +306,13 @@ export type MiddlewareEverywhereOptions = {
306
306
  * @returns A branded middleware definition usable by the runner.
307
307
  */
308
308
  export function defineMiddleware<
309
- TConfig extends Record<string, any>,
310
- TDependencies extends DependencyMapType
309
+ TConfig extends Record<string, any> = any,
310
+ TDependencies extends DependencyMapType = any
311
311
  >(
312
312
  middlewareDef: IMiddlewareDefinition<TConfig, TDependencies>
313
313
  ): IMiddleware<TConfig, TDependencies> {
314
314
  const filePath = getCallerFile();
315
- const object = {
315
+ const base = {
316
316
  [symbolFilePath]: filePath,
317
317
  [symbolMiddleware]: true,
318
318
  config: {} as TConfig,
@@ -321,44 +321,56 @@ export function defineMiddleware<
321
321
  dependencies: middlewareDef.dependencies || ({} as TDependencies),
322
322
  } as IMiddleware<TConfig, TDependencies>;
323
323
 
324
- return {
325
- ...object,
326
- with: (config: TConfig) => {
327
- // Validate config with schema if provided (fail fast)
328
- if (object.configSchema) {
329
- try {
330
- config = object.configSchema.parse(config);
331
- } catch (error) {
332
- throw new ValidationError(
333
- "Middleware config",
334
- object.id,
335
- error instanceof Error ? error : new Error(String(error))
336
- );
324
+ // Wrap an object to ensure we always return chainable helpers
325
+ const wrap = (
326
+ obj: IMiddleware<TConfig, TDependencies>
327
+ ): IMiddleware<TConfig, TDependencies> => {
328
+ return {
329
+ ...obj,
330
+ with: (config: TConfig) => {
331
+ // Validate config with schema if provided (fail fast)
332
+ if (obj.configSchema) {
333
+ try {
334
+ config = obj.configSchema.parse(config);
335
+ } catch (error) {
336
+ throw new ValidationError(
337
+ "Middleware config",
338
+ obj.id,
339
+ error instanceof Error ? error : new Error(String(error))
340
+ );
341
+ }
337
342
  }
338
- }
339
343
 
340
- return {
341
- ...object,
342
- [symbolMiddlewareConfigured]: true,
343
- config: {
344
- ...object.config,
345
- ...config,
346
- },
347
- };
348
- },
349
- everywhere(options: MiddlewareEverywhereOptions = {}) {
350
- const { tasks = true, resources = true } = options;
344
+ return wrap({
345
+ ...obj,
346
+ [symbolMiddlewareConfigured]: true,
347
+ config: {
348
+ ...(obj.config as TConfig),
349
+ ...config,
350
+ },
351
+ } as IMiddleware<TConfig, TDependencies>);
352
+ },
353
+ everywhere(options: MiddlewareEverywhereOptions = {}) {
354
+ const { tasks = true, resources = true } = options;
351
355
 
352
- return {
353
- ...object,
354
- [symbolMiddlewareEverywhereTasks]: tasks,
355
- [symbolMiddlewareEverywhereResources]: resources,
356
- everywhere() {
357
- throw new MiddlewareAlreadyGlobalError(object.id);
358
- },
359
- };
360
- },
356
+ // If already global, prevent calling again
357
+ if (
358
+ obj[symbolMiddlewareEverywhereTasks] ||
359
+ obj[symbolMiddlewareEverywhereResources]
360
+ ) {
361
+ throw new MiddlewareAlreadyGlobalError(obj.id);
362
+ }
363
+
364
+ return wrap({
365
+ ...obj,
366
+ [symbolMiddlewareEverywhereTasks]: tasks,
367
+ [symbolMiddlewareEverywhereResources]: resources,
368
+ } as IMiddleware<TConfig, TDependencies>);
369
+ },
370
+ } as IMiddleware<TConfig, TDependencies>;
361
371
  };
372
+
373
+ return wrap(base);
362
374
  }
363
375
 
364
376
  /**