@anjianshi/utils 2.4.1 → 2.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.
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * 支持自定义 Controller 类,例如把 context 中的内容定义成属性。
6
6
  */
7
- type AnyObject = Record<string, unknown>;
7
+ export type AnyObject = Record<string, unknown>;
8
8
  export type AnyController<Context> = Controller<Context, any>;
9
9
  type AnyControllerClass<Context> = typeof Controller<Context, any>;
10
10
  export type ControllersFrom<Context, T extends AnyObject> = {
@@ -17,9 +17,10 @@ export declare class Controller<Context, AllControllers extends Record<string, A
17
17
  /** 调用其他 controllers */
18
18
  protected readonly controllers: AllControllers;
19
19
  protected readonly context: Context;
20
+ protected readonly name: string;
20
21
  constructor(
21
22
  /** 调用其他 controllers */
22
- controllers: AllControllers, context: Context);
23
+ controllers: AllControllers, context: Context, name?: string);
23
24
  }
24
25
  /**
25
26
  * 传入 Controller 类列表,返回 controller 实例集合。
@@ -10,11 +10,13 @@
10
10
  export class Controller {
11
11
  controllers;
12
12
  context;
13
+ name;
13
14
  constructor(
14
15
  /** 调用其他 controllers */
15
- controllers, context) {
16
+ controllers, context, name = this.constructor.name) {
16
17
  this.controllers = controllers;
17
18
  this.context = context;
19
+ this.name = name;
18
20
  }
19
21
  }
20
22
  /**
@@ -30,7 +32,7 @@ export function initializeControllers(controllerClasses, context) {
30
32
  return controllers[prop];
31
33
  if (prop in controllerClasses) {
32
34
  const Class = controllerClasses[prop];
33
- controllers[prop] = new Class(proxy, context);
35
+ controllers[prop] = new Class(proxy, context, prop);
34
36
  return controllers[prop];
35
37
  }
36
38
  },
@@ -1,6 +1,6 @@
1
1
  import { type Logger } from '../logging/index.js';
2
2
  /** 返回 false 可结束任务 */
3
- export type TaskExecutor<Context> = (context: Context) => Promise<undefined | false>;
3
+ export type TaskExecutor<Context> = (context: Context, logger: Logger) => Promise<undefined | false>;
4
4
  /**
5
5
  * 执行定期任务
6
6
  */
@@ -20,7 +20,7 @@ export class TaskManager {
20
20
  logger.info(`#${id} 任务开始`);
21
21
  try {
22
22
  const context = this.getContext(name);
23
- const result = await executor(context);
23
+ const result = await executor(context, logger);
24
24
  const cost = (Date.now() - start) / 1000;
25
25
  logger.info(`#${id} 任务完成,耗时 ${cost}s`);
26
26
  if (result === false) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anjianshi/utils",
3
- "version": "2.4.1",
3
+ "version": "2.4.3",
4
4
  "description": "Common JavaScript Utils",
5
5
  "homepage": "https://github.com/anjianshi/js-packages/utils",
6
6
  "bugs": {
@@ -28,10 +28,10 @@
28
28
  "typescript": "^5.6.3",
29
29
  "vconsole": "^3.15.1",
30
30
  "@anjianshi/presets-eslint-node": "4.0.8",
31
- "@anjianshi/presets-eslint-typescript": "5.0.5",
32
31
  "@anjianshi/presets-eslint-react": "4.0.7",
33
- "@anjianshi/presets-typescript": "3.2.2",
34
- "@anjianshi/presets-prettier": "3.0.1"
32
+ "@anjianshi/presets-eslint-typescript": "5.0.5",
33
+ "@anjianshi/presets-prettier": "3.0.1",
34
+ "@anjianshi/presets-typescript": "3.2.2"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@emotion/react": "^11.13.3",